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

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Dec 3 01:33:33 PST 2014


On Monday, December 01, 2014 11:22:59 AM Jason Ekstrand wrote:
> 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.
> 

I ran those tests in both NVIDIA and ATI proprietary drivers:

* NVIDIA supports ABGR with 5551.
* ATI doesn't support it.

Same happen with ABGR/1010102.

Should we remove ABGR/5551 and ABGR/1010102 support from Mesa? Or should we 
keep it?

Sam

> > 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 --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141203/39be74fa/attachment.sig>


More information about the mesa-dev mailing list