mesa: OpenGL 1.3 feature GL_ARB_texture_cube_map is not optional

Cheatsheet:

_mesa_has_ARB_texture_cube_map() becomes (true &&
ctx->Extensions.Version >=
_mesa_extension_table[...].version[ctx->API]).  The last value is 0 when
ctx->API is API_OPENGL_COMPAT and ~0 otherwise.  The whole function
effectively becomes (ctx->API == API_OPENGL_COMPAT).

_mesa_has_OES_texture_cube_map() becomes (true &&
ctx->Extensions.Version >=
_mesa_extension_table[...].version[ctx->API]).  The last value is 0 when
ctx->API is API_OPENGLES and ~0 otherwise.  The whole function
effectively becomes (ctx->API == API_OPENGLES).

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
This commit is contained in:
Ian Romanick 2021-12-14 17:06:49 -08:00 committed by Marge Bot
parent c11641ab24
commit 7649ab1f03
16 changed files with 30 additions and 48 deletions

View File

@ -510,10 +510,8 @@ pop_enable_group(struct gl_context *ctx, const struct gl_enable_attrib_node *ena
TEST_AND_UPDATE_BIT(old_enabled, enabled, TEXTURE_RECT_INDEX,
GL_TEXTURE_RECTANGLE);
}
if (ctx->Extensions.ARB_texture_cube_map) {
TEST_AND_UPDATE_BIT(old_enabled, enabled, TEXTURE_CUBE_INDEX,
GL_TEXTURE_CUBE_MAP);
}
TEST_AND_UPDATE_BIT(old_enabled, enabled, TEXTURE_CUBE_INDEX,
GL_TEXTURE_CUBE_MAP);
}
if (old_gen_enabled != gen_enabled) {

View File

@ -991,8 +991,7 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
/* GL_ARB_texture_cube_map */
case GL_TEXTURE_CUBE_MAP:
if (!_mesa_has_ARB_texture_cube_map(ctx) &&
!_mesa_has_OES_texture_cube_map(ctx))
if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
goto invalid_enum_error;
if (!enable_texture(ctx, state, TEXTURE_CUBE_BIT)) {
return;
@ -1831,8 +1830,7 @@ _mesa_IsEnabled( GLenum cap )
/* GL_ARB_texture_cube_map */
case GL_TEXTURE_CUBE_MAP:
if (!_mesa_has_ARB_texture_cube_map(ctx) &&
!_mesa_has_OES_texture_cube_map(ctx))
if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES)
goto invalid_enum_error;
return is_texture_enabled(ctx, TEXTURE_CUBE_BIT);

View File

@ -154,7 +154,7 @@ EXT(ARB_texture_buffer_range , ARB_texture_buffer_range
EXT(ARB_texture_compression , dummy_true , GLL, x , x , x , 2000)
EXT(ARB_texture_compression_bptc , ARB_texture_compression_bptc , GLL, GLC, x , x , 2010)
EXT(ARB_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004)
EXT(ARB_texture_cube_map , ARB_texture_cube_map , GLL, x , x , x , 1999)
EXT(ARB_texture_cube_map , dummy_true , GLL, x , x , x , 1999)
EXT(ARB_texture_cube_map_array , ARB_texture_cube_map_array , GLL, GLC, x , x , 2009)
EXT(ARB_texture_env_add , dummy_true , GLL, x , x , x , 1999)
EXT(ARB_texture_env_combine , ARB_texture_env_combine , GLL, x , x , x , 2001)
@ -307,7 +307,7 @@ EXT(EXT_texture_compression_latc , EXT_texture_compression_latc
EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , 30, 2004)
EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , ES2, 2000)
EXT(EXT_texture_compression_s3tc_srgb , EXT_texture_compression_s3tc_srgb , x , x, x , ES2, 2016)
EXT(EXT_texture_cube_map , ARB_texture_cube_map , GLL, x , x , x , 2001)
EXT(EXT_texture_cube_map , dummy_true , GLL, x , x , x , 2001)
EXT(EXT_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014)
EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997)
EXT(EXT_texture_env_add , dummy_true , GLL, x , x , x , 1999)
@ -467,7 +467,7 @@ EXT(OES_texture_3D , dummy_true
EXT(OES_texture_border_clamp , dummy_true , x , x , x , ES2, 2014)
EXT(OES_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014)
EXT(OES_texture_compression_astc , OES_texture_compression_astc , x , x , ES1, ES2, 2015)
EXT(OES_texture_cube_map , ARB_texture_cube_map , x , x , ES1, x , 2007)
EXT(OES_texture_cube_map , dummy_true , x , x , ES1, x , 2007)
EXT(OES_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014)
EXT(OES_texture_env_crossbar , ARB_texture_env_crossbar , x , x , ES1, x , 2005)
EXT(OES_texture_float , OES_texture_float , x , x , x , ES2, 2005)

View File

@ -3625,7 +3625,7 @@ check_textarget(struct gl_context *ctx, int dims, GLenum target,
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
err = dims != 2 || !ctx->Extensions.ARB_texture_cube_map;
err = dims != 2;
break;
case GL_TEXTURE_3D:
err = dims != 3;

View File

@ -424,7 +424,7 @@ _is_target_supported(struct gl_context *ctx, GLenum target)
break;
case GL_TEXTURE_CUBE_MAP:
if (ctx->API != API_OPENGL_CORE && !_mesa_has_ARB_texture_cube_map(ctx))
if (!_mesa_is_desktop_gl(ctx))
return false;
break;

View File

@ -58,7 +58,7 @@ _mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx,
error = ctx->API == API_OPENGLES;
break;
case GL_TEXTURE_CUBE_MAP:
error = !ctx->Extensions.ARB_texture_cube_map;
error = false;
break;
case GL_TEXTURE_1D_ARRAY:
error = _mesa_is_gles(ctx) || !ctx->Extensions.EXT_texture_array;

View File

@ -524,7 +524,6 @@ static const int extra_ARB_framebuffer_object_or_EXT_framebuffer_multisample_or_
EXTRA_END
};
EXTRA_EXT(ARB_texture_cube_map);
EXTRA_EXT(EXT_texture_array);
EXTRA_EXT(NV_fog_distance);
EXTRA_EXT(EXT_texture_filter_anisotropic);
@ -2445,8 +2444,7 @@ tex_binding_to_index(const struct gl_context *ctx, GLenum binding)
case GL_TEXTURE_BINDING_3D:
return ctx->API != API_OPENGLES ? TEXTURE_3D_INDEX : -1;
case GL_TEXTURE_BINDING_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map
? TEXTURE_CUBE_INDEX : -1;
return TEXTURE_CUBE_INDEX;
case GL_TEXTURE_BINDING_RECTANGLE:
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle
? TEXTURE_RECT_INDEX : -1;

View File

@ -56,9 +56,9 @@ descriptor=[
# extensions below should mark the dependency.
# GL_ARB_texture_cube_map
[ "TEXTURE_BINDING_CUBE_MAP_ARB", "LOC_CUSTOM, TYPE_INT, TEXTURE_CUBE_INDEX, extra_ARB_texture_cube_map" ],
[ "TEXTURE_BINDING_CUBE_MAP_ARB", "LOC_CUSTOM, TYPE_INT, TEXTURE_CUBE_INDEX, NO_EXTRA" ],
# XXX: OES_texture_cube_map
[ "MAX_CUBE_MAP_TEXTURE_SIZE_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, Const.MaxCubeTextureLevels), extra_ARB_texture_cube_map" ],
[ "MAX_CUBE_MAP_TEXTURE_SIZE_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, Const.MaxCubeTextureLevels), NO_EXTRA" ],
# XXX: OES_blend_subtract
[ "BLEND_SRC_RGB", "CONTEXT_ENUM16(Color.Blend[0].SrcRGB), NO_EXTRA" ],

View File

@ -4449,7 +4449,6 @@ struct gl_extensions
GLboolean ARB_texture_buffer_range;
GLboolean ARB_texture_compression_bptc;
GLboolean ARB_texture_compression_rgtc;
GLboolean ARB_texture_cube_map;
GLboolean ARB_texture_cube_map_array;
GLboolean ARB_texture_env_combine;
GLboolean ARB_texture_env_crossbar;

View File

@ -876,7 +876,7 @@ legal_getteximage_target(struct gl_context *ctx, GLenum target, bool dsa)
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
return dsa ? GL_FALSE : ctx->Extensions.ARB_texture_cube_map;
return dsa ? GL_FALSE : GL_TRUE;
case GL_TEXTURE_CUBE_MAP:
return dsa ? GL_TRUE : GL_FALSE;
default:

View File

@ -502,8 +502,7 @@ _mesa_max_texture_levels(const struct gl_context *ctx, GLenum target)
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
case GL_PROXY_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map
? ctx->Const.MaxCubeTextureLevels : 0;
return ctx->Const.MaxCubeTextureLevels;
case GL_TEXTURE_RECTANGLE_NV:
case GL_PROXY_TEXTURE_RECTANGLE_NV:
return ctx->Extensions.NV_texture_rectangle ? 1 : 0;
@ -1400,7 +1399,7 @@ _mesa_target_can_be_compressed(const struct gl_context *ctx, GLenum target,
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
target_can_be_compresed = ctx->Extensions.ARB_texture_cube_map;
target_can_be_compresed = GL_TRUE;
break;
case GL_PROXY_TEXTURE_2D_ARRAY_EXT:
case GL_TEXTURE_2D_ARRAY_EXT:
@ -1522,15 +1521,14 @@ legal_teximage_target(struct gl_context *ctx, GLuint dims, GLenum target)
case GL_PROXY_TEXTURE_2D:
return _mesa_is_desktop_gl(ctx);
case GL_PROXY_TEXTURE_CUBE_MAP:
return _mesa_is_desktop_gl(ctx)
&& ctx->Extensions.ARB_texture_cube_map;
return _mesa_is_desktop_gl(ctx);
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
return ctx->Extensions.ARB_texture_cube_map;
return GL_TRUE;
case GL_TEXTURE_RECTANGLE_NV:
case GL_PROXY_TEXTURE_RECTANGLE_NV:
return _mesa_is_desktop_gl(ctx)
@ -1588,7 +1586,7 @@ legal_texsubimage_target(struct gl_context *ctx, GLuint dims, GLenum target,
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
return ctx->Extensions.ARB_texture_cube_map;
return GL_TRUE;
case GL_TEXTURE_RECTANGLE_NV:
return _mesa_is_desktop_gl(ctx)
&& ctx->Extensions.NV_texture_rectangle;
@ -5267,7 +5265,7 @@ compressed_subtexture_target_check(struct gl_context *ctx, GLenum target,
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
targetOK = ctx->Extensions.ARB_texture_cube_map;
targetOK = GL_TRUE;
break;
default:
targetOK = GL_FALSE;
@ -5277,7 +5275,7 @@ compressed_subtexture_target_check(struct gl_context *ctx, GLenum target,
case 3:
switch (target) {
case GL_TEXTURE_CUBE_MAP:
targetOK = dsa && ctx->Extensions.ARB_texture_cube_map;
targetOK = dsa;
break;
case GL_TEXTURE_2D_ARRAY:
targetOK = _mesa_is_gles3(ctx) ||

View File

@ -173,11 +173,9 @@ _mesa_get_current_tex_object(struct gl_context *ctx, GLenum target)
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
case GL_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map
? texUnit->CurrentTex[TEXTURE_CUBE_INDEX] : NULL;
return texUnit->CurrentTex[TEXTURE_CUBE_INDEX];
case GL_PROXY_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map
? ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX] : NULL;
return ctx->Texture.ProxyTex[TEXTURE_CUBE_INDEX];
case GL_TEXTURE_CUBE_MAP_ARRAY:
return _mesa_has_texture_cube_map_array(ctx)
? texUnit->CurrentTex[TEXTURE_CUBE_ARRAY_INDEX] : NULL;
@ -1563,8 +1561,7 @@ _mesa_tex_target_to_index(const struct gl_context *ctx, GLenum target)
case GL_TEXTURE_3D:
return ctx->API != API_OPENGLES ? TEXTURE_3D_INDEX : -1;
case GL_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map
? TEXTURE_CUBE_INDEX : -1;
return TEXTURE_CUBE_INDEX;
case GL_TEXTURE_RECTANGLE:
return _mesa_is_desktop_gl(ctx) && ctx->Extensions.NV_texture_rectangle
? TEXTURE_RECT_INDEX : -1;

View File

@ -1557,7 +1557,7 @@ _mesa_legal_get_tex_level_parameter_target(struct gl_context *ctx, GLenum target
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
return ctx->Extensions.ARB_texture_cube_map;
return GL_TRUE;
case GL_TEXTURE_2D_MULTISAMPLE:
case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
return ctx->Extensions.ARB_texture_multisample;
@ -1598,9 +1598,8 @@ _mesa_legal_get_tex_level_parameter_target(struct gl_context *ctx, GLenum target
case GL_PROXY_TEXTURE_1D:
case GL_PROXY_TEXTURE_2D:
case GL_PROXY_TEXTURE_3D:
return GL_TRUE;
case GL_PROXY_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map;
return GL_TRUE;
case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
return ctx->Extensions.ARB_texture_cube_map_array;
case GL_TEXTURE_RECTANGLE_NV:

View File

@ -63,9 +63,8 @@ _mesa_is_legal_tex_storage_target(const struct gl_context *ctx,
case 2:
switch (target) {
case GL_TEXTURE_2D:
return true;
case GL_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map;
return true;
}
break;
case 3:
@ -95,9 +94,8 @@ _mesa_is_legal_tex_storage_target(const struct gl_context *ctx,
case 2:
switch (target) {
case GL_PROXY_TEXTURE_2D:
return true;
case GL_PROXY_TEXTURE_CUBE_MAP:
return ctx->Extensions.ARB_texture_cube_map;
return true;
case GL_TEXTURE_RECTANGLE:
case GL_PROXY_TEXTURE_RECTANGLE:
return ctx->Extensions.NV_texture_rectangle;

View File

@ -251,8 +251,7 @@ compute_version(const struct gl_extensions *extensions,
{
GLuint major, minor, version;
const bool ver_1_3 = (extensions->ARB_texture_cube_map &&
extensions->ARB_texture_env_combine &&
const bool ver_1_3 = (extensions->ARB_texture_env_combine &&
extensions->ARB_texture_env_dot3);
const bool ver_1_4 = (ver_1_3 &&
extensions->ARB_depth_texture &&
@ -515,8 +514,7 @@ compute_version_es2(const struct gl_extensions *extensions,
const struct gl_constants *consts)
{
/* OpenGL ES 2.0 is derived from OpenGL 2.0 */
const bool ver_2_0 = (extensions->ARB_texture_cube_map &&
extensions->EXT_blend_color &&
const bool ver_2_0 = (extensions->EXT_blend_color &&
extensions->EXT_blend_func_separate &&
extensions->EXT_blend_minmax &&
extensions->ARB_vertex_shader &&

View File

@ -1109,7 +1109,6 @@ void st_init_extensions(struct pipe_screen *screen,
extensions->ARB_internalformat_query2 = GL_TRUE;
extensions->ARB_map_buffer_range = GL_TRUE;
extensions->ARB_sync = GL_TRUE;
extensions->ARB_texture_cube_map = GL_TRUE;
extensions->ARB_texture_env_combine = GL_TRUE;
extensions->ARB_texture_env_crossbar = GL_TRUE;
extensions->ARB_texture_env_dot3 = GL_TRUE;