diff options
author | Marek Olšák <[email protected]> | 2014-03-08 15:15:41 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-03-11 19:18:02 +0100 |
commit | 4ca3486b195653f875003d335921fd4e7d7c2c4a (patch) | |
tree | 71d066d3bf42403a51176692966f0b552bb913dc /src/gallium/drivers/radeonsi/si_state.c | |
parent | de5094d102da0ffd8adef606b89e7a40d5843141 (diff) |
r600g,radeonsi: use a fallback in dma_copy instead of failing
v2: - allow byte-aligned DMA buffer copies on Evergreen
- fix piglit/texsubimage regression
- use the fallback for 3D copies (depth > 1) as well
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_state.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_state.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 8dd2885f70b..384333093bd 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -2926,16 +2926,19 @@ static void *si_create_blend_custom(struct si_context *sctx, unsigned mode) return si_create_blend_state_mode(&sctx->b.b, &blend, mode); } -static boolean si_dma_copy(struct pipe_context *ctx, - struct pipe_resource *dst, - unsigned dst_level, - unsigned dst_x, unsigned dst_y, unsigned dst_z, - struct pipe_resource *src, - unsigned src_level, - const struct pipe_box *src_box) +static void si_dma_copy(struct pipe_context *ctx, + struct pipe_resource *dst, + unsigned dst_level, + unsigned dst_x, unsigned dst_y, unsigned dst_z, + struct pipe_resource *src, + unsigned src_level, + const struct pipe_box *src_box) { /* XXX implement this or share evergreen_dma_blit with r600g */ - return FALSE; + + /* Fallback: */ + ctx->resource_copy_region(ctx, dst, dst_level, dst_x, dst_y, dst_z, + src, src_level, src_box); } static void si_set_occlusion_query_state(struct pipe_context *ctx, bool enable) |