nv40: use native Z24_S8 format for zeta buffer
authorBen Skeggs <skeggsb@gmail.com>
Tue, 20 Nov 2007 08:10:58 +0000 (19:10 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Tue, 20 Nov 2007 08:10:58 +0000 (19:10 +1100)
src/mesa/pipe/nv40/nv40_clear.c
src/mesa/pipe/nv40/nv40_context.c
src/mesa/pipe/nv40/nv40_surface.c

index f3b7a23689f7f51b2e54eb1a9a647a28f0e9e0ea..7890107c9577d57c3038c6e1a09081a10666212a 100644 (file)
@@ -10,12 +10,6 @@ void
 nv40_clear(struct pipe_context *pipe, struct pipe_surface *ps,
           unsigned clearValue)
 {
-       /*XXX: We're actually Z24_S8... */
-       if (ps->format == PIPE_FORMAT_S8_Z24) {
-               clearValue = (((clearValue & 0xff000000) >> 24) |
-                             ((clearValue & 0x00ffffff) <<  8));
-       }
-
        pipe->region_fill(pipe, ps->region, 0, 0, 0, ps->width, ps->height,
                          clearValue);
 }
index ef5f21cb9c384556cb07f34a3c53905a8d0f0b5c..8462d08f8d9b93e205f06d7b63da451aa3a858c3 100644 (file)
@@ -12,7 +12,7 @@ nv40_is_format_supported(struct pipe_context *pipe, uint format)
        switch (format) {
        case PIPE_FORMAT_U_A8_R8_G8_B8:
        case PIPE_FORMAT_U_R5_G6_B5: 
-       case PIPE_FORMAT_S8_Z24: 
+       case PIPE_FORMAT_Z24_S8:
                return TRUE;
        default:
                break;
index 84e0d792681004a9185f2c969f1cd79fbec6d01f..5292b5171ff889473bb8cd1f96c2f3fd18b8ba14 100644 (file)
@@ -79,7 +79,7 @@ nv40_get_tile_rgba(struct pipe_context *pipe,
          p += w0 * 4;
       }
       break;
-   case PIPE_FORMAT_S8_Z24:
+   case PIPE_FORMAT_Z24_S8:
       {
          const float scale = 1.0 / (float) 0xffffff;
          for (i = 0; i < h; i++) {
@@ -89,7 +89,7 @@ nv40_get_tile_rgba(struct pipe_context *pipe,
                pRow[0] =
                pRow[1] =
                pRow[2] =
-               pRow[3] = (pixel & 0xffffff) * scale;
+               pRow[3] = ((pixel & 0xffffff) >> 8) * scale;
                pRow += 4;
             }
             src += ps->region->pitch;