diff --git a/src/gallium/drivers/radeonsi/si_dma_cs.c b/src/gallium/drivers/radeonsi/si_dma_cs.c index c550a62ee0b..9cb192307a2 100644 --- a/src/gallium/drivers/radeonsi/si_dma_cs.c +++ b/src/gallium/drivers/radeonsi/si_dma_cs.c @@ -75,7 +75,8 @@ void si_sdma_clear_buffer(struct si_context *sctx, struct pipe_resource *dst, assert(size); assert(size % 4 == 0); - if (!cs || dst->flags & PIPE_RESOURCE_FLAG_SPARSE) { + if (!cs || dst->flags & PIPE_RESOURCE_FLAG_SPARSE || + sctx->screen->debug_flags & DBG(NO_SDMA_CLEARS)) { sctx->b.clear_buffer(&sctx->b, dst, offset, size, &clear_value, 4); return; } diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 3bea85cf8dc..9c26da9d49c 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -87,6 +87,7 @@ static const struct debug_named_value debug_options[] = { /* Driver options: */ { "forcedma", DBG(FORCE_SDMA), "Use SDMA for all operations when possible." }, { "nodma", DBG(NO_SDMA), "Disable SDMA" }, + { "nodmaclear", DBG(NO_SDMA_CLEARS), "Disable SDMA clears" }, { "nowc", DBG(NO_WC), "Disable GTT write combining" }, { "check_vm", DBG(CHECK_VM), "Check VM faults and dump debug info." }, { "reserve_vmid", DBG(RESERVE_VMID), "Force VMID reservation per context." }, diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 1f64f77342f..0aef94b0a2b 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -168,6 +168,7 @@ enum { /* Driver options: */ DBG_FORCE_SDMA, DBG_NO_SDMA, + DBG_NO_SDMA_CLEARS, DBG_NO_WC, DBG_CHECK_VM, DBG_RESERVE_VMID,