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:
Kenneth Graunke
2016-03-29 12:07:37 -07:00
parent 6e8b9d5bdd
commit 98c22c0403
2 changed files with 1 additions and 18 deletions

View File

@@ -112,14 +112,7 @@ is_active_attrib(const gl_shader_variable *var)
return var->location != -1;
case ir_var_system_value:
/* 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."
*/
return var->location == SYSTEM_VALUE_VERTEX_ID ||
var->location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE ||
var->location == SYSTEM_VALUE_INSTANCE_ID;
return true;
default:
return false;