[Mesa-dev] [PATCH 0/4] GL_EXT_packed_float

Marek Olšák maraeo at gmail.com
Thu Apr 28 05:04:21 PDT 2011


Hi,

This series implements another GL3 extension: GL_EXT_packed_float

This one is quite simple, because its code is very similar to that of GL_EXT_texture_shared_exponent -- all the pack, unpack, texstore, texfetch, and mipmap functions are equivalent, but instead of calling rgb9e5_to_float3 and vice versa, I used r11g11b10f_to_float3 and vice versa.

I should mention I obtained the code for conversion between float and f11 and between float and f10 from here:
http://www.opengl-redbook.com/appendices/AppJ.pdf
I guess that's not a problem.

There is only r600g support for now. Although sampler and mipmap-gen support for swrast, softpipe, and llvmpipe has been tested and works, the extension also requires renderbuffer and blending support, which is not implemented by this series.

BTW, there are 5 piglit tests for this extension already:
- fbo-alphatest-formats
- fbo-blending-formats
- fbo-clear-formats
- fbo-generatemipmap-formats
- texwrap

Please review.


Marek Olšák (4):
      util: implement R11G11B10_FLOAT pack/unpack functions
      mesa: implement EXT_packed_float
      st/mesa: support EXT_packed_float
      r600g: implement EXT_packed_float

 src/gallium/auxiliary/util/u_format.csv          |    2 +-
 src/gallium/auxiliary/util/u_format_other.c      |  119 ++++++++++++++
 src/gallium/auxiliary/util/u_format_other.h      |   26 +++
 src/gallium/auxiliary/util/u_format_r11g11b10f.h |  190 ++++++++++++++++++++++
 src/gallium/drivers/r600/eg_state_inlines.h      |    4 +
 src/gallium/drivers/r600/r600_state_inlines.h    |    3 +
 src/gallium/drivers/r600/r600_texture.c          |    3 +
 src/mesa/main/fbobject.c                         |    2 +
 src/mesa/main/formats.c                          |   14 ++
 src/mesa/main/formats.h                          |    1 +
 src/mesa/main/image.c                            |   11 ++
 src/mesa/main/mipmap.c                           |   47 ++++++
 src/mesa/main/pack.c                             |   81 +++++++++-
 src/mesa/main/texfetch.c                         |    8 +
 src/mesa/main/texfetch_tmp.h                     |   21 +++
 src/mesa/main/texformat.c                        |   10 ++
 src/mesa/main/texstore.c                         |   57 +++++++
 src/mesa/state_tracker/st_cb_drawpixels.c        |    4 +
 src/mesa/state_tracker/st_extensions.c           |    7 +
 src/mesa/state_tracker/st_format.c               |   11 ++
 20 files changed, 615 insertions(+), 6 deletions(-)
 create mode 100644 src/gallium/auxiliary/util/u_format_r11g11b10f.h

Marek


More information about the mesa-dev mailing list