From a9aed9c53949283e898dad12f5224e3b54a453c2ff9aef12fa28cee8c917b81b Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Mon, 30 Sep 2019 09:49:23 +0000 Subject: [PATCH] - Update to version 19.2.0 including changes to * release-infastructure * the build * drivers: turnip, radv, android, intel and amd common code * new features: check Phoronix https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released - supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch - adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch - supersedes n_glesv1_cm-glesv2.patch OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=877 --- Mesa-drivers.changes | 13 ++ Mesa-drivers.spec | 8 +- Mesa.changes | 13 ++ Mesa.spec | 8 +- ...-use-u_ringbuffer-for-lp_scene_queue.patch | 186 ------------------ mesa-19.1.7.tar.xz | 3 - mesa-19.1.7.tar.xz.sig | Bin 566 -> 0 bytes mesa-19.2.0.tar.xz | 3 + mesa-19.2.0.tar.xz.sig | Bin 0 -> 119 bytes ...rc-disable-rgb10-for-chromium-on-amd.patch | 16 +- 10 files changed, 41 insertions(+), 209 deletions(-) delete mode 100644 U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch delete mode 100644 mesa-19.1.7.tar.xz delete mode 100644 mesa-19.1.7.tar.xz.sig create mode 100644 mesa-19.2.0.tar.xz create mode 100644 mesa-19.2.0.tar.xz.sig diff --git a/Mesa-drivers.changes b/Mesa-drivers.changes index 275ff7f..db2d59f 100644 --- a/Mesa-drivers.changes +++ b/Mesa-drivers.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Sep 30 09:02:03 UTC 2019 - Stefan Dirsch + +- Update to version 19.2.0 including changes to + * release-infastructure + * the build + * drivers: turnip, radv, android, intel and amd common code + * new features: check Phoronix + https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released +- supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch +- adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch +- supersedes n_glesv1_cm-glesv2.patch + ------------------------------------------------------------------- Sat Sep 28 13:42:30 UTC 2019 - Stefan Dirsch diff --git a/Mesa-drivers.spec b/Mesa-drivers.spec index 630d341..b6d9b1d 100644 --- a/Mesa-drivers.spec +++ b/Mesa-drivers.spec @@ -42,7 +42,7 @@ %define glamor 1 %define _name_archive mesa -%define _version 19.1.7 +%define _version 19.2.0 %define with_opencl 0 %define with_vulkan 0 %define with_llvm 0 @@ -110,7 +110,7 @@ %endif Name: Mesa-drivers -Version: 19.1.7 +Version: 19.2.0 Release: 0 Summary: System for rendering 3-D graphics License: MIT @@ -124,12 +124,10 @@ Source3: README.updates Source4: manual-pages.tar.bz2 Source6: %{name}-rpmlintrc Source7: Mesa.keyring -Patch0: U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch Patch1: n_opencl_dep_libclang.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch -Patch60: n_glesv1_cm-glesv2.patch BuildRequires: bison BuildRequires: fdupes @@ -724,7 +722,6 @@ programs against the XA state tracker. # remove some docs rm -rf docs/README.{VMS,WIN32,OS2} -%patch0 -p1 %if 0%{with_llvm} if test $(llvm-config --version | cut -d "." -f1) -ge 9; then %patch1 -p1 @@ -732,7 +729,6 @@ fi %endif %patch54 -p1 %patch58 -p1 -%patch60 -p1 # Remove requires to libglvnd/libglvnd-devel from baselibs.conf when # disabling libglvnd build; ugly ... diff --git a/Mesa.changes b/Mesa.changes index 275ff7f..db2d59f 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Sep 30 09:02:03 UTC 2019 - Stefan Dirsch + +- Update to version 19.2.0 including changes to + * release-infastructure + * the build + * drivers: turnip, radv, android, intel and amd common code + * new features: check Phoronix + https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.2-Released +- supersedes U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch +- adjusted n_drirc-disable-rgb10-for-chromium-on-amd.patch +- supersedes n_glesv1_cm-glesv2.patch + ------------------------------------------------------------------- Sat Sep 28 13:42:30 UTC 2019 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index bab9615..88e6400 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -41,7 +41,7 @@ %define glamor 1 %define _name_archive mesa -%define _version 19.1.7 +%define _version 19.2.0 %define with_opencl 0 %define with_vulkan 0 %define with_llvm 0 @@ -109,7 +109,7 @@ %endif Name: Mesa -Version: 19.1.7 +Version: 19.2.0 Release: 0 Summary: System for rendering 3-D graphics License: MIT @@ -123,12 +123,10 @@ Source3: README.updates Source4: manual-pages.tar.bz2 Source6: %{name}-rpmlintrc Source7: Mesa.keyring -Patch0: U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch Patch1: n_opencl_dep_libclang.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch -Patch60: n_glesv1_cm-glesv2.patch BuildRequires: bison BuildRequires: fdupes @@ -723,7 +721,6 @@ programs against the XA state tracker. # remove some docs rm -rf docs/README.{VMS,WIN32,OS2} -%patch0 -p1 %if 0%{with_llvm} if test $(llvm-config --version | cut -d "." -f1) -ge 9; then %patch1 -p1 @@ -731,7 +728,6 @@ fi %endif %patch54 -p1 %patch58 -p1 -%patch60 -p1 # Remove requires to libglvnd/libglvnd-devel from baselibs.conf when # disabling libglvnd build; ugly ... diff --git a/U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch b/U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch deleted file mode 100644 index c4a799f..0000000 --- a/U_llvmpipe-Don-t-use-u_ringbuffer-for-lp_scene_queue.patch +++ /dev/null @@ -1,186 +0,0 @@ -From 397d1a18ef78ddf46efda44d6783105f9fd87f7e Mon Sep 17 00:00:00 2001 -From: Caio Marcelo de Oliveira Filho -Date: Wed, 12 Jun 2019 15:32:30 -0700 -Subject: [PATCH] llvmpipe: Don't use u_ringbuffer for lp_scene_queue - -Inline the ring buffer and signal logic into lp_scene_queue instead of -using a u_ringbuffer. The code ends up simpler since there's no need -to handle serializing data from / to packets. - -This fixes a crash when compiling Mesa with LTO, that happened because -of util_ringbuffer_dequeue() was writing data after the "header -packet", as shown below - - struct scene_packet { - struct util_packet header; - struct lp_scene *scene; - }; - - /* Snippet of old lp_scene_deque(). */ - packet.scene = NULL; - ret = util_ringbuffer_dequeue(queue->ring, - &packet.header, - sizeof packet / 4, - return packet.scene; - -but due to the way aliasing analysis work the compiler didn't -considered the "&packet->header" to alias with "packet->scene". With -the aggressive inlining done by LTO, this would end up always -returning NULL instead of the content read by -util_ringbuffer_dequeue(). - -Issue found by Marco Simental and iThiago Macieira. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110884 -Reviewed-by: Roland Scheidegger ---- - src/gallium/drivers/llvmpipe/lp_scene_queue.c | 84 +++++++++++++++------------ - 1 file changed, 48 insertions(+), 36 deletions(-) - -diff --git a/src/gallium/drivers/llvmpipe/lp_scene_queue.c b/src/gallium/drivers/llvmpipe/lp_scene_queue.c -index debc7a6fe18..5f267d04ca4 100644 ---- a/src/gallium/drivers/llvmpipe/lp_scene_queue.c -+++ b/src/gallium/drivers/llvmpipe/lp_scene_queue.c -@@ -32,25 +32,33 @@ - * which are produced by the "rast" code when it finishes rendering a scene. - */ - --#include "util/u_ringbuffer.h" -+#include "os/os_thread.h" - #include "util/u_memory.h" - #include "lp_scene_queue.h" -+#include "util/u_math.h" - - - --#define MAX_SCENE_QUEUE 4 -+#define SCENE_QUEUE_SIZE 4 -+ - --struct scene_packet { -- struct util_packet header; -- struct lp_scene *scene; --}; - - /** - * A queue of scenes - */ - struct lp_scene_queue - { -- struct util_ringbuffer *ring; -+ struct lp_scene *scenes[SCENE_QUEUE_SIZE]; -+ -+ mtx_t mutex; -+ cnd_t change; -+ -+ /* These values wrap around, so that head == tail means empty. When used -+ * to index the array, we use them modulo the queue size. This scheme -+ * works because the queue size is a power of two. -+ */ -+ unsigned head; -+ unsigned tail; - }; - - -@@ -59,20 +67,19 @@ struct lp_scene_queue - struct lp_scene_queue * - lp_scene_queue_create(void) - { -+ /* Circular queue behavior depends on size being a power of two. */ -+ STATIC_ASSERT(SCENE_QUEUE_SIZE > 0); -+ STATIC_ASSERT((SCENE_QUEUE_SIZE & (SCENE_QUEUE_SIZE - 1)) == 0); -+ - struct lp_scene_queue *queue = CALLOC_STRUCT(lp_scene_queue); -+ - if (!queue) - return NULL; - -- queue->ring = util_ringbuffer_create( MAX_SCENE_QUEUE * -- sizeof( struct scene_packet ) / 4); -- if (queue->ring == NULL) -- goto fail; -+ (void) mtx_init(&queue->mutex, mtx_plain); -+ cnd_init(&queue->change); - - return queue; -- --fail: -- FREE(queue); -- return NULL; - } - - -@@ -80,7 +87,8 @@ fail: - void - lp_scene_queue_destroy(struct lp_scene_queue *queue) - { -- util_ringbuffer_destroy(queue->ring); -+ cnd_destroy(&queue->change); -+ mtx_destroy(&queue->mutex); - FREE(queue); - } - -@@ -89,19 +97,25 @@ lp_scene_queue_destroy(struct lp_scene_queue *queue) - struct lp_scene * - lp_scene_dequeue(struct lp_scene_queue *queue, boolean wait) - { -- struct scene_packet packet; -- enum pipe_error ret; -+ mtx_lock(&queue->mutex); - -- packet.scene = NULL; -+ if (wait) { -+ /* Wait for queue to be not empty. */ -+ while (queue->head == queue->tail) -+ cnd_wait(&queue->change, &queue->mutex); -+ } else { -+ if (queue->head == queue->tail) { -+ mtx_unlock(&queue->mutex); -+ return NULL; -+ } -+ } - -- ret = util_ringbuffer_dequeue(queue->ring, -- &packet.header, -- sizeof packet / 4, -- wait ); -- if (ret != PIPE_OK) -- return NULL; -+ struct lp_scene *scene = queue->scenes[queue->head++ % SCENE_QUEUE_SIZE]; -+ -+ cnd_signal(&queue->change); -+ mtx_unlock(&queue->mutex); - -- return packet.scene; -+ return scene; - } - - -@@ -109,16 +123,14 @@ lp_scene_dequeue(struct lp_scene_queue *queue, boolean wait) - void - lp_scene_enqueue(struct lp_scene_queue *queue, struct lp_scene *scene) - { -- struct scene_packet packet; -- -- packet.header.dwords = sizeof packet / 4; -- packet.header.data24 = 0; -- packet.scene = scene; -- -- util_ringbuffer_enqueue(queue->ring, &packet.header); --} -- -- -+ mtx_lock(&queue->mutex); - -+ /* Wait for free space. */ -+ while (queue->tail - queue->head >= SCENE_QUEUE_SIZE) -+ cnd_wait(&queue->change, &queue->mutex); - -+ queue->scenes[queue->tail++ % SCENE_QUEUE_SIZE] = scene; - -+ cnd_signal(&queue->change); -+ mtx_unlock(&queue->mutex); -+} --- -2.16.4 - diff --git a/mesa-19.1.7.tar.xz b/mesa-19.1.7.tar.xz deleted file mode 100644 index 06ffb86..0000000 --- a/mesa-19.1.7.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e287920fdb38712a9fed448dc90b3ca95048c7face5db52e58361f8b6e0f3cd5 -size 10941152 diff --git a/mesa-19.1.7.tar.xz.sig b/mesa-19.1.7.tar.xz.sig deleted file mode 100644 index 064cac727b089ae4c21b31d1514b01cf407c984d49ecbfdd5d4f282ef3290bf1..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmV-60?GY}0y6{v0SW*e79j*j))5UXZd zsqQB}b42A2{TTS7IdKSl>F*LGW-ci5P1!m^7=N~K+rDQ>raHGnHtFfq2@WpT&*(a` zF&m7}X7RB^eq=ILn;uY6tNoWiz?Kt|~z)Ui}!1-IqnV1ua zJ){TG8Ay3-P$@VUy%pgNdbAiDz2Wvwk4tr}Zg7n%>&b&>&W&?81)>e&?9m+{6{)1R zQ8NyDh7pMaXE65=HoYR^V%5?kNgPafc^tlaI$*75?#Ti}V(z@B`c9NV` zc=d8Wpd&u`Q?8iU0G?~wu8+k!M9csFkK(QgFDz-(Ojg9e>6W;=xaQZyGa5}BzV$Ht zzX4`sS~$ zCWE!&J2H~7y}Ri4bv0jN(_wm<$}~fg2x+{*`A>DIqU_r2foIh)He=xC2;vj3eCa^p EQJgXq*Z=?k diff --git a/mesa-19.2.0.tar.xz b/mesa-19.2.0.tar.xz new file mode 100644 index 0000000..58c8efb --- /dev/null +++ b/mesa-19.2.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b060caa2a00f856431160ff7377d0e8f58f2aa48c16ee5a9e265ebdccb10852a +size 11464180 diff --git a/mesa-19.2.0.tar.xz.sig b/mesa-19.2.0.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..c610429c3cfd2bd42da5f8d94f7e6d504634ebb01beaa3c989a43d513b06d2e4 GIT binary patch literal 119 zcmeAuWnmEGVvrS6WGOtdJxpOwX+gL5ZB?JCzgF9AD1O7r6x%)jJOdY}08HfM8ixN~ z>s8EBGV6Za(rZc=3_C16w8HSsGt>y~PVECWKv^wbEoPhN)i -