glsl: Make gl_InstanceID available with GL_ARB_draw_instanced extension
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 29 Feb 2012 16:29:39 +0000 (08:29 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 29 Feb 2012 22:57:15 +0000 (14:57 -0800)
Originally ARB_draw_instanced only specified that ARB decorated name.
Since no vendor actually implemented that behavior and some apps use
the undecorated name, the extension now specifies that both names are
available.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
src/glsl/builtin_variables.cpp

index ed6b922ca62473b3a505a954222f917f69365ff8..66b3abdd84ce3b10de28d710834f1604185cfc04 100644 (file)
@@ -870,13 +870,25 @@ generate_ARB_draw_instanced_variables(exec_list *instructions,
    /* gl_InstanceIDARB is only available in the vertex shader.
     */
    if (target == vertex_shader) {
-      ir_variable *const inst =
+      ir_variable *inst =
          add_variable(instructions, state->symbols,
                      "gl_InstanceIDARB", glsl_type::int_type,
                      ir_var_system_value, SYSTEM_VALUE_INSTANCE_ID);
 
       if (warn)
          inst->warn_extension = "GL_ARB_draw_instanced";
+
+      /* Originally ARB_draw_instanced only specified that ARB decorated name.
+       * Since no vendor actually implemented that behavior and some apps use
+       * the undecorated name, the extension now specifies that both names are
+       * available.
+       */
+      inst = add_variable(instructions, state->symbols,
+                         "gl_InstanceID", glsl_type::int_type,
+                         ir_var_system_value, SYSTEM_VALUE_INSTANCE_ID);
+
+      if (warn)
+         inst->warn_extension = "GL_ARB_draw_instanced";
    }
 }