From f99f78e49a10b92e236ee0909eb806d353e1f2e6 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Tue, 9 Apr 2013 16:01:38 -0700 Subject: [PATCH] mesa: Add infrastructure for ARB_gpu_shader5. Reviewed-by: Chris Forbes --- src/glsl/builtins/tools/generate_builtins.py | 1 + src/glsl/glcpp/glcpp-parse.y | 3 +++ src/glsl/glsl_parser_extras.cpp | 1 + src/glsl/glsl_parser_extras.h | 2 ++ src/glsl/standalone_scaffolding.cpp | 1 + src/mesa/main/extensions.c | 1 + src/mesa/main/mtypes.h | 1 + 7 files changed, 10 insertions(+) diff --git a/src/glsl/builtins/tools/generate_builtins.py b/src/glsl/builtins/tools/generate_builtins.py index 75d3c21f43b..85bd5dddc73 100755 --- a/src/glsl/builtins/tools/generate_builtins.py +++ b/src/glsl/builtins/tools/generate_builtins.py @@ -192,6 +192,7 @@ read_builtins(GLenum target, const char *protos, const char **functions, unsigne st->ARB_shading_language_packing_enable = true; st->ARB_texture_multisample_enable = true; st->ARB_texture_query_lod_enable = true; + st->ARB_gpu_shader5_enable = true; _mesa_glsl_initialize_types(st); sh->ir = new(sh) exec_list; diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index 00edbbfbde2..f0d2ab00799 100644 --- a/src/glsl/glcpp/glcpp-parse.y +++ b/src/glsl/glcpp/glcpp-parse.y @@ -1236,6 +1236,9 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api) if (extensions->ARB_texture_query_lod) add_builtin_define(parser, "GL_ARB_texture_query_lod", 1); + + if (extensions->ARB_gpu_shader5) + add_builtin_define(parser, "GL_ARB_gpu_shader5", 1); } } diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index 099229410c9..e4636f87309 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -468,6 +468,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = { EXT(ARB_shading_language_packing, true, false, true, true, false, ARB_shading_language_packing), EXT(ARB_texture_multisample, true, false, true, true, false, ARB_texture_multisample), EXT(ARB_texture_query_lod, false, false, true, true, false, ARB_texture_query_lod), + EXT(ARB_gpu_shader5, true, true, true, true, false, ARB_gpu_shader5), }; #undef EXT diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h index 95891b595f8..c77dda84ef6 100644 --- a/src/glsl/glsl_parser_extras.h +++ b/src/glsl/glsl_parser_extras.h @@ -284,6 +284,8 @@ struct _mesa_glsl_parse_state { bool ARB_texture_multisample_warn; bool ARB_texture_query_lod_enable; bool ARB_texture_query_lod_warn; + bool ARB_gpu_shader5_enable; + bool ARB_gpu_shader5_warn; /*@}*/ /** Extensions supported by the OpenGL implementation. */ diff --git a/src/glsl/standalone_scaffolding.cpp b/src/glsl/standalone_scaffolding.cpp index 0c1f52f48c1..3c8f70f9e29 100644 --- a/src/glsl/standalone_scaffolding.cpp +++ b/src/glsl/standalone_scaffolding.cpp @@ -104,6 +104,7 @@ void initialize_context_to_defaults(struct gl_context *ctx, gl_api api) ctx->Extensions.ARB_texture_cube_map_array = true; ctx->Extensions.ARB_texture_multisample = true; ctx->Extensions.ARB_texture_query_lod = true; + ctx->Extensions.ARB_gpu_shader5 = true; ctx->Const.GLSLVersion = 120; diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index d8c5f53ddd4..8b67fca23b7 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -102,6 +102,7 @@ static const struct extension extension_table[] = { { "GL_ARB_framebuffer_object", o(ARB_framebuffer_object), GL, 2005 }, { "GL_ARB_framebuffer_sRGB", o(EXT_framebuffer_sRGB), GL, 1998 }, { "GL_ARB_get_program_binary", o(ARB_shader_objects), GL, 2010 }, + { "GL_ARB_gpu_shader5", o(ARB_gpu_shader5), GL, 2010 }, { "GL_ARB_half_float_pixel", o(ARB_half_float_pixel), GL, 2003 }, { "GL_ARB_half_float_vertex", o(ARB_half_float_vertex), GL, 2008 }, { "GL_ARB_instanced_arrays", o(ARB_instanced_arrays), GL, 2008 }, diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index b37c6ab66e5..3fb8618c62f 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2970,6 +2970,7 @@ struct gl_extensions GLboolean ARB_framebuffer_object; GLboolean ARB_explicit_attrib_location; GLboolean ARB_geometry_shader4; + GLboolean ARB_gpu_shader5; GLboolean ARB_half_float_pixel; GLboolean ARB_half_float_vertex; GLboolean ARB_instanced_arrays; -- 2.30.2