[Mesa-dev] [PATCH] gallium: kill off PIPE_FORMAT_Z32_UNORM with extreme prejudice

sroland at vmware.com sroland at vmware.com
Thu Oct 24 20:48:03 CEST 2013


From: Roland Scheidegger <sroland at vmware.com>

This format, while still supported in OpenGL (but optional) and glx, is just
causing major nuisance everywhere and needs special code in some places,
because things like 1 << depth_bits don't work.
It is also the reason why we chose (just like in GL) depth clear values as
doubles and not floats.
The format however is just a disaster, no hw (as far as I know) supports it
(because hw has all float pipelines, and floats don't have enough mantissa
bits), and while we CLAIM to support it in software rasterizers, fact is it
cannot (and never will) really work right, unless we wouldn't use floats for
depth calculations. E.g. depth offsets can't work right (small depth bias will
disappear with primitive depths > 1/256 due to the float calcs without enough
mantissa bits), and it is generally useless (since the calculations are all
float, use a float buffer if you need something better than z24 unorm).
---
 src/gallium/auxiliary/util/u_format.csv            |    1 -
 src/gallium/auxiliary/util/u_format.h              |    4 +-
 src/gallium/auxiliary/util/u_format_tests.c        |    3 -
 src/gallium/auxiliary/util/u_format_zs.c           |   69 --------------------
 src/gallium/auxiliary/util/u_pack_color.h          |    6 --
 src/gallium/auxiliary/util/u_tile.c                |   56 ----------------
 src/gallium/drivers/ilo/ilo_format.c               |    2 +-
 src/gallium/drivers/softpipe/sp_quad_depth_test.c  |   17 -----
 src/gallium/drivers/svga/svga_format.c             |    3 -
 src/gallium/drivers/svga/svga_pipe_misc.c          |    4 --
 src/gallium/include/pipe/p_format.h                |    2 +-
 src/gallium/state_trackers/dri/common/dri_screen.c |   18 ++---
 src/gallium/state_trackers/egl/common/egl_g3d.c    |    1 -
 src/gallium/state_trackers/glx/xlib/xm_api.c       |    3 -
 src/gallium/state_trackers/wgl/stw_pixelformat.c   |    1 -
 src/gallium/state_trackers/xa/xa_tracker.c         |    3 -
 src/gallium/state_trackers/xorg/xorg_dri2.c        |    3 -
 src/mesa/state_tracker/st_cb_fbo.c                 |    3 -
 src/mesa/state_tracker/st_format.c                 |    6 +-
 19 files changed, 12 insertions(+), 193 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_format.csv b/src/gallium/auxiliary/util/u_format.csv
index 8d04b00..662cc59 100644
--- a/src/gallium/auxiliary/util/u_format.csv
+++ b/src/gallium/auxiliary/util/u_format.csv
@@ -126,7 +126,6 @@ PIPE_FORMAT_R5SG5SB6U_NORM        , plain, 1, 1, sn5 , sn5 , un6 ,     , xyz1, r
 # Depth-stencil formats
 PIPE_FORMAT_S8_UINT                 , plain, 1, 1, up8 ,     ,     ,     , _x__, zs
 PIPE_FORMAT_Z16_UNORM               , plain, 1, 1, un16,     ,     ,     , x___, zs
-PIPE_FORMAT_Z32_UNORM               , plain, 1, 1, un32,     ,     ,     , x___, zs
 PIPE_FORMAT_Z32_FLOAT               , plain, 1, 1, f32 ,     ,     ,     , x___, zs
 PIPE_FORMAT_Z24_UNORM_S8_UINT       , plain, 1, 1, un24, up8 ,     ,     , xy__, zs
 PIPE_FORMAT_S8_UINT_Z24_UNORM       , plain, 1, 1, up8 , un24,     ,     , yx__, zs
