[Mesa-dev] [PATCH 00/13] Floating-point depth buffers

Marek Olšák maraeo at gmail.com
Thu Jun 30 17:29:32 PDT 2011


Hi,

this patch series implements ARB_depth_buffer_float in Mesa and Gallium. There is complete r600g/r600-r700 support in my private branch, which passes the same tests that pass for Z24S8. Softpipe has only sampler support. This has turned out to be not so trivial, so it's possible I missed something.

I did not implement NV_depth_buffer_float, because it's not compatible with the ARB variant. (GL_DEPTH_COMPONENT32F != GL_DEPTH_COMPONENT32F_NV etc.) The NV extension can operate on unclamped depth values, whereas the ARB one always clamps them.

Please review.

Marek Olšák (13):
      mesa: initial ARB_depth_buffer_float support
      mesa: implement texfetch functions for depth_buffer_float
      mesa: implement stencil unpacking for GL_FLOAT_32_UNSIGNED_INT_24_8_REV
      mesa: implement depth unpacking for GL_FLOAT_32_UNSIGNED_INT_24_8_REV
      mesa: implement texstore for DEPTH_COMPONENT32F
      mesa: implement texstore for DEPTH32F_STENCIL8
      mesa: implement generatemipmap for GL_FLOAT_32_UNSIGNED_INT_24_8_REV
      mesa: implement depth/stencil renderbuffer wrapper accessors for Z32F_X24S8
      st/mesa: initial ARB_depth_buffer_float support
      st/mesa: implement read/draw/copypixels for Z32F and Z32F_S8X24
      gallium/util: implement pack functions for Z32F and Z32F_S8X24
      gallium/util: implement software Z32F_S8X24 depth-stencil clear
      gallium/util: handle Z32F_FLOAT_S8X24_USCALED in pipe_tile_raw_to_rgba

 src/gallium/auxiliary/util/u_pack_color.h |   64 ++++++
 src/gallium/auxiliary/util/u_surface.c    |   35 +++-
 src/gallium/auxiliary/util/u_tile.c       |   35 +++
 src/mesa/main/depthstencil.c              |  322 +++++++++++++++++++++++++++--
 src/mesa/main/depthstencil.h              |    5 +
 src/mesa/main/fbobject.c                  |   19 ++
 src/mesa/main/formats.c                   |   29 +++
 src/mesa/main/formats.h                   |    3 +
 src/mesa/main/framebuffer.c               |   10 +-
 src/mesa/main/image.c                     |   18 ++-
 src/mesa/main/mipmap.c                    |   20 ++
 src/mesa/main/pack.c                      |   62 +++++-
 src/mesa/main/readpix.c                   |   29 +++-
 src/mesa/main/renderbuffer.c              |    3 +
 src/mesa/main/texfetch.c                  |   14 ++
 src/mesa/main/texfetch_tmp.h              |   23 ++
 src/mesa/main/texformat.c                 |   13 ++
 src/mesa/main/texstore.c                  |   79 +++++++-
 src/mesa/state_tracker/st_cb_clear.c      |    6 +-
 src/mesa/state_tracker/st_cb_drawpixels.c |   64 +++++-
 src/mesa/state_tracker/st_cb_readpixels.c |   43 ++++
 src/mesa/state_tracker/st_extensions.c    |   11 +
 src/mesa/state_tracker/st_format.c        |   19 ++
 23 files changed, 875 insertions(+), 51 deletions(-)

 Marek


More information about the mesa-dev mailing list