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 <sndir...@suse.com>
+
+- 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
 

Reply via email to