Mesa (staging/20.2): radeonsi: disable NGG culling on gfx10.3 because of hangs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 18 17:43:32 UTC 2020


Module: Mesa
Branch: staging/20.2
Commit: a19dd637e8bff0678552f22d0fe1585a343f6a33
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a19dd637e8bff0678552f22d0fe1585a343f6a33

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Aug  8 16:39:09 2020 -0400

radeonsi: disable NGG culling on gfx10.3 because of hangs

Fixes: a23802bcb9a - ac,radeonsi: start adding support for gfx10.3

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6282>
(cherry picked from commit 2b78cb2e0039f09d9820a1a9166a49f168c9959d)

---

 .pick_status.json                      | 2 +-
 src/gallium/drivers/radeonsi/si_pipe.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 899c007e6b4..268b8468945 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -1957,7 +1957,7 @@
         "description": "radeonsi: disable NGG culling on gfx10.3 because of hangs",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "a23802bcb9a42a02d34a5a36d6e66d6532813a0d"
     },
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index c323f33dd8f..2bd96eaef1c 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -1152,6 +1152,11 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws,
       driQueryOptionb(config->options, "radeonsi_commutative_blend_add") ||
       driQueryOptionb(config->options, "allow_draw_out_of_order");
 
+   /* TODO: Find out why NGG culling hangs on gfx10.3 */
+   if (sscreen->info.chip_class == GFX10_3 &&
+       !(sscreen->debug_flags & (DBG(ALWAYS_NGG_CULLING_ALL) | DBG(ALWAYS_NGG_CULLING_TESS))))
+      sscreen->debug_flags |= DBG(NO_NGG_CULLING);
+
    sscreen->use_ngg = sscreen->info.chip_class >= GFX10 && sscreen->info.family != CHIP_NAVI14 &&
                       !(sscreen->debug_flags & DBG(NO_NGG));
    sscreen->use_ngg_culling = sscreen->use_ngg && !(sscreen->debug_flags & DBG(NO_NGG_CULLING));



More information about the mesa-commit mailing list