radeonsi: check ctx->sdma_cs before using it
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tue, 7 Jan 2020 14:57:10 +0000 (15:57 +0100)
committerPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Wed, 8 Jan 2020 08:31:35 +0000 (09:31 +0100)
e5167a9276de1f383888714b41d3a9be2b9c1da9 disabled SDMA for gfx8.
This caused 3 piglit arb_sparse_buffer tests (basic, buffer-data
and commit) to crash on GFX8.

Reported-by: Michel Dänzer <michel@daenzer.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Fixes: e5167a9276d ("radeonsi: disable SDMA on gfx8 to fix corruption on RX 580")
src/gallium/drivers/radeonsi/si_buffer.c

index 1de431cc93769f2551d15974409621e98f6c40ad..38d8e9456c29014fd86eaf0295b152f9d141cd66 100644 (file)
@@ -797,7 +797,8 @@ static bool si_resource_commit(struct pipe_context *pctx,
                si_flush_dma_cs(ctx, PIPE_FLUSH_ASYNC, NULL);
        }
 
-       ctx->ws->cs_sync_flush(ctx->sdma_cs);
+       if (ctx->sdma_cs)
+               ctx->ws->cs_sync_flush(ctx->sdma_cs);
        ctx->ws->cs_sync_flush(ctx->gfx_cs);
 
        assert(resource->target == PIPE_BUFFER);