From c02f060dc3a4e8ed23669f7b866bfa09473effe2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 10 Jun 2025 09:17:11 -0400 Subject: [PATCH] zink: emulated alpha formats do not require mutable cc: mesa-stable Part-of: (cherry picked from commit 0d3dc9286341589a900a322807e86eb11e365072) --- .pick_status.json | 2 +- src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt | 1 - src/gallium/drivers/zink/zink_format.h | 3 +++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 38bdfd9716d..9ad7ce9ec71 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3624,7 +3624,7 @@ "description": "zink: emulated alpha formats do not require mutable", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt b/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt index 2d305598dab..4c68b8848ce 100644 --- a/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt @@ -670,7 +670,6 @@ dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_mag_revers dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_out_of_bounds_min_reverse_dst_x,Fail spec@ext_framebuffer_multisample@interpolation 6 non-centroid-deriv-disabled,Fail -glx@glx-tfp,Fail spec@arb_sample_shading@samplemask 4,Fail spec@ext_framebuffer_multisample@interpolation 6 centroid-deriv-disabled,Fail spec@ext_framebuffer_multisample@interpolation 8 non-centroid-deriv-disabled,Fail diff --git a/src/gallium/drivers/zink/zink_format.h b/src/gallium/drivers/zink/zink_format.h index 9e3dc199345..c0241c313e3 100644 --- a/src/gallium/drivers/zink/zink_format.h +++ b/src/gallium/drivers/zink/zink_format.h @@ -58,6 +58,9 @@ zink_format_needs_mutable(enum pipe_format a, enum pipe_format b) return util_format_linear(a) != b; if (util_format_is_srgb(b)) return util_format_linear(b) != a; + if (zink_format_emulate_x8(b) == a || zink_format_emulate_x8(a) == b || + zink_format_get_emulated_alpha(b) == a || zink_format_get_emulated_alpha(a) == b) + return false; return true; } #endif