summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_state.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-03-08 15:15:41 +0100
committerMarek Olšák <[email protected]>2014-03-11 19:18:02 +0100
commit4ca3486b195653f875003d335921fd4e7d7c2c4a (patch)
tree71d066d3bf42403a51176692966f0b552bb913dc /src/gallium/drivers/radeonsi/si_state.c
parentde5094d102da0ffd8adef606b89e7a40d5843141 (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.c19
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)