diff --git a/.gitignore b/.gitignore index 7d5f47c..7150d62 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/mesa-21.3.0.tar.xz +SOURCES/mesa-21.3.4.tar.xz diff --git a/.mesa.metadata b/.mesa.metadata index 21690b8..3b1dfce 100644 --- a/.mesa.metadata +++ b/.mesa.metadata @@ -1 +1 @@ -036c47505c16b627c87807a89a362622bbba1a19 SOURCES/mesa-21.3.0.tar.xz +c18255897b353f259c64e7a864d8505d8b5bf024 SOURCES/mesa-21.3.4.tar.xz diff --git a/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch b/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch new file mode 100644 index 0000000..cc50a4b --- /dev/null +++ b/SOURCES/0001-iris-implement-inter-context-busy-tracking.patch @@ -0,0 +1,58 @@ +From 07dc3d4238e57901ccf98e0b506d9aad2c86b9d9 Mon Sep 17 00:00:00 2001 +From: Paulo Zanoni +Date: Mon, 10 Jan 2022 17:18:05 -0800 +Subject: [PATCH] iris: implement inter-context busy-tracking + +Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the +Kernel would ensure dependency tracking for us. After we implemented +explicit busy tracking in commit 89a34cb8450a, only the external +objects kept relying on the Kernel's implicit tracking and Iris did +inter-batch busy tracking, meaning we lost inter-screen and +inter-context synchronization. This seemed fine to me since, as far as +I understood, it is the duty of the application to synchronize itself +against multiple screens and contexts. + +The problem here is that applications were actually relying on the old +behavior where the Kernel guarantees synchronization, so 89a34cb8450a +can be seen as a regression. This commit addresses the inter-context +synchronization case. + +Cc: mesa-stable +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731 +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5812 +Fixes: 89a34cb8450a ("iris: switch to explicit busy tracking") +Tested-by: Konstantin Kharlamov +Signed-off-by: Paulo Zanoni +--- + src/gallium/drivers/iris/iris_batch.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c +index b7bde60aae7..1b0c5896d4f 100644 +--- a/src/gallium/drivers/iris/iris_batch.c ++++ b/src/gallium/drivers/iris/iris_batch.c +@@ -835,6 +835,12 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write) + move_syncobj_to_batch(batch, &deps->write_syncobjs[other_batch_idx], + I915_EXEC_FENCE_WAIT); + ++ /* If it's being written by our screen, wait on it too. This is relevant ++ * when there are multiple contexts on the same screen. */ ++ if (deps->write_syncobjs[batch_idx]) ++ move_syncobj_to_batch(batch, &deps->write_syncobjs[batch_idx], ++ I915_EXEC_FENCE_WAIT); ++ + struct iris_syncobj *batch_syncobj = iris_batch_get_signal_syncobj(batch); + + if (write) { +@@ -847,6 +853,8 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write) + + move_syncobj_to_batch(batch, &deps->read_syncobjs[other_batch_idx], + I915_EXEC_FENCE_WAIT); ++ move_syncobj_to_batch(batch, &deps->read_syncobjs[batch_idx], ++ I915_EXEC_FENCE_WAIT); + + } else { + /* If we're reading, replace the other read from our batch index. */ +-- +GitLab + diff --git a/SOURCES/Makefile b/SOURCES/Makefile index c48e5d8..2ff7214 100644 --- a/SOURCES/Makefile +++ b/SOURCES/Makefile @@ -1,4 +1,4 @@ -VERSION ?= 21.3.0 +VERSION ?= 21.3.4 SANITIZE ?= 1 DIRNAME = mesa-${VERSION} diff --git a/SPECS/mesa.spec b/SPECS/mesa.spec index ba8f924..2d3a68f 100644 --- a/SPECS/mesa.spec +++ b/SPECS/mesa.spec @@ -39,7 +39,7 @@ Name: mesa Summary: Mesa graphics libraries -Version: 21.3.0 +Version: 21.3.4 Release: 1%{?rctag:.%{rctag}}%{?dist} License: MIT @@ -56,6 +56,12 @@ Source4: Mesa-MLAA-License-Clarification-Email.txt Patch0: lavapipe-disable-env-var.patch +# Patches to fix Intel blinking, see: +# https://gitlab.freedesktop.org/pzanoni/mesa/-/commit/07dc3d4238e57901ccf98e0b506d9aad2c86b9d9 +# https://bugzilla.redhat.com/show_bug.cgi?id=2036600 +# https://bugzilla.redhat.com/show_bug.cgi?id=2040771 +Patch0001: 0001-iris-implement-inter-context-busy-tracking.patch + BuildRequires: gcc BuildRequires: gcc-c++ @@ -546,6 +552,9 @@ done %endif %changelog +* Tue Jan 25 2022 Dave Airlie - 21.3.4-1 +- Update to 23.1.4 for gbm and leak fixes, add iris regression fix + * Thu Nov 18 2021 Dave Airlie - 21.3.0-1 - rebase to 23.1.0