r600: fix depth span macros for format changes
authorAlex Deucher <alexdeucher@gmail.com>
Thu, 22 Oct 2009 18:48:45 +0000 (14:48 -0400)
committerAlex Deucher <alexdeucher@gmail.com>
Thu, 22 Oct 2009 18:48:45 +0000 (14:48 -0400)
src/mesa/drivers/dri/radeon/radeon_span.c

index 2add8c3eb7e71a7b7a0e93fd92daf19e5b976b1b..2bc7d312546e53c7d1c51e1c0db561eb53c90f63 100644 (file)
@@ -603,12 +603,12 @@ do {                                                                      \
    GLuint *_ptr = (GLuint*)r600_ptr_depth( rrb, _x + x_off, _y + y_off );              \
    GLuint tmp = *_ptr;                         \
    tmp &= 0xff000000;                                                  \
-   tmp |= (((d) >> 8) & 0x00ffffff);                                   \
+   tmp |= ((d) & 0x00ffffff);                                  \
    *_ptr = tmp;                                        \
    _ptr = (GLuint*)r600_ptr_stencil(rrb, _x + x_off, _y + y_off);              \
    tmp = *_ptr;                                \
    tmp &= 0xffffff00;                                                  \
-   tmp |= (d) & 0xff;                                                  \
+   tmp |= ((d) >> 24) & 0xff;                                          \
    *_ptr = tmp;                                        \
 } while (0)
 #elif defined(RADEON_R200)
@@ -633,8 +633,8 @@ do {                                                                        \
 #elif defined(RADEON_R600)
 #define READ_DEPTH( d, _x, _y )                                                \
   do { \
-    d = ((*(GLuint*)(r600_ptr_depth(rrb, _x + x_off, _y + y_off))) << 8) & 0xffffff00; \
-    d |= (*(GLuint*)(r600_ptr_stencil(rrb, _x + x_off, _y + y_off))) & 0x000000ff;     \
+    d = (*(GLuint*)(r600_ptr_depth(rrb, _x + x_off, _y + y_off))) & 0x00ffffff; \
+    d |= ((*(GLuint*)(r600_ptr_stencil(rrb, _x + x_off, _y + y_off))) << 24) & 0xff000000; \
   }while(0)
 #elif defined(RADEON_R200)
 #define READ_DEPTH( d, _x, _y )                                                \