[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