radeonsi: disable SDMA on gfx8 to fix corruption on RX 580
authorMarek Olšák <marek.olsak@amd.com>
Thu, 2 Jan 2020 22:29:01 +0000 (17:29 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 6 Jan 2020 20:38:36 +0000 (15:38 -0500)
Closes: #1399
Closes: #1889
Cc: 19.2 19.3 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
src/gallium/drivers/radeonsi/si_pipe.c

index 3f84725f8f202fa07ae517c90f51a4e5726e42ef..2e3232d1cf0920d033bba759269d132271914276 100644 (file)
@@ -489,6 +489,11 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
 
        if (sscreen->info.num_rings[RING_DMA] &&
            !(sscreen->debug_flags & DBG(NO_SDMA)) &&
+           /* SDMA causes corruption on RX 580:
+            *    https://gitlab.freedesktop.org/mesa/mesa/issues/1399
+            *    https://gitlab.freedesktop.org/mesa/mesa/issues/1889
+            */
+           (sctx->chip_class != GFX8 || sscreen->debug_flags & DBG(FORCE_SDMA)) &&
            /* SDMA timeouts sometimes on gfx10 so disable it for now. See:
             *    https://bugs.freedesktop.org/show_bug.cgi?id=111481
             *    https://gitlab.freedesktop.org/mesa/mesa/issues/1907