From: Marek Olšák Date: Wed, 14 Feb 2018 19:12:51 +0000 (+0100) Subject: mesa: implement ARB_compatibility X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=605a7f6db51cb946eed508bc9a7adfa753c75e10;p=mesa.git mesa: implement ARB_compatibility Tested-by: Dieter Nützel Reviewed-by: Brian Paul --- diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp index 293e8bd638f..5f772c9eaba 100644 --- a/src/compiler/glsl/builtin_functions.cpp +++ b/src/compiler/glsl/builtin_functions.cpp @@ -104,7 +104,7 @@ static bool compatibility_vs_only(const _mesa_glsl_parse_state *state) { return state->stage == MESA_SHADER_VERTEX && - state->language_version <= 130 && + (state->compat_shader || state->ARB_compatibility_enable) && !state->es_shader; } diff --git a/src/compiler/glsl/builtin_types.cpp b/src/compiler/glsl/builtin_types.cpp index b64f75779bc..7a01cb48bc8 100644 --- a/src/compiler/glsl/builtin_types.cpp +++ b/src/compiler/glsl/builtin_types.cpp @@ -288,7 +288,7 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state) /* Add deprecated structure types. While these were deprecated in 1.30, * they're still present. We've removed them in 1.40+ (OpenGL 3.1+). */ - if (state->compat_shader) { + if (state->compat_shader || state->ARB_compatibility_enable) { for (unsigned i = 0; i < ARRAY_SIZE(deprecated_types); i++) { add_type(symbols, deprecated_types[i]); } diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp index a686cb6a457..f0210b60bc7 100644 --- a/src/compiler/glsl/builtin_variables.cpp +++ b/src/compiler/glsl/builtin_variables.cpp @@ -441,7 +441,7 @@ private: builtin_variable_generator::builtin_variable_generator( exec_list *instructions, struct _mesa_glsl_parse_state *state) : instructions(instructions), state(state), symtab(state->symbols), - compatibility(state->compat_shader || !state->is_version(140, 100)), + compatibility(state->compat_shader || state->ARB_compatibility_enable), bool_t(glsl_type::bool_type), int_t(glsl_type::int_type), uint_t(glsl_type::uint_type), uint64_t(glsl_type::uint64_t_type), diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp index d99916d8ada..81d74e92ce3 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -616,6 +616,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = { EXT(ARB_ES3_2_compatibility), EXT(ARB_arrays_of_arrays), EXT(ARB_bindless_texture), + EXT(ARB_compatibility), EXT(ARB_compute_shader), EXT(ARB_compute_variable_group_size), EXT(ARB_conservative_depth), diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h index 508befd4606..f88cb783473 100644 --- a/src/compiler/glsl/glsl_parser_extras.h +++ b/src/compiler/glsl/glsl_parser_extras.h @@ -609,6 +609,8 @@ struct _mesa_glsl_parse_state { bool ARB_arrays_of_arrays_warn; bool ARB_bindless_texture_enable; bool ARB_bindless_texture_warn; + bool ARB_compatibility_enable; + bool ARB_compatibility_warn; bool ARB_compute_shader_enable; bool ARB_compute_shader_warn; bool ARB_compute_variable_group_size_enable; diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index f4925ed442b..02c97a242ab 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -40,6 +40,7 @@ EXT(ARB_clear_buffer_object , dummy_true EXT(ARB_clear_texture , ARB_clear_texture , GLL, GLC, x , x , 2013) EXT(ARB_clip_control , ARB_clip_control , GLL, GLC, x , x , 2014) EXT(ARB_color_buffer_float , ARB_color_buffer_float , GLL, GLC, x , x , 2004) +EXT(ARB_compatibility , ARB_compatibility , GLL, x , x , x , 2009) EXT(ARB_compressed_texture_pixel_storage , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_compute_shader , ARB_compute_shader , GLL, GLC, x , x , 2012) EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size , GLL, GLC, x , x , 2013) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 15f39cbacc3..62b58cea991 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -4177,6 +4177,7 @@ struct gl_extensions GLboolean ARB_clear_texture; GLboolean ARB_clip_control; GLboolean ARB_color_buffer_float; + GLboolean ARB_compatibility; GLboolean ARB_compute_shader; GLboolean ARB_compute_variable_group_size; GLboolean ARB_conditional_render_inverted;