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 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