diff --git a/src/gallium/auxiliary/util/u_format.h b/src/gallium/auxiliary/util/u_format.h
index 84f16d5..2101293 100644
--- a/src/gallium/auxiliary/util/u_format.h
+++ b/src/gallium/auxiliary/util/u_format.h
@@ -289,7 +289,7 @@ struct util_format_description
                        unsigned i, unsigned j);
 
    /**
-    * Unpack pixels to Z32_UNORM.
+    * Unpack pixels to 32bit unorm.
     * Note: strides are in bytes.
     *
     * Only defined for depth formats.
@@ -300,7 +300,7 @@ struct util_format_description
                        unsigned width, unsigned height);
 
    /**
-    * Pack pixels from Z32_FLOAT.
+    * Pack pixels from 32bit unorm.
     * Note: strides are in bytes.
     *
     * Only defined for depth formats.
diff --git a/src/gallium/auxiliary/util/u_format_tests.c b/src/gallium/auxiliary/util/u_format_tests.c
index 64224cd..0e07dd1 100644
--- a/src/gallium/auxiliary/util/u_format_tests.c
+++ b/src/gallium/auxiliary/util/u_format_tests.c
@@ -347,9 +347,6 @@ util_format_test_cases[] =
    {PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0x0000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
    {PIPE_FORMAT_Z16_UNORM, PACKED_1x16(0xffff), PACKED_1x16(0xffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
 
-   {PIPE_FORMAT_Z32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
-   {PIPE_FORMAT_Z32_UNORM, PACKED_1x32(0xffffffff), PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
-
    {PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
    {PIPE_FORMAT_Z32_FLOAT, PACKED_1x32(0xffffffff), PACKED_1x32(0x3f800000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
 
diff --git a/src/gallium/auxiliary/util/u_format_zs.c b/src/gallium/auxiliary/util/u_format_zs.c
index ed45c52..f1a7b4c 100644
--- a/src/gallium/auxiliary/util/u_format_zs.c
+++ b/src/gallium/auxiliary/util/u_format_zs.c
@@ -224,75 +224,6 @@ util_format_z16_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
 }
 
 void
-util_format_z32_unorm_unpack_z_float(float *dst_row, unsigned dst_stride,
-                                     const uint8_t *src_row, unsigned src_stride,
-                                     unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; ++y) {
-      float *dst = dst_row;
-      const uint32_t *src = (const uint32_t *)src_row;
-      for(x = 0; x < width; ++x) {
-         uint32_t value = *src++;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *dst++ = z32_unorm_to_z32_float(value);
-      }
-      src_row += src_stride/sizeof(*src_row);
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-void
-util_format_z32_unorm_pack_z_float(uint8_t *dst_row, unsigned dst_stride,
-                                   const float *src_row, unsigned src_stride,
-                                   unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; ++y) {
-      const float *src = src_row;
-      uint32_t *dst = (uint32_t *)dst_row;
-      for(x = 0; x < width; ++x) {
-         uint32_t value;
-         value = z32_float_to_z32_unorm(*src++);
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *dst++ = value;
-      }
-      dst_row += dst_stride/sizeof(*dst_row);
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-void
-util_format_z32_unorm_unpack_z_32unorm(uint32_t *dst_row, unsigned dst_stride,
-                                       const uint8_t *src_row, unsigned src_stride,
-                                       unsigned width, unsigned height)
-{
-   unsigned y;
-   for(y = 0; y < height; ++y) {
-      memcpy(dst_row, src_row, width * 4);
-      src_row += src_stride/sizeof(*src_row);
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-void
-util_format_z32_unorm_pack_z_32unorm(uint8_t *dst_row, unsigned dst_stride,
-                                     const uint32_t *src_row, unsigned src_stride,
-                                     unsigned width, unsigned height)
-{
-   unsigned y;
-   for(y = 0; y < height; ++y) {
-      memcpy(dst_row, src_row, width * 4);
-      src_row += src_stride/sizeof(*src_row);
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-void
 util_format_z32_float_unpack_z_float(float *dst_row, unsigned dst_stride,
                                      const uint8_t *src_row, unsigned src_stride,
                                      unsigned width, unsigned height)
diff --git a/src/gallium/auxiliary/util/u_pack_color.h b/src/gallium/auxiliary/util/u_pack_color.h
index 3625273..a6f1c95 100644
--- a/src/gallium/auxiliary/util/u_pack_color.h
+++ b/src/gallium/auxiliary/util/u_pack_color.h
@@ -443,7 +443,6 @@ util_pack_mask_z(enum pipe_format format, uint32_t z)
    switch (format) {
    case PIPE_FORMAT_Z16_UNORM:
       return z & 0xffff;
-   case PIPE_FORMAT_Z32_UNORM:
    case PIPE_FORMAT_Z32_FLOAT:
       return z;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
@@ -529,11 +528,6 @@ util_pack_z(enum pipe_format format, double z)
       if (z == 1.0)
          return 0xffff;
       return (uint32_t) lrint(z * 0xffff);
-   case PIPE_FORMAT_Z32_UNORM:
-      /* special-case to avoid overflow */
-      if (z == 1.0)
-         return 0xffffffff;
-      return (uint32_t) llrint(z * 0xffffffff);
    case PIPE_FORMAT_Z32_FLOAT:
       fui.f = (float)z;
       return fui.ui;
diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c
index fb80aec..3a1dfd8 100644
--- a/src/gallium/auxiliary/util/u_tile.c
+++ b/src/gallium/auxiliary/util/u_tile.c
@@ -118,35 +118,6 @@ z16_get_tile_rgba(const ushort *src,
 }
 
 
-
-
-/*** PIPE_FORMAT_Z32_UNORM ***/
-
-/**
- * Return each Z value as four floats in [0,1].
- */
-static void
-z32_get_tile_rgba(const unsigned *src,
-                  unsigned w, unsigned h,
-                  float *p,
-                  unsigned dst_stride)
-{
-   const double scale = 1.0 / (double) 0xffffffff;
-   unsigned i, j;
-
-   for (i = 0; i < h; i++) {
-      float *pRow = p;
-      for (j = 0; j < w; j++, pRow += 4) {
-         pRow[0] =
-         pRow[1] =
-         pRow[2] =
-         pRow[3] = (float) (*src++ * scale);
-      }
-      p += dst_stride;
-   }
-}
-
-
 /*** PIPE_FORMAT_Z24_UNORM_S8_UINT ***/
 
 /**
@@ -363,9 +334,6 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
    case PIPE_FORMAT_Z16_UNORM:
       z16_get_tile_rgba((ushort *) src, w, h, dst, dst_stride);
       break;
-   case PIPE_FORMAT_Z32_UNORM:
-      z32_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
-      break;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
    case PIPE_FORMAT_Z24X8_UNORM:
       s8z24_get_tile_rgba((unsigned *) src, w, h, dst, dst_stride);
@@ -497,9 +465,6 @@ pipe_put_tile_rgba_format(struct pipe_transfer *pt,
    case PIPE_FORMAT_Z16_UNORM:
       /*z16_put_tile_rgba((ushort *) packed, w, h, p, src_stride);*/
       break;
-   case PIPE_FORMAT_Z32_UNORM:
-      /*z32_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
-      break;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
    case PIPE_FORMAT_Z24X8_UNORM:
       /*s8z24_put_tile_rgba((unsigned *) packed, w, h, p, src_stride);*/
