Mesa (master): glsl: Make gl_InstanceID available with GL_ARB_draw_instanced extension

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Feb 29 23:05:43 UTC 2012


Module: Mesa
Branch: master
Commit: 1e6a2c10590bc6b4112ec2e54e1de7d8f9fd349d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e6a2c10590bc6b4112ec2e54e1de7d8f9fd349d

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Feb 29 08:29:39 2012 -0800

glsl: Make gl_InstanceID available with GL_ARB_draw_instanced extension

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 at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Marek Olšák <maraeo at gmail.com>

---

 src/glsl/builtin_variables.cpp |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp
index ed6b922..66b3abd 100644
--- a/src/glsl/builtin_variables.cpp
+++ b/src/glsl/builtin_variables.cpp
@@ -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";
    }
 }
 




More information about the mesa-commit mailing list