diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/r600/r600_cmdbuf.c | 16 | ||||
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_bo_legacy.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_common.c | 14 |
3 files changed, 12 insertions, 20 deletions
diff --git a/src/mesa/drivers/dri/r600/r600_cmdbuf.c b/src/mesa/drivers/dri/r600/r600_cmdbuf.c index b8e1debf8f..7bde3360b6 100644 --- a/src/mesa/drivers/dri/r600/r600_cmdbuf.c +++ b/src/mesa/drivers/dri/r600/r600_cmdbuf.c @@ -676,19 +676,3 @@ void r600InitCmdBuf(context_t *r600) /* from rcommonInitCmdBuf */ } } -void r600_sw_blit(char *srcp, int src_pitch, char *dstp, int dst_pitch, - int x, int y, int w, int h, int cpp) -{ - char *src = srcp; - char *dst = dstp; - - src += (y * src_pitch) + (x * cpp); - dst += (y * dst_pitch) + (x * cpp); - - while (h--) { - memcpy(dst, src, w * cpp); - src += src_pitch; - dst += dst_pitch; - } -} - diff --git a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c index ae5f0c4cfe..94c2d97825 100644 --- a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c +++ b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c @@ -618,7 +618,7 @@ static int bo_vram_validate(struct radeon_bo *bo, (bo_legacy->offset - boml->fb_location); /* FIXME: alignment, pitch, etc. */ - r600_sw_blit(src, 0, dst, 0, 0, 0, 1, 1, bo->size); + memcpy(dst, src, bo->size); } else { /* Copy to VRAM using a blit. * All memory is 4K aligned. We're using 1024 pixels wide blits. diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index e75e6a33de..1848b7113e 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -476,8 +476,9 @@ void radeonCopyBuffer( __DRIdrawablePrivate *dPriv, continue; if (IS_R600_CLASS(rmesa->radeonScreen)) { - int src_pitch = rmesa->radeonScreen->backPitch * rmesa->radeonScreen->cpp; - int dst_pitch = rmesa->radeonScreen->frontPitch * rmesa->radeonScreen->cpp; + int cpp = rmesa->radeonScreen->cpp; + int src_pitch = rmesa->radeonScreen->backPitch * cpp; + int dst_pitch = rmesa->radeonScreen->frontPitch * cpp; char *src = (char *)rmesa->radeonScreen->driScreen->pFB + rmesa->radeonScreen->backOffset; char *dst = (char *)rmesa->radeonScreen->driScreen->pFB + rmesa->radeonScreen->frontOffset; int j; @@ -489,7 +490,14 @@ void radeonCopyBuffer( __DRIdrawablePrivate *dPriv, int w = pb[j].x2 - x; int h = pb[j].y2 - y; - r600_sw_blit(src, src_pitch, dst, dst_pitch, x, y, w, h, rmesa->radeonScreen->cpp); + src += (y * src_pitch) + (x * cpp); + dst += (y * dst_pitch) + (x * cpp); + + while (h--) { + memcpy(dst, src, w * cpp); + src += src_pitch; + dst += dst_pitch; + } } } |