From 90d6365ad4a1ee2e7cf8105d4a4ed34d926d17a7 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 9 Feb 2021 15:13:44 +0100 Subject: [PATCH] radeonsi: force dcc clear to use compute clear MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit After the previous commit, when running the following deqp-gles31 caselist: dEQP-GLES31.functional.image_load_store.2d.format_reinterpret.rgba32f_rgba32ui dEQP-GLES31.functional.image_load_store.2d.format_reinterpret.rgba32f_rgba32i The second test always fails on gfx10. I don't know why, but forcing the dcc clear from si_decompress_dcc to use compute fixes the problem. The test caselist wasn't failing before because the dcc disable step was done in si_resource_copy_region, before calling si_compute_copy_image. Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 7ed27a0e892..ab133f6880b 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -1306,11 +1306,17 @@ void si_decompress_dcc(struct si_context *sctx, struct si_texture *tex) true); } - /* Now clear DCC metadata to uncompressed. */ + /* Now clear DCC metadata to uncompressed. + * + * This uses SI_COMPUTE_CLEAR_METHOD to avoid a failure when running this + * deqp caselist on gfx10: + * dEQP-GLES31.functional.image_load_store.2d.format_reinterpret.rgba32f_rgba32ui + * dEQP-GLES31.functional.image_load_store.2d.format_reinterpret.rgba32f_rgba32i + */ uint32_t clear_value = DCC_UNCOMPRESSED; si_clear_buffer(sctx, ptex, tex->surface.dcc_offset, tex->surface.dcc_size, &clear_value, 4, - SI_COHERENCY_CB_META, SI_AUTO_SELECT_CLEAR_METHOD); + SI_COHERENCY_CB_META, SI_COMPUTE_CLEAR_METHOD); } } -- 2.34.1