From 6b20b0658489afe745a28b8f09c57067e45b47f3 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 10 Feb 2025 12:27:48 +0100 Subject: [PATCH] radeonsi: disable dcc when external shader stores are used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See comment. Fixes: 666a6eb871d ("radeonsi/gfx12: disable display dcc for front buffer rendering") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12552 Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_texture.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c index c5d7357ab28..5fa695fe122 100644 --- a/src/gallium/drivers/radeonsi/si_texture.c +++ b/src/gallium/drivers/radeonsi/si_texture.c @@ -804,10 +804,12 @@ static bool si_texture_get_handle(struct pipe_screen *screen, struct pipe_contex } const bool debug_disable_dcc = sscreen->debug_flags & DBG(NO_EXPORTED_DCC); - /* Since shader image stores don't support DCC on GFX9 and older, - * disable it for external clients that want write access. + /* Disable DCC for external clients that might use shader image stores. + * They don't support DCC on GFX9 and older. GFX10/10.3 is also problematic + * if the view formats between clients are incompatible or if DCC clear is + * used. */ - const bool shader_write = sscreen->info.gfx_level <= GFX9 && + const bool shader_write = sscreen->info.gfx_level < GFX11 && usage & PIPE_HANDLE_USAGE_SHADER_WRITE && !tex->is_depth && tex->surface.meta_offset;