From 886d720c19b74cc50d4407e20ad6cbd14a3e5930 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 3 Feb 2025 11:16:22 +0100 Subject: [PATCH] mesa: fix RGBA_SIGNED_COMPONENTS for lowered signed luminance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some drivers implement luminance as RGBA. Since the code checks the renderbuffer format instead of the internal format this can cause the query to incorrectly return "signed" on the Alpha component for signed luminance formats. Fixes the following Piglit test for various drivers (at least Panfrost and V3D): spec/ext_packed_float/query-rgba-signed-components Reviewed-by: Marek Olšák Part-of: --- src/broadcom/ci/broadcom-rpi4-fails.txt | 1 - src/broadcom/ci/broadcom-rpi5-fails.txt | 1 - src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt | 2 -- src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt | 2 -- src/mesa/main/get.c | 6 ++++++ src/panfrost/ci/panfrost-g52-fails.txt | 1 - src/panfrost/ci/panfrost-g57-fails.txt | 1 - 7 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/broadcom/ci/broadcom-rpi4-fails.txt b/src/broadcom/ci/broadcom-rpi4-fails.txt index 526bf752023..425fae3dc7b 100644 --- a/src/broadcom/ci/broadcom-rpi4-fails.txt +++ b/src/broadcom/ci/broadcom-rpi4-fails.txt @@ -205,7 +205,6 @@ spec@ext_packed_depth_stencil@texwrap formats offset,Fail spec@ext_packed_depth_stencil@texwrap formats offset@GL_DEPTH24_STENCIL8- NPOT,Fail spec@ext_packed_depth_stencil@texwrap formats,Fail spec@ext_packed_depth_stencil@texwrap formats@GL_DEPTH24_STENCIL8- NPOT,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail spec@ext_texture_integer@fbo-blending,Fail spec@ext_texture_integer@getteximage-clamping gl_arb_texture_rg,Fail spec@ext_texture_integer@getteximage-clamping,Fail diff --git a/src/broadcom/ci/broadcom-rpi5-fails.txt b/src/broadcom/ci/broadcom-rpi5-fails.txt index e3f654d4038..51f7086ad2b 100644 --- a/src/broadcom/ci/broadcom-rpi5-fails.txt +++ b/src/broadcom/ci/broadcom-rpi5-fails.txt @@ -191,7 +191,6 @@ spec@ext_packed_depth_stencil@texwrap formats offset,Fail spec@ext_packed_depth_stencil@texwrap formats offset@GL_DEPTH24_STENCIL8- NPOT,Fail spec@ext_packed_depth_stencil@texwrap formats,Fail spec@ext_packed_depth_stencil@texwrap formats@GL_DEPTH24_STENCIL8- NPOT,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail spec@ext_texture_integer@fbo-blending,Fail spec@ext_texture_integer@getteximage-clamping gl_arb_texture_rg,Fail spec@ext_texture_integer@getteximage-clamping,Fail diff --git a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt index de414f40076..f49ad9f4fa8 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-tgl-fails.txt @@ -548,8 +548,6 @@ spec@ext_framebuffer_multisample@interpolation 8 centroid-disabled,Fail spec@ext_framebuffer_multisample@interpolation 8 non-centroid-deriv-disabled,Fail spec@ext_framebuffer_multisample@interpolation 8 non-centroid-disabled,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail - spec@ext_transform_feedback@tessellation triangle_fan flat_first,Fail spec@ext_transform_feedback@tessellation quad_strip wireframe,Fail spec@ext_transform_feedback@tessellation quads wireframe,Fail diff --git a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt index c73917a75ec..8b803ab838e 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt @@ -31,8 +31,6 @@ spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_msc_and_sbc_ spec@egl_khr_gl_image@egl_khr_gl_renderbuffer_image-clear-shared-image gl_depth_component24,Fail spec@egl_khr_surfaceless_context@viewport,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail - spec@glsl-1.10@execution@glsl-fs-inline-explosion,Crash spec@glsl-1.10@execution@glsl-vs-inline-explosion,Crash spec@glsl-1.10@execution@loops@glsl-fs-unroll-explosion,Crash diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index fe6b6019aff..f7e72b24f63 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1028,6 +1028,12 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu GLint i_bits = _mesa_get_format_bits(rb->Format, GL_TEXTURE_INTENSITY_SIZE); + /* Fix the case where some drivers may implement signed luminance + * as signed RGBA, which leads to reporting signed alpha. + */ + if (rb->_BaseFormat == GL_LUMINANCE) + a_bits = 0; + v->value_int_4[0] = r_bits + l_bits + i_bits > 0; v->value_int_4[1] = g_bits + l_bits + i_bits > 0; v->value_int_4[2] = b_bits + l_bits + i_bits > 0; diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt index c1969827b29..22de1f2c293 100644 --- a/src/panfrost/ci/panfrost-g52-fails.txt +++ b/src/panfrost/ci/panfrost-g52-fails.txt @@ -102,7 +102,6 @@ spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE,Fail spec@ext_framebuffer_object@fbo-blending-snorm,Fail spec@ext_framebuffer_object@getteximage-formats init-by-clear-and-render,Fail spec@ext_framebuffer_object@getteximage-formats init-by-rendering,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail spec@ext_transform_feedback2@draw-auto,Fail spec@ext_transform_feedback@builtin-varyings gl_clipdistance,Fail spec@ext_transform_feedback@change-size base-shrink,Fail diff --git a/src/panfrost/ci/panfrost-g57-fails.txt b/src/panfrost/ci/panfrost-g57-fails.txt index 41b1596f1ad..0c9b4f13435 100644 --- a/src/panfrost/ci/panfrost-g57-fails.txt +++ b/src/panfrost/ci/panfrost-g57-fails.txt @@ -173,7 +173,6 @@ spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yvu420,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-transcode-nv12-as-r8-gr88,Fail spec@ext_image_dma_buf_import@ext_image_dma_buf_import-unsupported_format,Fail -spec@ext_packed_float@query-rgba-signed-components,Fail spec@ext_transform_feedback2@draw-auto,Fail spec@ext_transform_feedback@builtin-varyings gl_clipdistance,Fail spec@ext_transform_feedback@change-size base-shrink,Fail