radeonsi: disable dcc when external shader stores are used

See comment.

Fixes: 666a6eb871 ("radeonsi/gfx12: disable display dcc for front buffer rendering")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12552
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33469>
This commit is contained in:
Pierre-Eric Pelloux-Prayer
2025-02-10 12:27:48 +01:00
committed by Marge Bot
parent 18c3b296a6
commit 6b20b06584
+5 -3
View File
@@ -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;