Hello community, here is the log from the commit of package Mesa for openSUSE:Factory checked in at 2020-02-14 16:30:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/Mesa (Old) and /work/SRC/openSUSE:Factory/.Mesa.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "Mesa" Fri Feb 14 16:30:26 2020 rev:369 rq:770593 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/Mesa/Mesa-drivers.changes 2020-02-06 13:18:43.876657705 +0100 +++ /work/SRC/openSUSE:Factory/.Mesa.new.26092/Mesa-drivers.changes 2020-02-14 16:30:29.899357518 +0100 @@ -1,0 +2,7 @@ +Thu Feb 6 11:32:05 UTC 2020 - Stefan Dirsch <[email protected]> + +- u_Revert_gallium_Fix_big-endian_addressing_of_non-bitmask_array_formats.patch + * replaces U_gallium-Fix-big-endian-addressing-of-non-bitmask-arr.patch + by an official merge request (bsc#1162252, gitlab issue#2472) + +------------------------------------------------------------------- Mesa.changes: same change Old: ---- U_gallium-Fix-big-endian-addressing-of-non-bitmask-arr.patch New: ---- u_Revert_gallium_Fix_big-endian_addressing_of_non-bitmask_array_formats.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ Mesa-drivers.spec ++++++ --- /var/tmp/diff_new_pack.pYJq7Q/_old 2020-02-14 16:30:31.907358608 +0100 +++ /var/tmp/diff_new_pack.pYJq7Q/_new 2020-02-14 16:30:31.919358615 +0100 @@ -1,7 +1,7 @@ # # spec file for package Mesa-drivers # -# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -126,7 +126,7 @@ Source7: Mesa.keyring Patch1: n_opencl_dep_libclang.patch Patch2: n_add-Mesa-headers-again.patch -Patch3: U_gallium-Fix-big-endian-addressing-of-non-bitmask-arr.patch +Patch3: u_Revert_gallium_Fix_big-endian_addressing_of_non-bitmask_array_formats.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -749,7 +749,7 @@ %endif %patch2 -p1 # reverse apply since it caused a regression in rendering on s390x (bsc#1162252) -%patch3 -p1 -R +%patch3 -p1 %patch54 -p1 %patch58 -p1 %patch61 -p1 ++++++ Mesa.spec ++++++ --- /var/tmp/diff_new_pack.pYJq7Q/_old 2020-02-14 16:30:31.975358645 +0100 +++ /var/tmp/diff_new_pack.pYJq7Q/_new 2020-02-14 16:30:31.991358654 +0100 @@ -1,7 +1,7 @@ # # spec file for package Mesa # -# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -125,7 +125,7 @@ Source7: Mesa.keyring Patch1: n_opencl_dep_libclang.patch Patch2: n_add-Mesa-headers-again.patch -Patch3: U_gallium-Fix-big-endian-addressing-of-non-bitmask-arr.patch +Patch3: u_Revert_gallium_Fix_big-endian_addressing_of_non-bitmask_array_formats.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -748,7 +748,7 @@ %endif %patch2 -p1 # reverse apply since it caused a regression in rendering on s390x (bsc#1162252) -%patch3 -p1 -R +%patch3 -p1 %patch54 -p1 %patch58 -p1 %patch61 -p1 ++++++ u_Revert_gallium_Fix_big-endian_addressing_of_non-bitmask_array_formats.patch ++++++ 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 Closes: #2472 diff --git a/src/gallium/auxiliary/util/u_format_parse.py b/src/util/gallium/auxiliary/u_format_parse.py index 541ae69d4dc662e16c08ed7c27a9e65534a4b08f..b9627055cda3f5277bddc1936614a983f1359d00 100644 --- a/src/gallium/auxiliary/util/u_format_parse.py +++ b/src/gallium/auxiliary/util/u_format_parse.py @@ -379,27 +379,16 @@ def parse(filename): channel.shift = le_shift le_shift += channel.size + be_shift = 0 + for channel in be_channels[3::-1]: + channel.shift = be_shift + be_shift += channel.size + + assert le_shift == be_shift for i in range(4): assert (le_swizzles[i] != SWIZZLE_NONE) == (be_swizzles[i] != SWIZZLE_NONE) format = Format(name, layout, block_width, block_height, block_depth, le_channels, le_swizzles, be_channels, be_swizzles, colorspace) - - if format.is_array() and not format.is_bitmask(): - # Formats accessed as arrays by the pack functions (R32G32_FLOAT or - # R8G8B8_UNORM, for example) should not be channel-ordering-reversed - # for BE. - # Note that __eq__ on channels ignores .shift! - assert(format.be_channels == format.le_channels) - assert(format.be_swizzles == format.le_swizzles) - format.be_channels = format.le_channels - else: - be_shift = 0 - for channel in format.be_channels[3::-1]: - channel.shift = be_shift - be_shift += channel.size - - assert le_shift == be_shift - formats.append(format) return formats
