From 63f18e4b53524c436e1976ca1397bf43d270dde5 Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Thu, 21 Feb 2013 18:57:25 -0500 Subject: [PATCH 5/5] r600g: enable CP DMA on r6xx With the previous flushing changes this seems to work reliably now. Signed-off-by: Alex Deucher --- src/gallium/drivers/r600/r600_blit.c | 3 +-- src/gallium/drivers/r600/r600_hw_context.c | 6 ------ 2 files changed, 1 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 046eab5..019b456 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -508,8 +508,7 @@ void r600_copy_buffer(struct pipe_context *ctx, struct pipe_resource *dst, unsig { struct r600_context *rctx = (struct r600_context*)ctx; - /* CP DMA doesn't work on R600 (flushing seems to be unreliable). */ - if (rctx->screen->info.drm_minor >= 27 && rctx->chip_class >= R700) { + if (rctx->screen->info.drm_minor >= 27) { r600_cp_dma_copy_buffer(rctx, dst, dstx, src, src_box->x, src_box->width); } else if (rctx->screen->has_streamout && diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c index 018e6c4..eb46960 100644 --- a/src/gallium/drivers/r600/r600_hw_context.c +++ b/src/gallium/drivers/r600/r600_hw_context.c @@ -1115,12 +1115,6 @@ void r600_cp_dma_copy_buffer(struct r600_context *rctx, struct radeon_winsys_cs *cs = rctx->rings.gfx.cs; assert(size); - assert(rctx->chip_class != R600); - - /* CP DMA doesn't work on R600 (flushing seems to be unreliable). */ - if (rctx->chip_class == R600) { - return; - } dst_offset += r600_resource_va(&rctx->screen->screen, dst); src_offset += r600_resource_va(&rctx->screen->screen, src); -- 1.7.7.5