This is the second of two series that aim to address: https://bugs.freedesktop.org/show_bug.cgi?id=84566
This series requires the previous series that implements auto-generation of the pack/unpack functions. A branch with both series is available here: https://github.com/Igalia/mesa/tree/itoral-format-convert-review-v3 Links to the previous versions of this series: v2: http://lists.freedesktop.org/archives/mesa-dev/2014-December/071643.html v1: http://lists.freedesktop.org/archives/mesa-dev/2014-November/070916.html Main changes in v3: - Adapted to the implementation of mesa_array_format as a simple uint32_t bitfield. Notes: - Following discussion in the mailing list, the last patch removes support for: GL_ABGR_EXT/GL_UNSIGNED_SHORT_5_5_5_1, GL_ABGR_EXT/GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_ABGR_EXT/GL_UNSIGNED_INT_2_10_10_10_REV, GL_ABGR_EXT/GL_UNSIGNED_INT_10_10_10_2 which breaks the following piglit tests in their current form: spec/!OpenGL 1.2/texture-packed-formats glean/pixelFormats Tested on i965, classic swrast and gallium (radeon, nouveau, llvmpipe) without regressions, except for the two regressions mentioned above with the last patch. 14 new piglit passes: spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB16_SNORM/Destination: GL_RGB16_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_ALPHA12/Destination: GL_ALPHA12 spec/!OpenGL 1.1/teximage-colors GL_RGB16_SNORM/Exact upload-download of GL_RGB16_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB8I/Destination: GL_RGB8_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB16UI/Destination: GL_RGB16_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB8_SNORM/Destination: GL_RGB8_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB8UI/Destination: GL_RGB8_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB8/Destination: GL_RGB8_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB16/Destination: GL_RGB16_SNORM spec/!OpenGL 1.1/teximage-colors GL_RGB8_SNORM/Exact upload-download of GL_RGB8_SNORM spec/ARB_copy_image/arb_copy_image-formats/Source: GL_INTENSITY12/Destination: GL_INTENSITY12 spec/ARB_copy_image/arb_copy_image-formats/Source: GL_LUMINANCE12/Destination: GL_LUMINANCE12 spec/ARB_copy_image/arb_copy_image-formats/Source: GL_LUMINANCE12_ALPHA12/Destination: GL_LUMINANCE12_ALPHA12 spec/ARB_copy_image/arb_copy_image-formats/Source: GL_RGB16I/Destination: GL_RGB16_SNORM Eduardo Lima Mitev (1): mesa: Replace _mesa_unpack_bitmap with _mesa_unpack_image() Iago Toral Quiroga (23): mesa: Expose compute_component_mapping as _mesa_compute_component_mapping mesa: Add a rebase_swizzle parameter to _mesa_format_convert mesa: Add a helper _mesa_compute_rgba2base2rgba_component_mapping mesa: Let _mesa_swizzle_and_convert take array format types instead of GL types mesa: Add helper to convert a GL format and type to a mesa (array) format. mesa: Add _mesa_swap2_copy and _mesa_swap4_copy mesa: Add RGBA to Luminance conversion helpers mesa: Add helpers to extract GL_COLOR_INDEX to RGBA float/ubyte mesa: Use _mesa_format_convert to implement texstore_rgba. mesa: use _mesa_format_convert to implement glReadPixels. mesa: use _mesa_format_convert to implement get_tex_rgba_uncompressed. mesa: Use _mesa_format_convert to implement get_tex_rgba_compressed. swrast: Use _mesa_format_convert to implement draw_rgba_pixels. gallium: Use _mesa_format_convert to implement st_GetTexImage. mesa: Remove _mesa_unpack_color_span_uint mesa: Remove _mesa_make_temp_ubyte_image mesa: Remove _mesa_make_temp_float_image mesa: Remove _mesa_unpack_color_span_ubyte mesa: Remove (signed) integer pack and span functions. mesa: Remove _mesa_unpack_color_span_float mesa: Remove _mesa_pack_rgba_span_float and tmp_pack.h mesa: Remove _mesa_(un)pack_index_span mesa: Remove _mesa_rebase_rgba_uint and _mesa_rebase_rgba_float Jason Ekstrand (1): mesa: Add an implementation of a master convert function. Samuel Iglesias Gonsalvez (3): mesa/pack: use _mesa_format_from_format_and_type in _mesa_pack_rgba_span_from_* mesa: Remove _mesa_pack_int_rgba_row() and auxiliary functions mesa: restrict use of GL_ABGR_EXT format to allowed data types src/mesa/main/dlist.c | 14 +- src/mesa/main/format_pack.h | 4 - src/mesa/main/format_pack.py | 121 -- src/mesa/main/format_utils.c | 908 ++++++++- src/mesa/main/format_utils.h | 24 +- src/mesa/main/formats.c | 28 - src/mesa/main/formats.csv | 4 - src/mesa/main/formats.h | 5 - src/mesa/main/glformats.c | 323 ++- src/mesa/main/glformats.h | 2 + src/mesa/main/image.c | 25 +- src/mesa/main/image.h | 16 +- src/mesa/main/pack.c | 3505 ++------------------------------ src/mesa/main/pack.h | 85 +- src/mesa/main/pack_tmp.h | 196 -- src/mesa/main/readpix.c | 321 +-- src/mesa/main/texcompress_bptc.c | 39 +- src/mesa/main/texcompress_fxt1.c | 34 +- src/mesa/main/texcompress_rgtc.c | 90 +- src/mesa/main/texcompress_s3tc.c | 68 +- src/mesa/main/texgetimage.c | 323 +-- src/mesa/main/texstore.c | 1145 +---------- src/mesa/main/texstore.h | 19 - src/mesa/state_tracker/st_cb_texture.c | 17 +- src/mesa/swrast/s_drawpix.c | 39 +- src/mesa/swrast/s_texfetch.c | 4 - 26 files changed, 2042 insertions(+), 5317 deletions(-) delete mode 100644 src/mesa/main/pack_tmp.h -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev