Module: Mesa Branch: staging/23.1 Commit: 033738b6deb1c91fc1bc17438610836976c12c9e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=033738b6deb1c91fc1bc17438610836976c12c9e
Author: Samuel Pitoiset <[email protected]> Date: Thu Apr 13 10:28:52 2023 +0200 radv: disable fast-clears with CMASK for 128-bit formats This isn't supported according to RadeonSI. This fixes a piglit test with Zink that uses a R32G32B32A32_SINT format with MSAA 8x. This is because DCC fast-clears with MSAA require to clear CMASK too. Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7313 Signed-off-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22462> (cherry picked from commit 0d7912d239dac5bf3c8b07f2a6ca467f760d6aa6) --- .pick_status.json | 2 +- src/amd/vulkan/radv_image.c | 4 ++++ src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt | 1 - src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt | 1 - 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 05b767c89e5..408df0e5450 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4,7 +4,7 @@ "description": "radv: disable fast-clears with CMASK for 128-bit formats", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 2dca1dec417..4b11c6ebf90 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -1638,6 +1638,10 @@ radv_image_can_fast_clear(const struct radv_device *device, const struct radv_im /* RB+ doesn't work with CMASK fast clear on Stoney. */ if (!radv_image_has_dcc(image) && device->physical_device->rad_info.family == CHIP_STONEY) return false; + + /* Fast-clears with CMASK aren't supported for 128-bit formats. */ + if (radv_image_has_cmask(image) && vk_format_get_blocksizebits(image->vk.format) > 64) + return false; } else { if (!radv_image_has_htile(image)) return false; diff --git a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt index 1e2c4a90dba..fed90b6216b 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt @@ -391,7 +391,6 @@ spec@egl_nok_texture_from_pixmap@basic,Timeout spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuv420,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_texture_integer@multisample-fast-clear gl_ext_texture_integer,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats-s3tc,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats-s3tc@GL_COMPRESSED_SLUMINANCE_ALPHA,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 34bb8784a0d..9d09fd5e96b 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt @@ -388,7 +388,6 @@ spec@egl_nok_texture_from_pixmap@basic,Timeout spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuv420,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_texture_integer@multisample-fast-clear gl_ext_texture_integer,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats-s3tc,Fail spec@ext_texture_srgb@fbo-generatemipmap-formats-s3tc@GL_COMPRESSED_SLUMINANCE_ALPHA,Fail
