mesa/sso: Enable GL_ARB_separate_shader_objects by default
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
@@ -2069,6 +2069,7 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
add_builtin_define(parser, "GL_ARB_draw_buffers", 1);
|
add_builtin_define(parser, "GL_ARB_draw_buffers", 1);
|
||||||
|
add_builtin_define(parser, "GL_ARB_separate_shader_objects", 1);
|
||||||
add_builtin_define(parser, "GL_ARB_texture_rectangle", 1);
|
add_builtin_define(parser, "GL_ARB_texture_rectangle", 1);
|
||||||
add_builtin_define(parser, "GL_AMD_shader_trinary_minmax", 1);
|
add_builtin_define(parser, "GL_AMD_shader_trinary_minmax", 1);
|
||||||
|
|
||||||
@@ -2134,9 +2135,6 @@ _glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t versio
|
|||||||
if (extensions->ARB_texture_gather)
|
if (extensions->ARB_texture_gather)
|
||||||
add_builtin_define(parser, "GL_ARB_texture_gather", 1);
|
add_builtin_define(parser, "GL_ARB_texture_gather", 1);
|
||||||
|
|
||||||
if (extensions->ARB_separate_shader_objects)
|
|
||||||
add_builtin_define(parser, "GL_ARB_separate_shader_objects", 1);
|
|
||||||
|
|
||||||
if (extensions->ARB_shader_atomic_counters)
|
if (extensions->ARB_shader_atomic_counters)
|
||||||
add_builtin_define(parser, "GL_ARB_shader_atomic_counters", 1);
|
add_builtin_define(parser, "GL_ARB_shader_atomic_counters", 1);
|
||||||
|
|
||||||
|
@@ -514,7 +514,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
|||||||
EXT(ARB_fragment_coord_conventions, true, false, ARB_fragment_coord_conventions),
|
EXT(ARB_fragment_coord_conventions, true, false, ARB_fragment_coord_conventions),
|
||||||
EXT(ARB_texture_rectangle, true, false, dummy_true),
|
EXT(ARB_texture_rectangle, true, false, dummy_true),
|
||||||
EXT(EXT_texture_array, true, false, EXT_texture_array),
|
EXT(EXT_texture_array, true, false, EXT_texture_array),
|
||||||
EXT(ARB_separate_shader_objects, true, false, ARB_separate_shader_objects),
|
EXT(ARB_separate_shader_objects, true, false, dummy_true),
|
||||||
EXT(ARB_shader_texture_lod, true, false, ARB_shader_texture_lod),
|
EXT(ARB_shader_texture_lod, true, false, ARB_shader_texture_lod),
|
||||||
EXT(ARB_shader_stencil_export, true, false, ARB_shader_stencil_export),
|
EXT(ARB_shader_stencil_export, true, false, ARB_shader_stencil_export),
|
||||||
EXT(AMD_conservative_depth, true, false, ARB_conservative_depth),
|
EXT(AMD_conservative_depth, true, false, ARB_conservative_depth),
|
||||||
|
@@ -576,11 +576,10 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
|||||||
_mesa_set_enable(ctx, GL_FRAGMENT_SHADER_ATI, GL_FALSE);
|
_mesa_set_enable(ctx, GL_FRAGMENT_SHADER_ATI, GL_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->Extensions.ARB_separate_shader_objects) {
|
if (ctx->Pipeline.Current) {
|
||||||
if (ctx->Pipeline.Current) {
|
_mesa_reference_pipeline_object(ctx, &save->Pipeline,
|
||||||
_mesa_reference_pipeline_object(ctx, &save->Pipeline,
|
ctx->Pipeline.Current);
|
||||||
ctx->Pipeline.Current);
|
_mesa_BindProgramPipeline(0);
|
||||||
_mesa_BindProgramPipeline(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save the shader state from ctx->Shader (instead of ctx->_Shader) so
|
/* Save the shader state from ctx->Shader (instead of ctx->_Shader) so
|
||||||
@@ -975,7 +974,6 @@ _mesa_meta_end(struct gl_context *ctx)
|
|||||||
ctx->Pipeline.Default);
|
ctx->Pipeline.Default);
|
||||||
|
|
||||||
if (save->Pipeline) {
|
if (save->Pipeline) {
|
||||||
assert(ctx->Extensions.ARB_separate_shader_objects);
|
|
||||||
_mesa_bind_pipeline(ctx, save->Pipeline);
|
_mesa_bind_pipeline(ctx, save->Pipeline);
|
||||||
|
|
||||||
_mesa_reference_pipeline_object(ctx, &save->Pipeline, NULL);
|
_mesa_reference_pipeline_object(ctx, &save->Pipeline, NULL);
|
||||||
|
@@ -128,7 +128,7 @@ static const struct extension extension_table[] = {
|
|||||||
{ "GL_ARB_sample_shading", o(ARB_sample_shading), GL, 2009 },
|
{ "GL_ARB_sample_shading", o(ARB_sample_shading), GL, 2009 },
|
||||||
{ "GL_ARB_sampler_objects", o(dummy_true), GL, 2009 },
|
{ "GL_ARB_sampler_objects", o(dummy_true), GL, 2009 },
|
||||||
{ "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 },
|
{ "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 },
|
||||||
{ "GL_ARB_separate_shader_objects", o(ARB_separate_shader_objects), GL, 2010 },
|
{ "GL_ARB_separate_shader_objects", o(dummy_true), GL, 2010 },
|
||||||
{ "GL_ARB_shader_atomic_counters", o(ARB_shader_atomic_counters), GL, 2011 },
|
{ "GL_ARB_shader_atomic_counters", o(ARB_shader_atomic_counters), GL, 2011 },
|
||||||
{ "GL_ARB_shader_bit_encoding", o(ARB_shader_bit_encoding), GL, 2010 },
|
{ "GL_ARB_shader_bit_encoding", o(ARB_shader_bit_encoding), GL, 2010 },
|
||||||
{ "GL_ARB_shader_image_load_store", o(ARB_shader_image_load_store), GL, 2011 },
|
{ "GL_ARB_shader_image_load_store", o(ARB_shader_image_load_store), GL, 2011 },
|
||||||
|
@@ -387,7 +387,6 @@ EXTRA_EXT(ARB_texture_cube_map_array);
|
|||||||
EXTRA_EXT(ARB_texture_buffer_range);
|
EXTRA_EXT(ARB_texture_buffer_range);
|
||||||
EXTRA_EXT(ARB_texture_multisample);
|
EXTRA_EXT(ARB_texture_multisample);
|
||||||
EXTRA_EXT(ARB_texture_gather);
|
EXTRA_EXT(ARB_texture_gather);
|
||||||
EXTRA_EXT(ARB_separate_shader_objects);
|
|
||||||
EXTRA_EXT(ARB_shader_atomic_counters);
|
EXTRA_EXT(ARB_shader_atomic_counters);
|
||||||
EXTRA_EXT(ARB_draw_indirect);
|
EXTRA_EXT(ARB_draw_indirect);
|
||||||
EXTRA_EXT(ARB_shader_image_load_store);
|
EXTRA_EXT(ARB_shader_image_load_store);
|
||||||
|
@@ -727,7 +727,7 @@ descriptor=[
|
|||||||
[ "MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB", "CONTEXT_INT(Const.MaxProgramTextureGatherComponents), extra_ARB_texture_gather"],
|
[ "MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB", "CONTEXT_INT(Const.MaxProgramTextureGatherComponents), extra_ARB_texture_gather"],
|
||||||
|
|
||||||
# GL_ARB_separate_shader_objects
|
# GL_ARB_separate_shader_objects
|
||||||
[ "PROGRAM_PIPELINE_BINDING", "LOC_CUSTOM, TYPE_INT, GL_PROGRAM_PIPELINE_BINDING, extra_ARB_separate_shader_objects" ],
|
[ "PROGRAM_PIPELINE_BINDING", "LOC_CUSTOM, TYPE_INT, GL_PROGRAM_PIPELINE_BINDING, NO_EXTRA" ],
|
||||||
|
|
||||||
# GL_ARB_shader_atomic_counters
|
# GL_ARB_shader_atomic_counters
|
||||||
[ "ATOMIC_COUNTER_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_shader_atomic_counters" ],
|
[ "ATOMIC_COUNTER_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_shader_atomic_counters" ],
|
||||||
|
@@ -3540,7 +3540,6 @@ struct gl_extensions
|
|||||||
GLboolean ARB_point_sprite;
|
GLboolean ARB_point_sprite;
|
||||||
GLboolean ARB_sample_shading;
|
GLboolean ARB_sample_shading;
|
||||||
GLboolean ARB_seamless_cube_map;
|
GLboolean ARB_seamless_cube_map;
|
||||||
GLboolean ARB_separate_shader_objects;
|
|
||||||
GLboolean ARB_shader_atomic_counters;
|
GLboolean ARB_shader_atomic_counters;
|
||||||
GLboolean ARB_shader_bit_encoding;
|
GLboolean ARB_shader_bit_encoding;
|
||||||
GLboolean ARB_shader_image_load_store;
|
GLboolean ARB_shader_image_load_store;
|
||||||
|
@@ -700,9 +700,6 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *param
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case GL_PROGRAM_SEPARABLE:
|
case GL_PROGRAM_SEPARABLE:
|
||||||
if (!ctx->Extensions.ARB_separate_shader_objects)
|
|
||||||
break;
|
|
||||||
|
|
||||||
*params = shProg->SeparateShader;
|
*params = shProg->SeparateShader;
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
@@ -1777,9 +1774,6 @@ _mesa_ProgramParameteri(GLuint program, GLenum pname, GLint value)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case GL_PROGRAM_SEPARABLE:
|
case GL_PROGRAM_SEPARABLE:
|
||||||
if (!ctx->Extensions.ARB_separate_shader_objects)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Spec imply that the behavior is the same as ARB_get_program_binary
|
/* Spec imply that the behavior is the same as ARB_get_program_binary
|
||||||
* Chapter 7.3 Program Objects
|
* Chapter 7.3 Program Objects
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user