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 064cac7..0000000 Binary files a/mesa-19.1.7.tar.xz.sig and /dev/null differ 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 0000000..c610429 Binary files /dev/null and b/mesa-19.2.0.tar.xz.sig differ diff --git a/n_drirc-disable-rgb10-for-chromium-on-amd.patch b/n_drirc-disable-rgb10-for-chromium-on-amd.patch index d8fb482..3a03e05 100644 --- a/n_drirc-disable-rgb10-for-chromium-on-amd.patch +++ b/n_drirc-disable-rgb10-for-chromium-on-amd.patch @@ -1,10 +1,10 @@ -Index: mesa-19.1.2/src/util/00-mesa-defaults.conf +Index: mesa-19.2.0/src/util/00-mesa-defaults.conf =================================================================== ---- mesa-19.1.2.orig/src/util/00-mesa-defaults.conf -+++ mesa-19.1.2/src/util/00-mesa-defaults.conf -@@ -451,6 +451,17 @@ TODO: document the other workarounds. - - + + @@ -18,5 +18,5 @@ Index: mesa-19.1.2/src/util/00-mesa-defaults.conf + + - - + +