glsl: Add all system variables to the input resource list.
System values are just built-in input variables that we've opted to special-case out of convenience. We need to consider all inputs, regardless of how we've classified them. Unfortunately, there's one exception: we shouldn't add gl_BaseVertex unless ARB_shader_draw_parameters is enabled, because it doesn't actually exist in the language, and shouldn't be counted in the GL_ACTIVE_RESOURCES query. Fixes dEQP-GLES31.functional.program_interface_query.program_input. resource_list.compute.empty, which expects gl_NumWorkGroups to appear in the resource list. v2: Delete more code Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
@@ -3531,17 +3531,7 @@ add_interface_variables(struct gl_shader_program *shProg,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
switch (var->data.mode) {
|
switch (var->data.mode) {
|
||||||
/* From GL 4.3 core spec, section 11.1.1 (Vertex Attributes):
|
|
||||||
* "For GetActiveAttrib, all active vertex shader input variables
|
|
||||||
* are enumerated, including the special built-in inputs gl_VertexID
|
|
||||||
* and gl_InstanceID."
|
|
||||||
*/
|
|
||||||
case ir_var_system_value:
|
case ir_var_system_value:
|
||||||
if (var->data.location != SYSTEM_VALUE_VERTEX_ID &&
|
|
||||||
var->data.location != SYSTEM_VALUE_VERTEX_ID_ZERO_BASE &&
|
|
||||||
var->data.location != SYSTEM_VALUE_INSTANCE_ID)
|
|
||||||
continue;
|
|
||||||
/* FALLTHROUGH */
|
|
||||||
case ir_var_shader_in:
|
case ir_var_shader_in:
|
||||||
if (programInterface != GL_PROGRAM_INPUT)
|
if (programInterface != GL_PROGRAM_INPUT)
|
||||||
continue;
|
continue;
|
||||||
|
@@ -112,14 +112,7 @@ is_active_attrib(const gl_shader_variable *var)
|
|||||||
return var->location != -1;
|
return var->location != -1;
|
||||||
|
|
||||||
case ir_var_system_value:
|
case ir_var_system_value:
|
||||||
/* From GL 4.3 core spec, section 11.1.1 (Vertex Attributes):
|
return true;
|
||||||
* "For GetActiveAttrib, all active vertex shader input variables
|
|
||||||
* are enumerated, including the special built-in inputs gl_VertexID
|
|
||||||
* and gl_InstanceID."
|
|
||||||
*/
|
|
||||||
return var->location == SYSTEM_VALUE_VERTEX_ID ||
|
|
||||||
var->location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE ||
|
|
||||||
var->location == SYSTEM_VALUE_INSTANCE_ID;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user