diff --git a/src/gallium/drivers/radeonsi/si_cp_dma.c b/src/gallium/drivers/radeonsi/si_cp_dma.c index 83332747e2a..a4c32cf5f9f 100644 --- a/src/gallium/drivers/radeonsi/si_cp_dma.c +++ b/src/gallium/drivers/radeonsi/si_cp_dma.c @@ -46,7 +46,13 @@ static void si_emit_cp_dma(struct si_context *sctx, struct radeon_cmdbuf *cs, ui assert(sctx->screen->info.has_cp_dma); assert(size <= cp_dma_max_byte_count(sctx)); - assert(size == 0 || (src_va && dst_va)); + + if (size) { + assert(dst_va); + + if (!(flags & CP_DMA_CLEAR)) + assert(src_va); + } if (sctx->gfx_level >= GFX9) command |= S_415_BYTE_COUNT_GFX9(size);