Mesa (master): radeon: for tiling you really need to use GET/ PUT VALUE not PTR.

Dave Airlie airlied at kemper.freedesktop.org
Wed Jul 15 04:27:33 UTC 2009


Module: Mesa
Branch: master
Commit: 9b17f041d12cfe9a34df43da93fc16e275a5c751
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b17f041d12cfe9a34df43da93fc16e275a5c751

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Jul  8 11:16:56 2009 +1000

radeon: for tiling you really need to use GET/PUT VALUE not PTR.

since the surfaces aren't linear you can't just use GET_PTR

---

 src/mesa/drivers/dri/radeon/radeon_span.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_span.c b/src/mesa/drivers/dri/radeon/radeon_span.c
index a6ea8f0..2530a82 100644
--- a/src/mesa/drivers/dri/radeon/radeon_span.c
+++ b/src/mesa/drivers/dri/radeon/radeon_span.c
@@ -295,7 +295,11 @@ s8z24_to_z24s8(uint32_t val)
 
 #define TAG(x)    radeon##x##_ARGB8888
 #define TAG2(x,y) radeon##x##_ARGB8888##y
-#define GET_PTR(X,Y) radeon_ptr32(rrb, (X) + x_off, (Y) + y_off)
+#define GET_VALUE(_x, _y) (*(GLuint*)(radeon_ptr32(rrb, _x + x_off, _y + y_off)))
+#define PUT_VALUE(_x, _y, d) { \
+   GLuint *_ptr = (GLuint*)radeon_ptr32( rrb, _x + x_off, _y + y_off );		\
+   *_ptr = d;								\
+} while (0)
 #include "spantmp2.h"
 
 /* ================================================================




More information about the mesa-commit mailing list