diff options
-rw-r--r-- | 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 ed6b922ca62..66b3abdd84c 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"; } } |