Skip to content

Revert "gallium: Fix big-endian addressing of non-bitmask array formats."

Emma Anholt requested to merge anholt/mesa:format-array-be-fix into master

This reverts the functional part of commit d17ff2f7, leaving the unit test for mesa/pipe agreement on what's an array.

The issue is that the util_channel_desc.shift values on array formats are not used for bit addressing in memory, they're bit addressing within a word treating a pixel of the format as a native type, as seen by llvmpipe's use of the values to do shifts (see lp_build_unpack_arith_rgba_aos() for example). This means the values are nonsensical for 3-byte RGB, but then llvmpipe doesn't expose those formats so it works out.

I still want to clean up our big-endian format handling at some point, but let's fix the s390x regression first, sort out our format unit tests in CI, then be able to refactor with confidence.

Fixes: d17ff2f7 ("gallium: Fix big-endian addressing of non-bitmask array formats.") Closes: #2440

Merge request reports