mesa: Allow GL_TEXTURE_IMMUTABLE_LEVELS query on GLES3
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

GL_TEXTURE_IMMUTABLE_LEVELS is core state in OpenGL ES 3.0 (it comes with
immutable textures / glTexStorage), queryable through glGetTexParameter. The
getter only allowed it when ARB_texture_view or OES_texture_view is present, so
a GLES3 driver without texture views returns GL_INVALID_ENUM for a valid query.
Its sibling GL_TEXTURE_IMMUTABLE_FORMAT is correctly ungated.

Allow the query on any GLES3 context, matching the spec.

Fixes 8 dEQP-GLES3.functional.state_query.texture.*_immutable_levels_* cases on
etnaviv (which exposes neither texture-view extension).

Fixes: 214fd4e40d ("mesa/main: fix texture view enum checks")
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41910>
This commit is contained in:
Christian Gmeiner 2026-05-30 14:11:29 +02:00 committed by Marge Bot
parent 072041a809
commit 75a0cd6e2c
2 changed files with 2 additions and 12 deletions

View file

@ -1111,16 +1111,6 @@ dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag,Fail
# New failures with ES CTS 3.2.11.0
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units,Fail
# Regressions while the device was offline
dEQP-GLES3.functional.state_query.texture.texture_2d_array_texture_immutable_levels_gettexparameterf,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_array_texture_immutable_levels_gettexparameteri,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_texture_immutable_levels_gettexparameterf,Fail
dEQP-GLES3.functional.state_query.texture.texture_2d_texture_immutable_levels_gettexparameteri,Fail
dEQP-GLES3.functional.state_query.texture.texture_3d_texture_immutable_levels_gettexparameterf,Fail
dEQP-GLES3.functional.state_query.texture.texture_3d_texture_immutable_levels_gettexparameteri,Fail
dEQP-GLES3.functional.state_query.texture.texture_cube_map_texture_immutable_levels_gettexparameterf,Fail
dEQP-GLES3.functional.state_query.texture.texture_cube_map_texture_immutable_levels_gettexparameteri,Fail
# Regressions while the device was offline
spec@!opengl es 3.0@texture-immutable-levels,Fail
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_argb8888,Fail

View file

@ -2499,7 +2499,7 @@ get_tex_parameterfv(struct gl_context *ctx,
break;
case GL_TEXTURE_IMMUTABLE_LEVELS:
if (_mesa_has_texture_view(ctx))
if (_mesa_is_gles3(ctx) || _mesa_has_texture_view(ctx))
*params = (GLfloat) obj->Attrib.ImmutableLevels;
else
goto invalid_pname;
@ -2792,7 +2792,7 @@ get_tex_parameteriv(struct gl_context *ctx,
break;
case GL_TEXTURE_IMMUTABLE_LEVELS:
if (_mesa_has_texture_view(ctx))
if (_mesa_is_gles3(ctx) || _mesa_has_texture_view(ctx))
*params = obj->Attrib.ImmutableLevels;
else
goto invalid_pname;