Mesa (r6xx-rewrite): Use memcpy directly in the common code

Alex Deucher agd5f at kemper.freedesktop.org
Wed Jul 15 15:19:39 UTC 2009


Module: Mesa
Branch: r6xx-rewrite
Commit: efe7ad233ca8fa1b7e1aabf706c433955c5c51e8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=efe7ad233ca8fa1b7e1aabf706c433955c5c51e8

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Jul 15 11:16:41 2009 -0400

Use memcpy directly in the common code

This alleviates the need for an additional symbol.

---

 src/mesa/drivers/dri/r600/r600_cmdbuf.c        |   16 ----------------
 src/mesa/drivers/dri/radeon/radeon_bo_legacy.c |    2 +-
 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 b8e1deb..7bde336 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 ae5f0c4..94c2d97 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 e75e6a3..1848b71 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;
+				}
 			}
 		}
 




More information about the mesa-commit mailing list