diff options
author | Marek Olšák <[email protected]> | 2014-09-06 17:07:50 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-09-12 22:51:28 +0200 |
commit | d13d2fd16132f351ec7c8184f165faeac3b31bb4 (patch) | |
tree | de44ad691c0f1dc89ceabe4e48e5e1b1bc3e7dd1 /src/gallium/drivers/r600/r600_blit.c | |
parent | d7ec3db3499b11bf6f213ad6b0c050b65be3ad30 (diff) |
r600g,radeonsi: add debug option which forces DMA for copy_region and blit
Diffstat (limited to 'src/gallium/drivers/r600/r600_blit.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_blit.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index f766e37f2b2..1e18d87e6ff 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -565,13 +565,13 @@ static void r600_clear_buffer(struct pipe_context *ctx, struct pipe_resource *ds } } -static void r600_resource_copy_region(struct pipe_context *ctx, - struct pipe_resource *dst, - unsigned dst_level, - unsigned dstx, unsigned dsty, unsigned dstz, - struct pipe_resource *src, - unsigned src_level, - const struct pipe_box *src_box) +void r600_resource_copy_region(struct pipe_context *ctx, + struct pipe_resource *dst, + unsigned dst_level, + unsigned dstx, unsigned dsty, unsigned dstz, + struct pipe_resource *src, + unsigned src_level, + const struct pipe_box *src_box) { struct r600_context *rctx = (struct r600_context *)ctx; struct pipe_surface *dst_view, dst_templ; @@ -815,6 +815,10 @@ static void r600_blit(struct pipe_context *ctx, return; /* error */ } + if (rctx->screen->b.debug_flags & DBG_FORCE_DMA && + util_try_blit_via_copy_region(ctx, info)) + return; + r600_blitter_begin(ctx, R600_BLIT | (info->render_condition_enable ? 0 : R600_DISABLE_RENDER_COND)); util_blitter_blit(rctx->blitter, info); |