mesa: GL_ARB_shader_objects is not optional
This extension just provides some of the most basic software framework for GLSL. Without GL_ARB_vertex_shader or GL_ARB_fragment_shader, applications still cannot use GLSL. There's no value in conditionalizing support for this extension. NOTE: This has the side effect of enabling the extension in the radeon, r200, and nouveau drivers. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:

committed by
Kenneth Graunke

parent
9bc24b4fc4
commit
e6ec425d6e
@@ -615,7 +615,6 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
||||
_mesa_set_enable(ctx, GL_FRAGMENT_SHADER_ATI, GL_FALSE);
|
||||
}
|
||||
|
||||
if (ctx->Extensions.ARB_shader_objects) {
|
||||
_mesa_reference_shader_program(ctx, &save->VertexShader,
|
||||
ctx->Shader.CurrentVertexProgram);
|
||||
_mesa_reference_shader_program(ctx, &save->GeometryShader,
|
||||
@@ -627,7 +626,6 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
||||
|
||||
_mesa_UseProgram(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (state & MESA_META_STENCIL_TEST) {
|
||||
save->Stencil = ctx->Stencil; /* struct copy */
|
||||
|
@@ -51,7 +51,6 @@ intelInitExtensions(struct gl_context *ctx)
|
||||
ctx->Extensions.ARB_internalformat_query = true;
|
||||
ctx->Extensions.ARB_map_buffer_range = true;
|
||||
ctx->Extensions.ARB_point_sprite = true;
|
||||
ctx->Extensions.ARB_shader_objects = true;
|
||||
ctx->Extensions.ARB_shading_language_100 = true;
|
||||
ctx->Extensions.ARB_sync = true;
|
||||
ctx->Extensions.ARB_texture_border_clamp = true;
|
||||
|
@@ -66,7 +66,6 @@ intelInitExtensions(struct gl_context *ctx)
|
||||
ctx->Extensions.ARB_point_sprite = true;
|
||||
ctx->Extensions.ARB_seamless_cube_map = true;
|
||||
ctx->Extensions.ARB_shader_bit_encoding = true;
|
||||
ctx->Extensions.ARB_shader_objects = true;
|
||||
ctx->Extensions.ARB_shader_texture_lod = true;
|
||||
ctx->Extensions.ARB_shading_language_100 = true;
|
||||
ctx->Extensions.ARB_shadow = true;
|
||||
|
@@ -100,7 +100,7 @@ static const struct extension extension_table[] = {
|
||||
{ "GL_ARB_fragment_shader", o(ARB_fragment_shader), GL, 2002 },
|
||||
{ "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_get_program_binary", o(dummy_true), 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 },
|
||||
@@ -121,7 +121,7 @@ static const struct extension extension_table[] = {
|
||||
{ "GL_ARB_sampler_objects", o(dummy_true), GL, 2009 },
|
||||
{ "GL_ARB_seamless_cube_map", o(ARB_seamless_cube_map), GL, 2009 },
|
||||
{ "GL_ARB_shader_bit_encoding", o(ARB_shader_bit_encoding), GL, 2010 },
|
||||
{ "GL_ARB_shader_objects", o(ARB_shader_objects), GL, 2002 },
|
||||
{ "GL_ARB_shader_objects", o(dummy_true), GL, 2002 },
|
||||
{ "GL_ARB_shader_stencil_export", o(ARB_shader_stencil_export), GL, 2009 },
|
||||
{ "GL_ARB_shader_texture_lod", o(ARB_shader_texture_lod), GL, 2009 },
|
||||
{ "GL_ARB_shading_language_100", o(ARB_shading_language_100), GLL, 2003 },
|
||||
@@ -260,7 +260,7 @@ static const struct extension extension_table[] = {
|
||||
{ "GL_OES_fbo_render_mipmap", o(dummy_true), ES1 | ES2, 2005 },
|
||||
{ "GL_OES_fixed_point", o(dummy_true), ES1, 2002 },
|
||||
{ "GL_OES_framebuffer_object", o(dummy_true), ES1, 2005 },
|
||||
{ "GL_OES_get_program_binary", o(ARB_shader_objects), ES2, 2008 },
|
||||
{ "GL_OES_get_program_binary", o(dummy_true), ES2, 2008 },
|
||||
{ "GL_OES_mapbuffer", o(dummy_true), ES1 | ES2, 2005 },
|
||||
{ "GL_OES_matrix_get", o(dummy_true), ES1, 2004 },
|
||||
{ "GL_OES_packed_depth_stencil", o(EXT_packed_depth_stencil), ES1 | ES2, 2007 },
|
||||
@@ -390,7 +390,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
|
||||
ctx->Extensions.ARB_occlusion_query = GL_TRUE;
|
||||
ctx->Extensions.ARB_occlusion_query2 = GL_TRUE;
|
||||
ctx->Extensions.ARB_point_sprite = GL_TRUE;
|
||||
ctx->Extensions.ARB_shader_objects = GL_TRUE;
|
||||
ctx->Extensions.EXT_separate_shader_objects = GL_TRUE;
|
||||
ctx->Extensions.ARB_shading_language_100 = GL_TRUE;
|
||||
ctx->Extensions.ARB_shadow = GL_TRUE;
|
||||
|
@@ -342,7 +342,6 @@ EXTRA_EXT(EXT_depth_bounds_test);
|
||||
EXTRA_EXT(ARB_depth_clamp);
|
||||
EXTRA_EXT(ATI_fragment_shader);
|
||||
EXTRA_EXT(EXT_framebuffer_blit);
|
||||
EXTRA_EXT(ARB_shader_objects);
|
||||
EXTRA_EXT(EXT_provoking_vertex);
|
||||
EXTRA_EXT(ARB_fragment_shader);
|
||||
EXTRA_EXT(ARB_fragment_program);
|
||||
|
@@ -280,7 +280,7 @@ descriptor=[
|
||||
# GL_ARB_shader_objects
|
||||
# Actually, this token isn't part of GL_ARB_shader_objects, but is
|
||||
# close enough for now.
|
||||
[ "CURRENT_PROGRAM", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_shader_objects" ],
|
||||
[ "CURRENT_PROGRAM", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ],
|
||||
|
||||
# OpenGL 2.0
|
||||
[ "STENCIL_BACK_FUNC", "CONTEXT_ENUM(Stencil.Function[1]), NO_EXTRA" ],
|
||||
@@ -311,8 +311,8 @@ descriptor=[
|
||||
[ "SHADER_BINARY_FORMATS", "CONST(0), extra_ARB_ES2_compatibility_api_es2" ],
|
||||
|
||||
# GL_ARB_get_program_binary / GL_OES_get_program_binary
|
||||
[ "NUM_PROGRAM_BINARY_FORMATS", "CONST(0), extra_ARB_shader_objects" ],
|
||||
[ "PROGRAM_BINARY_FORMATS", "LOC_CUSTOM, TYPE_INVALID, 0, extra_ARB_shader_objects" ],
|
||||
[ "NUM_PROGRAM_BINARY_FORMATS", "CONST(0), NO_EXTRA" ],
|
||||
[ "PROGRAM_BINARY_FORMATS", "LOC_CUSTOM, TYPE_INVALID, 0, NO_EXTRA" ],
|
||||
]},
|
||||
|
||||
# GLES3 is not a typo.
|
||||
|
@@ -41,11 +41,6 @@ shading_language_version(struct gl_context *ctx)
|
||||
switch (ctx->API) {
|
||||
case API_OPENGL_COMPAT:
|
||||
case API_OPENGL_CORE:
|
||||
if (!ctx->Extensions.ARB_shader_objects) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetString");
|
||||
return (const GLubyte *) 0;
|
||||
}
|
||||
|
||||
switch (ctx->Const.GLSLVersion) {
|
||||
case 110:
|
||||
return (const GLubyte *) "1.10";
|
||||
|
@@ -3014,7 +3014,6 @@ struct gl_extensions
|
||||
GLboolean ARB_point_sprite;
|
||||
GLboolean ARB_seamless_cube_map;
|
||||
GLboolean ARB_shader_bit_encoding;
|
||||
GLboolean ARB_shader_objects;
|
||||
GLboolean ARB_shader_stencil_export;
|
||||
GLboolean ARB_shader_texture_lod;
|
||||
GLboolean ARB_shading_language_100;
|
||||
|
@@ -211,7 +211,6 @@ compute_version(struct gl_context *ctx)
|
||||
ctx->Extensions.EXT_shadow_funcs);
|
||||
const GLboolean ver_2_0 = (ver_1_5 &&
|
||||
ctx->Extensions.ARB_point_sprite &&
|
||||
ctx->Extensions.ARB_shader_objects &&
|
||||
ctx->Extensions.ARB_vertex_shader &&
|
||||
ctx->Extensions.ARB_fragment_shader &&
|
||||
ctx->Extensions.ARB_texture_non_power_of_two &&
|
||||
@@ -358,7 +357,6 @@ compute_version_es2(struct gl_context *ctx)
|
||||
ctx->Extensions.EXT_blend_color &&
|
||||
ctx->Extensions.EXT_blend_func_separate &&
|
||||
ctx->Extensions.EXT_blend_minmax &&
|
||||
ctx->Extensions.ARB_shader_objects &&
|
||||
ctx->Extensions.ARB_vertex_shader &&
|
||||
ctx->Extensions.ARB_fragment_shader &&
|
||||
ctx->Extensions.ARB_texture_non_power_of_two &&
|
||||
|
@@ -537,7 +537,6 @@ void st_init_extensions(struct st_context *st)
|
||||
ctx->Extensions.ARB_half_float_vertex = GL_TRUE;
|
||||
ctx->Extensions.ARB_internalformat_query = GL_TRUE;
|
||||
ctx->Extensions.ARB_map_buffer_range = GL_TRUE;
|
||||
ctx->Extensions.ARB_shader_objects = GL_TRUE;
|
||||
ctx->Extensions.ARB_shading_language_100 = GL_TRUE;
|
||||
ctx->Extensions.ARB_texture_border_clamp = GL_TRUE; /* XXX temp */
|
||||
ctx->Extensions.ARB_texture_cube_map = GL_TRUE;
|
||||
|
Reference in New Issue
Block a user