Module: Mesa
Branch: master
Commit: 90d6365ad4a1ee2e7cf8105d4a4ed34d926d17a7
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=90d6365ad4a1ee2e7cf8105d4a4ed34d926d17a7

Author: Pierre-Eric Pelloux-Prayer <[email protected]>
Date:   Tue Feb  9 15:13:44 2021 +0100

radeonsi: force dcc clear to use compute clear

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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8958>

---

 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);
    }
 }
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to