glsl: Make vertex ID lowering declare gl_BaseVertex as hidden.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 2 Apr 2016 03:52:33 +0000 (20:52 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 2 Apr 2016 04:58:22 +0000 (21:58 -0700)
If the GL_ARB_shader_draw_parameters extension is enabled, we'll already
have a gl_BaseVertex variable.  It will have var->how_declared set to
ir_var_declared_implicitly, and will appear in the program resource
list.

If not, we make one for internal use.  We don't want it to be listed
in the program resource list, as the application won't be expecting
it.  Marking it hidden will properly exclude it.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/compiler/glsl/lower_vertex_id.cpp

index 3da7a2f1b3b00196e98e950e40e80062f8cdc98b..6f46945026c366011a458bff8654a41a6c094625 100644 (file)
@@ -100,7 +100,7 @@ lower_vertex_id_visitor::visit(ir_dereference_variable *ir)
       if (gl_BaseVertex == NULL) {
          gl_BaseVertex = new(mem_ctx) ir_variable(int_t, "gl_BaseVertex",
                                                   ir_var_system_value);
-         gl_BaseVertex->data.how_declared = ir_var_declared_implicitly;
+         gl_BaseVertex->data.how_declared = ir_var_hidden;
          gl_BaseVertex->data.read_only = true;
          gl_BaseVertex->data.location = SYSTEM_VALUE_BASE_VERTEX;
          gl_BaseVertex->data.explicit_location = true;