mesa: implement ARB_compatibility
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -104,7 +104,7 @@ static bool
|
|||||||
compatibility_vs_only(const _mesa_glsl_parse_state *state)
|
compatibility_vs_only(const _mesa_glsl_parse_state *state)
|
||||||
{
|
{
|
||||||
return state->stage == MESA_SHADER_VERTEX &&
|
return state->stage == MESA_SHADER_VERTEX &&
|
||||||
state->language_version <= 130 &&
|
(state->compat_shader || state->ARB_compatibility_enable) &&
|
||||||
!state->es_shader;
|
!state->es_shader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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,
|
/* 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+).
|
* 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++) {
|
for (unsigned i = 0; i < ARRAY_SIZE(deprecated_types); i++) {
|
||||||
add_type(symbols, deprecated_types[i]);
|
add_type(symbols, deprecated_types[i]);
|
||||||
}
|
}
|
||||||
|
@@ -441,7 +441,7 @@ private:
|
|||||||
builtin_variable_generator::builtin_variable_generator(
|
builtin_variable_generator::builtin_variable_generator(
|
||||||
exec_list *instructions, struct _mesa_glsl_parse_state *state)
|
exec_list *instructions, struct _mesa_glsl_parse_state *state)
|
||||||
: instructions(instructions), state(state), symtab(state->symbols),
|
: 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),
|
bool_t(glsl_type::bool_type), int_t(glsl_type::int_type),
|
||||||
uint_t(glsl_type::uint_type),
|
uint_t(glsl_type::uint_type),
|
||||||
uint64_t(glsl_type::uint64_t_type),
|
uint64_t(glsl_type::uint64_t_type),
|
||||||
|
@@ -616,6 +616,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
|||||||
EXT(ARB_ES3_2_compatibility),
|
EXT(ARB_ES3_2_compatibility),
|
||||||
EXT(ARB_arrays_of_arrays),
|
EXT(ARB_arrays_of_arrays),
|
||||||
EXT(ARB_bindless_texture),
|
EXT(ARB_bindless_texture),
|
||||||
|
EXT(ARB_compatibility),
|
||||||
EXT(ARB_compute_shader),
|
EXT(ARB_compute_shader),
|
||||||
EXT(ARB_compute_variable_group_size),
|
EXT(ARB_compute_variable_group_size),
|
||||||
EXT(ARB_conservative_depth),
|
EXT(ARB_conservative_depth),
|
||||||
|
@@ -609,6 +609,8 @@ struct _mesa_glsl_parse_state {
|
|||||||
bool ARB_arrays_of_arrays_warn;
|
bool ARB_arrays_of_arrays_warn;
|
||||||
bool ARB_bindless_texture_enable;
|
bool ARB_bindless_texture_enable;
|
||||||
bool ARB_bindless_texture_warn;
|
bool ARB_bindless_texture_warn;
|
||||||
|
bool ARB_compatibility_enable;
|
||||||
|
bool ARB_compatibility_warn;
|
||||||
bool ARB_compute_shader_enable;
|
bool ARB_compute_shader_enable;
|
||||||
bool ARB_compute_shader_warn;
|
bool ARB_compute_shader_warn;
|
||||||
bool ARB_compute_variable_group_size_enable;
|
bool ARB_compute_variable_group_size_enable;
|
||||||
|
@@ -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_clear_texture , ARB_clear_texture , GLL, GLC, x , x , 2013)
|
||||||
EXT(ARB_clip_control , ARB_clip_control , GLL, GLC, x , x , 2014)
|
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_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_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_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)
|
EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size , GLL, GLC, x , x , 2013)
|
||||||
|
@@ -4177,6 +4177,7 @@ struct gl_extensions
|
|||||||
GLboolean ARB_clear_texture;
|
GLboolean ARB_clear_texture;
|
||||||
GLboolean ARB_clip_control;
|
GLboolean ARB_clip_control;
|
||||||
GLboolean ARB_color_buffer_float;
|
GLboolean ARB_color_buffer_float;
|
||||||
|
GLboolean ARB_compatibility;
|
||||||
GLboolean ARB_compute_shader;
|
GLboolean ARB_compute_shader;
|
||||||
GLboolean ARB_compute_variable_group_size;
|
GLboolean ARB_compute_variable_group_size;
|
||||||
GLboolean ARB_conditional_render_inverted;
|
GLboolean ARB_conditional_render_inverted;
|
||||||
|
Reference in New Issue
Block a user