This is the first of two series that aim to address: https://bugs.freedesktop.org/show_bug.cgi?id=84566
A branch with this series is available here: https://github.com/Igalia/mesa/tree/itoral-autogen-packing-review-v3 Links to previous versions of the series: v2: http://lists.freedesktop.org/archives/mesa-dev/2014-December/071622.html v1: http://lists.freedesktop.org/archives/mesa-dev/2014-November/070898.html Main changes in v3: - Do not use a union/struct and bitmasks to implement and access mesa_array_format, that won't work on big-endian as pointed out by Ian. The new implementation drops the union/struct and accesses mesa_array_format as a uint32_t bitfield only. - Remove the unused float_to_uint helper (last patch in the series) Notes: - Patches 1, 3-7, 9 are already reviewed-by Ian. Tested on i965, classic swrast and gallium (radeon, nouveau, llvmpipe) without regressions. Iago Toral Quiroga (3): mesa: Fix incorrect assertion in init_teximage_fields_ms swrast: Remove unused variable. mesa: Let _mesa_get_format_base_format also handle mesa_array_format. Jason Ekstrand (9): mesa/format_utils: Fix a bug in unorm_to_float helper function mesa: Fix packing/unpacking of MESA_FORMAT_R5G6B5_UNORM mesa/colormac: Remove an unused macro mesa: Fix A1R5G5B5 packing/unpacking mesa/format_utils: Prefix and expose the conversion helper functions main: Add a concept of an array format mesa: Add a _mesa_is_format_color_format helper mesa: Autogenerate most of format_pack.c mesa: Autogenerate format_unpack.c Samuel Iglesias Gonsalvez (12): mesa: Fix get_texbuffer_format(). mesa: Fix _mesa_swizzle_and_convert integer conversions to clamp properly configure: require python mako module mesa: Add _mesa_pack_uint_rgba_row() format conversion function mesa: Add non-normalized formats support for ubyte packing functions mesa/format_pack: Add _mesa_pack_int_rgba_row() mesa/formats: add new mesa formats and their pack/unpack functions. mesa: use format conversion functions in swrast mesa/pack: use autogenerated format_pack functions mesa/main/pack_tmp.h: Add float conversion support mesa/pack: refactor _mesa_pack_rgba_span_float() main: remove unused float_to_uint() function configure.ac | 2 + docs/install.html | 6 +- m4/ax_check_python_mako_module.m4 | 77 + src/mesa/Makefile.am | 18 + src/mesa/Makefile.sources | 4 +- src/mesa/SConscript | 14 + src/mesa/main/.gitignore | 2 + src/mesa/main/colormac.h | 3 - src/mesa/main/format_info.py | 16 + src/mesa/main/format_pack.c | 2994 ------------------------- src/mesa/main/format_pack.h | 6 + src/mesa/main/format_pack.py | 1118 ++++++++++ src/mesa/main/format_parser.py | 47 + src/mesa/main/format_unpack.c | 4400 ------------------------------------- src/mesa/main/format_unpack.py | 891 ++++++++ src/mesa/main/format_utils.c | 271 +-- src/mesa/main/format_utils.h | 131 ++ src/mesa/main/formats.c | 271 ++- src/mesa/main/formats.csv | 13 + src/mesa/main/formats.h | 156 +- src/mesa/main/pack.c | 2111 +++--------------- src/mesa/main/pack_tmp.h | 76 +- src/mesa/main/teximage.c | 6 +- src/mesa/main/texstore.c | 2 +- src/mesa/swrast/s_drawpix.c | 3 - src/mesa/swrast/s_texfetch.c | 13 + src/mesa/swrast/s_texfetch_tmp.h | 1359 +----------- 27 files changed, 3403 insertions(+), 10607 deletions(-) create mode 100644 m4/ax_check_python_mako_module.m4 delete mode 100644 src/mesa/main/format_pack.c create mode 100644 src/mesa/main/format_pack.py delete mode 100644 src/mesa/main/format_unpack.c create mode 100644 src/mesa/main/format_unpack.py -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev