[Mesa-dev] [PATCH 0/8] util: big-endian fixes for format generator

Jose Fonseca jfonseca at vmware.com
Wed Jun 19 10:06:09 PDT 2013

----- Original Message -----
> This series is a replacement for the util part of:
>     http://lists.freedesktop.org/archives/mesa-dev/2013-May/039419.html
> It doesn't include any of the controversial format name parts of
> those patches (although of course they're still needed in some form).

I've skimmed through the series and looks good to me.

> The original version took the endianness from the build system and
> only produced output for that endianness.  This version instead
> generates both big- and little-endian code, with preprocessor
> guards to choose the right version.

Yes, this is better -- it means that cross compilation between big-little endian machines (eg, powerpc -> mingw) will work well.


> The x8y8z8w8 formats could be handled by adding separate big- and
> little-endian shift amounts to u_format_parse.Channel.  The patches
> go a bit further and separate the entire channel and swizzle lists.
> That is, u_format_parse.Format now has separate channel and swizzle
> lists for each endianness.
> The reason for this is that (AFAICT) depth-and-stencil formats are
> universally treated as uint32_t-based or (float x uint32_t)-based.
> E.g. PIPE_FORMAT_Z24_UNORM_S8_UINT is always a 32-bit int with the depth
> in the lower 24 bits and the stencil in the upper 8 bits.  (This is
> called S8_Z24 in mesa and elsewhere.)  The easiest way of dealing with
> that seemed to be to add the big-endian form directly to u_format.csv,
> as with the attached patch.  No other changes seem to be needed to support
> these particular formats on big-endian.
> I'm not submitting the patch below yet because it doesn't make sense
> without the other endianness changes.  When applied on top of those
> changes though, it fixes glxgears on System z.  It also fixes many
> piglit tests.
> No piglit regressions on x86_64.
> Thanks,
> Richard
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

More information about the mesa-dev mailing list