[Mesa-dev] [PATCH] glsl: Make gl_InstanceID available with GL_ARB_draw_instanced extension
Marek Olšák
maraeo at gmail.com
Wed Feb 29 14:46:18 PST 2012
This is awesome news! Thank you very much!
Reviewed-by: Marek Olšák <maraeo at gmail.com>
On Wed, Feb 29, 2012 at 5:29 PM, Ian Romanick <idr at freedesktop.org> wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> 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>
> Cc: Marek Olšák <maraeo at gmail.com>
> ---
> The changes to the OpenGL registry just landed.
>
> 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";
> }
> }
>
> --
> 1.7.6.5
>
More information about the mesa-dev
mailing list