[Mesa-dev] [PATCH v2 00/23] auto-generate pack/unpack functions

Jason Ekstrand jason at jlekstrand.net
Mon Dec 1 11:22:59 PST 2014


On Mon, Dec 1, 2014 at 3:04 AM, Iago Toral Quiroga <itoral at igalia.com>
wrote:

> 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-v2
>
> Link to the original series:
> http://lists.freedesktop.org/archives/mesa-dev/2014-November/070898.html
>
> Main changes in v2:
>   - Fixed auto-generation for a2r10g10b10, removed hand coded
> implementation.
>   - Updated docs and configure to requite mako as a build dependency.
>   - Expanded the patch to mesa_swizzle_and_convert to clamp in all integer
>     conversions that require it.
>   - Fixed out-of-tree builds.
>   - Fixed handling of integer formats.
>   - Merged format_conver.py into format_parser.py.
>

This is looking much better!  I had a couple of comments here and there but
otherwise, the whole thing looks pretty good to me.  Most of the fixes at
this point should be pretty trivial, so you probably don't need to re-send
the series.  I'll try and scare up a review for the bits of code in here
that I wrote.


>
> Jason, we decided to keep the 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 in this series, since these types
>   are currently supported and removing them would be a change in behavior.
>   When we send the second series to address format conversion we will
>   include a separate patch at the end to remove these types. If you prefer
> this
>   to be handled differently, let us know.
>

I talked to a few people and as far as we can tell, those should be
disallowed by the type/format checks in TexSubImage and friends.  Ian
suggested that we run that piglit test against nVidia and AMD's
closed-source drivers and see what they do.  If they don't support ABGR
with 5551, then let's go ahead and drop support for it ourselves.  If they
do, then it's not that much code to keep.  It's also possible that they
don't support the extension at all in which case let's keep the extension
and drop support for using it with 5551.  That said, let's make it a
seperate patch so that if anyone complains it's easy to revert.


>
> Patch 11 is optional now that we no longer need to pass a base format to
> _mesa_format_convert (implemented in the second series), but still looks
> like
> a good idea to me.
>

Yeah, let's keep it

--Jason


>
> 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
>   mesa: 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 (11):
>   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()
>
>  configure.ac                       |    2 +
>  docs/install.html                  |    6 +-
>  m4/ax_check_python_mako_module.m4  |   56 +
>  src/mesa/Makefile.am               |   26 +
>  src/mesa/Makefile.sources          |    4 +-
>  src/mesa/main/colormac.h           |    3 -
>  src/mesa/main/format_info.py       |   41 +
>  src/mesa/main/format_pack.c        | 2994 ------------------------
>  src/mesa/main/format_pack.c.mako   | 1102 +++++++++
>  src/mesa/main/format_pack.h        |    6 +
>  src/mesa/main/format_parser.py     |   71 +
>  src/mesa/main/format_unpack.c      | 4400
> ------------------------------------
>  src/mesa/main/format_unpack.c.mako |  881 ++++++++
>  src/mesa/main/format_utils.c       |  262 +--
>  src/mesa/main/format_utils.h       |  130 ++
>  src/mesa/main/formats.c            |  262 ++-
>  src/mesa/main/formats.csv          |   13 +
>  src/mesa/main/formats.h            |   82 +-
>  src/mesa/main/pack.c               | 2111 +++--------------
>  src/mesa/main/pack_tmp.h           |   76 +-
>  src/mesa/main/python_mako.py       |   17 +
>  src/mesa/main/run_mako.py          |    7 +
>  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, 3338 insertions(+), 10597 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.c.mako
>  delete mode 100644 src/mesa/main/format_unpack.c
>  create mode 100644 src/mesa/main/format_unpack.c.mako
>  create mode 100644 src/mesa/main/python_mako.py
>  create mode 100644 src/mesa/main/run_mako.py
>
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141201/efb79840/attachment.html>


More information about the mesa-dev mailing list