From f2bda1b5664cd8a8744798926f2562212229d938 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 8 Apr 2011 12:41:42 -0700 Subject: [PATCH] glsl: Only let a shader enable GL_ARB_draw_instanced if the driver supports it Also make the GL_ARB_draw_instanced block follow the same pattern as the other blocks. Tested-by: Brian Paul Reviewed-by: Kenneth Graunke --- src/glsl/glsl_parser_extras.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index e8c6093..073ec38 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -211,14 +211,13 @@ _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp, state->ARB_draw_buffers_warn = (ext_mode == extension_warn); } } else if (strcmp(name, "GL_ARB_draw_instanced") == 0) { + state->ARB_draw_instanced_enable = (ext_mode != extension_disable); + state->ARB_draw_instanced_warn = (ext_mode == extension_warn); + /* This extension is only supported in vertex shaders. */ - if (state->target != vertex_shader) { - unsupported = true; - } else { - state->ARB_draw_instanced_enable = (ext_mode != extension_disable); - state->ARB_draw_instanced_warn = (ext_mode == extension_warn); - } + unsupported = (state->target != vertex_shader) + || !state->extensions->ARB_draw_instanced; } else if (strcmp(name, "GL_ARB_explicit_attrib_location") == 0) { state->ARB_explicit_attrib_location_enable = (ext_mode != extension_disable); -- 2.7.4