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@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
This commit is contained in:
Ian Romanick
2012-02-29 08:29:39 -08:00
committed by Kenneth Graunke
parent 767ba60831
commit 1e6a2c1059
+13 -1
View 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";
}
}