@@ -601,17 +566,6 @@ pipe_get_tile_z(struct pipe_transfer *pt,
       return;
 
    switch (format) {
-   case PIPE_FORMAT_Z32_UNORM:
-      {
-         const uint *ptrc
-            = (const uint *)(map  + y * pt->stride + x*4);
-         for (i = 0; i < h; i++) {
-            memcpy(pDest, ptrc, 4 * w);
-            pDest += dstStride;
-            ptrc += pt->stride/4;
-         }
-      }
-      break;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
    case PIPE_FORMAT_Z24X8_UNORM:
       {
@@ -722,16 +676,6 @@ pipe_put_tile_z(struct pipe_transfer *pt,
       return;
 
    switch (format) {
-   case PIPE_FORMAT_Z32_UNORM:
-      {
-         uint *pDest = (uint *) (map + y * pt->stride + x*4);
-         for (i = 0; i < h; i++) {
-            memcpy(pDest, ptrc, 4 * w);
-            pDest += pt->stride/4;
-            ptrc += srcStride;
-         }
-      }
-      break;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
       {
          uint *pDest = (uint *) (map + y * pt->stride + x*4);
diff --git a/src/gallium/drivers/ilo/ilo_format.c b/src/gallium/drivers/ilo/ilo_format.c
index 40b5ffa..84d34b7 100644
--- a/src/gallium/drivers/ilo/ilo_format.c
+++ b/src/gallium/drivers/ilo/ilo_format.c
@@ -359,7 +359,7 @@ ilo_translate_color_format(enum pipe_format format)
       [PIPE_FORMAT_UYVY]                  = BRW_SURFACEFORMAT_YCRCB_SWAPUVY,
       [PIPE_FORMAT_YUYV]                  = BRW_SURFACEFORMAT_YCRCB_NORMAL,
       [PIPE_FORMAT_Z16_UNORM]             = 0,
-      [PIPE_FORMAT_Z32_UNORM]             = 0,
+      /* gap */
       [PIPE_FORMAT_Z32_FLOAT]             = 0,
       [PIPE_FORMAT_Z24_UNORM_S8_UINT]     = 0,
       [PIPE_FORMAT_S8_UINT_Z24_UNORM]     = 0,
diff --git a/src/gallium/drivers/softpipe/sp_quad_depth_test.c b/src/gallium/drivers/softpipe/sp_quad_depth_test.c
index 67bc67c..97ea8a1 100644
--- a/src/gallium/drivers/softpipe/sp_quad_depth_test.c
+++ b/src/gallium/drivers/softpipe/sp_quad_depth_test.c
@@ -70,13 +70,6 @@ get_depth_stencil_values( struct depth_data *data,
          data->bzzzz[j] = tile->data.depth16[y][x];
       }
       break;
-   case PIPE_FORMAT_Z32_UNORM:
-      for (j = 0; j < TGSI_QUAD_SIZE; j++) {
-         int x = quad->input.x0 % TILE_SIZE + (j & 1);
-         int y = quad->input.y0 % TILE_SIZE + (j >> 1);
-         data->bzzzz[j] = tile->data.depth32[y][x];
-      }
-      break;
    case PIPE_FORMAT_Z24X8_UNORM:
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
       for (j = 0; j < TGSI_QUAD_SIZE; j++) {
@@ -169,15 +162,6 @@ convert_quad_depth( struct depth_data *data,
          }
       }
       break;
-   case PIPE_FORMAT_Z32_UNORM:
-      {
-         double scale = (double) (uint) ~0UL;
-
-         for (j = 0; j < TGSI_QUAD_SIZE; j++) {
-            data->qzzzz[j] = (unsigned) (quad->output.depth[j] * scale);
-         }
-      }
-      break;
    case PIPE_FORMAT_Z24X8_UNORM:
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
       {
@@ -266,7 +250,6 @@ write_depth_stencil_values( struct depth_data *data,
       }
       break;
    case PIPE_FORMAT_Z24X8_UNORM:
-   case PIPE_FORMAT_Z32_UNORM:
       for (j = 0; j < TGSI_QUAD_SIZE; j++) {
          int x = quad->input.x0 % TILE_SIZE + (j & 1);
          int y = quad->input.y0 % TILE_SIZE + (j >> 1);
diff --git a/src/gallium/drivers/svga/svga_format.c b/src/gallium/drivers/svga/svga_format.c
index 5a153a8..5817cc4 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -103,9 +103,6 @@ svga_translate_format(struct svga_screen *ss,
    case PIPE_FORMAT_R16G16B16A16_FLOAT:
       return SVGA3D_ARGB_S10E5;
 
-   case PIPE_FORMAT_Z32_UNORM:
-      /* SVGA3D_Z_D32 is not yet unsupported */
-      /* fall-through */
    default:
       return SVGA3D_FORMAT_INVALID;
    }
diff --git a/src/gallium/drivers/svga/svga_pipe_misc.c b/src/gallium/drivers/svga/svga_pipe_misc.c
index f1c007b..46ae64a 100644
--- a/src/gallium/drivers/svga/svga_pipe_misc.c
+++ b/src/gallium/drivers/svga/svga_pipe_misc.c
@@ -68,7 +68,6 @@ void svga_cleanup_framebuffer(struct svga_context *svga)
 
 #define DEPTH_BIAS_SCALE_FACTOR_D16    ((float)(1<<15))
 #define DEPTH_BIAS_SCALE_FACTOR_D24S8  ((float)(1<<23))
-#define DEPTH_BIAS_SCALE_FACTOR_D32    ((float)(1<<31))
 
 
 static void svga_set_framebuffer_state(struct pipe_context *pipe,
@@ -128,9 +127,6 @@ static void svga_set_framebuffer_state(struct pipe_context *pipe,
       case PIPE_FORMAT_X8Z24_UNORM:
          svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D24S8;
          break;
-      case PIPE_FORMAT_Z32_UNORM:
-         svga->curr.depthscale = 1.0f / DEPTH_BIAS_SCALE_FACTOR_D32;
-         break;
       case PIPE_FORMAT_Z32_FLOAT:
          svga->curr.depthscale = 1.0f / ((float)(1<<23));
          break;
diff --git a/src/gallium/include/pipe/p_format.h b/src/gallium/include/pipe/p_format.h
index b82f08f..e187725 100644
--- a/src/gallium/include/pipe/p_format.h
+++ b/src/gallium/include/pipe/p_format.h
@@ -70,7 +70,7 @@ enum pipe_format {
    PIPE_FORMAT_UYVY                    = 14,
    PIPE_FORMAT_YUYV                    = 15,
    PIPE_FORMAT_Z16_UNORM               = 16,
-   PIPE_FORMAT_Z32_UNORM               = 17,
+   /* gap */
    PIPE_FORMAT_Z32_FLOAT               = 18,
    PIPE_FORMAT_Z24_UNORM_S8_UINT       = 19,
    PIPE_FORMAT_S8_UINT_Z24_UNORM       = 20,
diff --git a/src/gallium/state_trackers/dri/common/dri_screen.c b/src/gallium/state_trackers/dri/common/dri_screen.c
index 92cac73..de1fd68 100644
--- a/src/gallium/state_trackers/dri/common/dri_screen.c
+++ b/src/gallium/state_trackers/dri/common/dri_screen.c
@@ -95,7 +95,7 @@ dri_fill_in_modes(struct dri_screen *screen)
    unsigned msaa_samples_max;
    unsigned i;
    struct pipe_screen *p_screen = screen->base.screen;
-   boolean pf_z16, pf_x8z24, pf_z24x8, pf_s8z24, pf_z24s8, pf_z32;
+   boolean pf_z16, pf_x8z24, pf_z24x8, pf_s8z24, pf_z24s8;
 
    static const GLenum back_buffer_modes[] = {
       GLX_NONE, GLX_SWAP_UNDEFINED_OML, GLX_SWAP_COPY_OML
@@ -129,9 +129,6 @@ dri_fill_in_modes(struct dri_screen *screen)
    pf_z16 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z16_UNORM,
                                           PIPE_TEXTURE_2D, 0,
                                           PIPE_BIND_DEPTH_STENCIL);
-   pf_z32 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z32_UNORM,
-                                          PIPE_TEXTURE_2D, 0,
-                                          PIPE_BIND_DEPTH_STENCIL);
 
    if (pf_z16) {
       depth_bits_array[depth_buffer_factor] = 16;
@@ -147,10 +144,6 @@ dri_fill_in_modes(struct dri_screen *screen)
       stencil_bits_array[depth_buffer_factor++] = 8;
       screen->sd_depth_bits_last = pf_s8z24;
    }
-   if (pf_z32) {
-      depth_bits_array[depth_buffer_factor] = 32;
-      stencil_bits_array[depth_buffer_factor++] = 0;
-   }
 
    assert(Elements(mesa_formats) == Elements(pipe_formats));
 
@@ -271,17 +264,20 @@ dri_fill_st_visual(struct st_visual *stvis, struct dri_screen *screen,
       break;
    case 24:
       if (mode->stencilBits == 0) {
-	 stvis->depth_stencil_format = (screen->d_depth_bits_last) ?
+         stvis->depth_stencil_format = (screen->d_depth_bits_last) ?
                                           PIPE_FORMAT_Z24X8_UNORM:
                                           PIPE_FORMAT_X8Z24_UNORM;
       } else {
-	 stvis->depth_stencil_format = (screen->sd_depth_bits_last) ?
+         stvis->depth_stencil_format = (screen->sd_depth_bits_last) ?
                                           PIPE_FORMAT_Z24_UNORM_S8_UINT:
                                           PIPE_FORMAT_S8_UINT_Z24_UNORM;
       }
       break;
    case 32:
-      stvis->depth_stencil_format = PIPE_FORMAT_Z32_UNORM;
+      /* not sure here what to do? */
+      stvis->depth_stencil_format = (screen->d_depth_bits_last) ?
+                                       PIPE_FORMAT_Z24X8_UNORM:
+                                       PIPE_FORMAT_X8Z24_UNORM;
       break;
    }
 
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c
index 7cc4e8f..97c43e1 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -382,7 +382,6 @@ egl_g3d_fill_depth_stencil_formats(_EGLDisplay *dpy,
    struct pipe_screen *screen = gdpy->native->screen;
    const EGLint candidates[] = {
       1, PIPE_FORMAT_Z16_UNORM,
-      1, PIPE_FORMAT_Z32_UNORM,
       2, PIPE_FORMAT_Z24_UNORM_S8_UINT, PIPE_FORMAT_S8_UINT_Z24_UNORM,
       2, PIPE_FORMAT_Z24X8_UNORM, PIPE_FORMAT_X8Z24_UNORM,
       0
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c
index bb2dd8e..fd76420 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -397,9 +397,6 @@ choose_depth_stencil_format(XMesaDisplay xmdpy, int depth, int stencil)
       formats[count++] = PIPE_FORMAT_S8_UINT_Z24_UNORM;
       formats[count++] = PIPE_FORMAT_Z24_UNORM_S8_UINT;
    }
-   if (depth <= 32 && stencil == 0) {
-      formats[count++] = PIPE_FORMAT_Z32_UNORM;
-   }
 
    fmt = PIPE_FORMAT_NONE;
    for (i = 0; i < count; i++) {
diff --git a/src/gallium/state_trackers/wgl/stw_pixelformat.c b/src/gallium/state_trackers/wgl/stw_pixelformat.c
index b74b71b..de3e1dc 100644
--- a/src/gallium/state_trackers/wgl/stw_pixelformat.c
+++ b/src/gallium/state_trackers/wgl/stw_pixelformat.c
@@ -93,7 +93,6 @@ stw_pf_color_extended[] = {
 static const struct stw_pf_depth_info 
 stw_pf_depth_stencil[] = {
    /* pure depth */
-   { PIPE_FORMAT_Z32_UNORM,   {32, 0} },
    { PIPE_FORMAT_X8Z24_UNORM, {24, 0} },
    { PIPE_FORMAT_Z24X8_UNORM, {24, 0} },
    { PIPE_FORMAT_Z16_UNORM,   {16, 0} },
diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c
index cda6501..6936ca9 100644
--- a/src/gallium/state_trackers/xa/xa_tracker.c
+++ b/src/gallium/state_trackers/xa/xa_tracker.c
@@ -108,9 +108,6 @@ xa_get_pipe_format(enum xa_formats xa_format)
     case xa_format_z16:
 	fdesc.format = PIPE_FORMAT_Z16_UNORM;
 	break;
-    case xa_format_z32:
-	fdesc.format = PIPE_FORMAT_Z32_UNORM;
-	break;
     case xa_format_x8z24:
 	fdesc.format = PIPE_FORMAT_Z24X8_UNORM;
 	break;
diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c
index fb50ef8..d4c1102 100644
--- a/src/gallium/state_trackers/xorg/xorg_dri2.c
+++ b/src/gallium/state_trackers/xorg/xorg_dri2.c
@@ -114,9 +114,6 @@ dri2_do_create_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer, unsigned int form
                case 16:
                   template.format = PIPE_FORMAT_Z16_UNORM;
                   break;
-               case 32:
-                  template.format = PIPE_FORMAT_Z32_UNORM;
-                  break;
                default:
                   template.format = ms->ds_depth_bits_last ?
                                     PIPE_FORMAT_Z24X8_UNORM : PIPE_FORMAT_X8Z24_UNORM;
diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
index 2089482..b509a10 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -319,9 +319,6 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
    case PIPE_FORMAT_Z16_UNORM:
       strb->Base.InternalFormat = GL_DEPTH_COMPONENT16;
       break;
-   case PIPE_FORMAT_Z32_UNORM:
-      strb->Base.InternalFormat = GL_DEPTH_COMPONENT32;
-      break;
    case PIPE_FORMAT_Z24_UNORM_S8_UINT:
    case PIPE_FORMAT_S8_UINT_Z24_UNORM:
       strb->Base.InternalFormat = GL_DEPTH24_STENCIL8_EXT;
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 33c2ca6..3eea59e 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -102,8 +102,6 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
       return PIPE_FORMAT_I16_UNORM;
    case MESA_FORMAT_Z16:
       return PIPE_FORMAT_Z16_UNORM;
-   case MESA_FORMAT_Z32:
-      return PIPE_FORMAT_Z32_UNORM;
    case MESA_FORMAT_Z24_S8:
       return PIPE_FORMAT_S8_UINT_Z24_UNORM;
    case MESA_FORMAT_S8_Z24:
@@ -455,8 +453,6 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
 
    case PIPE_FORMAT_Z16_UNORM:
       return MESA_FORMAT_Z16;
-   case PIPE_FORMAT_Z32_UNORM:
-      return MESA_FORMAT_Z32;
    case PIPE_FORMAT_S8_UINT_Z24_UNORM:
       return MESA_FORMAT_Z24_S8;
    case PIPE_FORMAT_X8Z24_UNORM:
@@ -967,7 +963,7 @@ static const struct format_mapping format_map[] = {
    },
    {
       { GL_DEPTH_COMPONENT32, 0 },
-      { PIPE_FORMAT_Z32_UNORM, DEFAULT_DEPTH_FORMATS }
+      { DEFAULT_DEPTH_FORMATS }
    },
    {
       { GL_DEPTH_COMPONENT, 0 },
-- 
1.7.9.5


More information about the mesa-dev mailing list