radeon: for tiling you really need to use GET/PUT VALUE not PTR.
authorDave Airlie <airlied@redhat.com>
Wed, 8 Jul 2009 01:16:56 +0000 (11:16 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 15 Jul 2009 04:23:13 +0000 (14:23 +1000)
since the surfaces aren't linear you can't just use GET_PTR

src/mesa/drivers/dri/radeon/radeon_span.c

index a6ea8f021e48b510304a4fcd198d4a8f35335f39..2530a82d59621b9ece4f6c747ec659239ea15782 100644 (file)
@@ -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"
 
 /* ================================================================