u_tile: fix stencil texturing tests under softpipe
authorDave Airlie <airlied@redhat.com>
Mon, 6 Apr 2015 23:52:41 +0000 (09:52 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 7 Apr 2015 22:17:32 +0000 (08:17 +1000)
arb_stencil_texturing-draw failed under softpipe because we got a float
back from the texturing function, and then tried to U2F it, stencil
texturing returns ints, so we should fix the tiling to retrieve
the stencil values as integers not floats.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/auxiliary/util/u_tile.c

index 6252e5dcfb8efe93a2390322c8c8a43a8a9c5dd4..f5edb8ba6b9f94fa7be6958e49fc5ade854a0b18 100644 (file)
@@ -214,13 +214,13 @@ s8x24_get_tile_rgba(const unsigned *src,
    unsigned i, j;
 
    for (i = 0; i < h; i++) {
-      float *pRow = p;
+      uint32_t *pRow = p;
 
       for (j = 0; j < w; j++, pRow += 4) {
          pRow[0] =
          pRow[1] =
          pRow[2] =
-         pRow[3] = (float)((*src++ >> 24) & 0xff);
+         pRow[3] = ((*src++ >> 24) & 0xff);
       }
 
       p += dst_stride;
@@ -241,12 +241,12 @@ x24s8_get_tile_rgba(const unsigned *src,
    unsigned i, j;
 
    for (i = 0; i < h; i++) {
-      float *pRow = p;
+      uint32_t *pRow = p;
       for (j = 0; j < w; j++, pRow += 4) {
          pRow[0] =
          pRow[1] =
          pRow[2] =
-         pRow[3] = (float)(*src++ & 0xff);
+         pRow[3] = (*src++ & 0xff);
       }
       p += dst_stride;
    }
@@ -265,12 +265,12 @@ s8_get_tile_rgba(const unsigned char *src,
    unsigned i, j;
 
    for (i = 0; i < h; i++) {
-      float *pRow = p;
+      uint32_t *pRow = p;
       for (j = 0; j < w; j++, pRow += 4) {
          pRow[0] =
          pRow[1] =
          pRow[2] =
-         pRow[3] = (float)(*src++ & 0xff);
+         pRow[3] = (*src++ & 0xff);
       }
       p += dst_stride;
    }