extra/mesa to 18.0.3-4

This commit is contained in:
Kevin Mihelich 2018-05-17 12:39:57 +00:00
parent c0f1e3a6bb
commit 4e06b245e8
7 changed files with 129 additions and 55 deletions

View file

@ -1,12 +0,0 @@
diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in
--- mesa-12.0.3/src/mesa/gl.pc.in.jx 2016-01-18 02:39:26.000000000 -0500
+++ mesa-12.0.3/src/mesa/gl.pc.in 2016-10-25 13:06:44.013159358 -0400
@@ -7,7 +7,7 @@ Name: gl
Description: Mesa OpenGL library
Requires.private: @GL_PC_REQ_PRIV@
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -l@GL_LIB@
+Libs: -L${libdir} -lGL
Libs.private: @GL_PC_LIB_PRIV@
Cflags: -I${includedir} @GL_PC_CFLAGS@
glx_tls: @GLX_TLS@

View file

@ -0,0 +1,26 @@
From a9554de2a6028540fa12a7ebdab4daf2b46010fa Mon Sep 17 00:00:00 2001
Message-Id: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
From: Unknown <>
Date: Tue, 15 May 2018 20:10:53 +0200
Subject: [PATCH 1/4] glvnd: fix gl.pc
---
src/mesa/gl.pc.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/gl.pc.in b/src/mesa/gl.pc.in
index 181724b97b..8c7b7da8d7 100644
--- a/src/mesa/gl.pc.in
+++ b/src/mesa/gl.pc.in
@@ -7,7 +7,7 @@ Name: gl
Description: Mesa OpenGL library
Requires.private: @GL_PC_REQ_PRIV@
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -l@GL_LIB@
+Libs: -L${libdir} -lGL
Libs.private: @GL_PC_LIB_PRIV@
Cflags: -I${includedir} @GL_PC_CFLAGS@
glx_tls: @GLX_TLS@
--
2.17.0

View file

@ -1,14 +0,0 @@
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
index 6bb11c4..7bd79af 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -234,6 +234,9 @@ loader_dri3_drawable_fini(struct loader_dri3_drawable *draw)
{
int i;
+ if (draw->special_event)
+ loader_dri3_swapbuffer_barrier(draw);
+
draw->ext->core->destroyDrawable(draw->dri_drawable);
for (i = 0; i < ARRAY_SIZE(draw->buffers); i++) {

View file

@ -1,10 +1,10 @@
From cd56731b2c63532d6ed97f7b39afa5977936b3bc Mon Sep 17 00:00:00 2001
Message-Id: <cd56731b2c63532d6ed97f7b39afa5977936b3bc.1523725229.git.jan.steffens@gmail.com>
In-Reply-To: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com>
References: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com>
From 4edc0c6290ea4e848c5142b6807ebc5c809fecef Mon Sep 17 00:00:00 2001
Message-Id: <4edc0c6290ea4e848c5142b6807ebc5c809fecef.1526409254.git.jan.steffens@gmail.com>
In-Reply-To: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
References: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sat, 14 Apr 2018 18:43:23 +0200
Subject: [PATCH 4/5] meson: Add library versions to swr drivers
Subject: [PATCH 2/4] meson: Add library versions to swr drivers
This is for parity with autotools.
@ -67,5 +67,5 @@ index 43e1c5cc50..a6dbd7a3f6 100644
)
endif
--
2.16.2
2.17.0

View file

@ -1,10 +1,10 @@
From 064f328419936a8a5df2b0474ae76196d92e6fa0 Mon Sep 17 00:00:00 2001
Message-Id: <064f328419936a8a5df2b0474ae76196d92e6fa0.1523725229.git.jan.steffens@gmail.com>
In-Reply-To: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com>
References: <ac8faf2b14ed1c9ce518eddfc9c5098b6f9c74dd.1523725229.git.jan.steffens@gmail.com>
From 7bafcb1b39b03110ba5a375635d7b6b5ecf98bc4 Mon Sep 17 00:00:00 2001
Message-Id: <7bafcb1b39b03110ba5a375635d7b6b5ecf98bc4.1526409254.git.jan.steffens@gmail.com>
In-Reply-To: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
References: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sat, 14 Apr 2018 18:49:14 +0200
Subject: [PATCH 5/5] meson: Version libMesaOpenCL like autotools does
Subject: [PATCH 3/4] meson: Version libMesaOpenCL like autotools does
This is for parity with autotools. It names the library
libMesaOpenCL.so.1.0.0 and points mesa.icd to the .1 symlink.
@ -39,5 +39,5 @@ index bebe0547d4..317ad8dab4 100644
)
--
2.16.2
2.17.0

View file

@ -0,0 +1,73 @@
From 5abc129c70cac08104fb7f8c757bc30afe8e8803 Mon Sep 17 00:00:00 2001
Message-Id: <5abc129c70cac08104fb7f8c757bc30afe8e8803.1526409254.git.jan.steffens@gmail.com>
In-Reply-To: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
References: <a9554de2a6028540fa12a7ebdab4daf2b46010fa.1526409254.git.jan.steffens@gmail.com>
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel@daenzer.net>
Date: Tue, 8 May 2018 11:42:05 +0200
Subject: [PATCH 4/4] loader_dri3: Variant 2: Wait for pending swaps to
complete before drawable_fini.
On 2018-05-05 06:25 AM, Mario Kleiner wrote:
> On Sat, May 5, 2018 at 4:08 AM, Mike Lothian <mike@fireburn.co.uk> wrote:
>> I definately saw the steam bug with patch 1 but not with plasmashell,
>> I started seeing it with patch 2 but it seemed to fix itself
>
> I had two hangs of kwin_x11 within the last 6 hours when alt-tabbing
> between windows, where it got stuck in the
> loader_dri3_swapbuffer_barrier() from patch 1/2. Not sure how that is
> possible, or if the stacktrace was misleading, because i had to VT
> switch to a text console to attach the debugger and this might be just
> a side effect of that. But if it is true, then patch 1/2 would not be
> it. Also 1/2 has a potential performance impact, whereas 2/2 doesn't.
> However 2/2 would also need more work, as i can think of more complex
> scenarios where it would filter the wrong events, although not in the
> case of plasmashell or steam. Probably we'd need to sacrifice a few
> sbc bits in the Present events serial field to transport a unique tag
> for each incarnation of the loader_dri3_drawable, like a mini-hash of
> the draw->eid. Ugly ugly...
How about the below?
Idle notify events shouldn't need special treatment, since the pixmap
XIDs of the buffers will be different between loader_dri3_drawable
incarnations, aren't they?
This still leaves the issue that the SBC moves backwards, which could
theoretically result in hangs with apps using glXWaitForSbcOML. Fixing
that would probably require changing the loader_dri3_drawable lifetime
cycle, which would probably be very invasive, if feasible at all. Maybe
we don't need to care about that for the time being, until there's a
real world app running into it.
---
src/loader/loader_dri3_helper.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
index 2e3b6c619e..e1eecb70a9 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -365,9 +365,18 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw,
* checking for wrap.
*/
if (ce->kind == XCB_PRESENT_COMPLETE_KIND_PIXMAP) {
- draw->recv_sbc = (draw->send_sbc & 0xffffffff00000000LL) | ce->serial;
- if (draw->recv_sbc > draw->send_sbc)
- draw->recv_sbc -= 0x100000000;
+ uint64_t recv_sbc = (draw->send_sbc & 0xffffffff00000000LL) | ce->serial;
+
+ /* Only assume wraparound if that results in exactly the previous
+ * SBC + 1, otherwise ignore received SBC > sent SBC (those are
+ * probably from a previous loader_dri3_drawable instance) to avoid
+ * calculating bogus target MSC values in loader_dri3_swap_buffers_msc
+ */
+ if (recv_sbc <= draw->send_sbc)
+ draw->recv_sbc = recv_sbc;
+ else if (recv_sbc == (draw->recv_sbc + 0x100000001ULL))
+ draw->recv_sbc = recv_sbc - 0x100000000ULL;
+
switch (ce->mode) {
case XCB_PRESENT_COMPLETE_MODE_FLIP:
draw->flipping = true;
--
2.17.0

View file

@ -10,7 +10,7 @@ pkgbase=mesa
pkgname=('libva-mesa-driver' 'mesa-vdpau' 'mesa')
pkgdesc="An open-source implementation of the OpenGL specification"
pkgver=18.0.3
pkgrel=3
pkgrel=4
arch=('x86_64')
makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto'
'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols'
@ -19,18 +19,18 @@ url="https://www.mesa3d.org/"
license=('custom')
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
LICENSE
0001-glvnd-fix-gl-dot-pc.patch
0002-loader_dri3-Wait-for-pending-swaps-to-complete-before-drawable_fini.patch
0004-meson-Add-library-versions-to-swr-drivers.patch
0005-meson-Version-libMesaOpenCL-like-autotools-does.patch
0001-glvnd-fix-gl.pc.patch
0002-meson-Add-library-versions-to-swr-drivers.patch
0003-meson-Version-libMesaOpenCL-like-autotools-does.patch
0004-loader_dri3-Variant-2-Wait-for-pending-swaps-to-comp.patch
"atomic.patch::https://cgit.freedesktop.org/mesa/mesa/patch/?id=498faea103aa7966b435f21d8ff5e36172389b1e")
sha512sums=('decd050bab049d17bcde3f832d4da0ffdb80f147c99377a162739bbe72fd6fd32b51e56e6fc66895b8c30fc19a1815bae164b21aa557816c3998ad18c1ffca2d'
'SKIP'
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7'
'75849eca72ca9d01c648d5ea4f6371f1b8737ca35b14be179e14c73cc51dca0739c333343cdc228a6d464135f4791bcdc21734e2debecd29d57023c8c088b028'
'19b980db37675732d28978318074ca172ef862de7fdcae2c82ef16dc411c709c8598b044a828e7e260d86d23f644485abcc6a0aaf5e04b9c05dce22d0c7e3716'
'0f5da6e48885713c7ddef9e5715e178e0a499bcb622d7f19e15b9e4b4647331d7bf14829218b6ab80f17bae90fd95b8df6a0a81203d8081686805ca5329531ff'
'd3c01f61a0a0cc2f01e66e0126ad8b6386d4a53c1dc1b3b134800e4cd25507e458bac860cbed10cf4b46b04e8d50aba233870587b89c058fffd57436b48289bf'
'2f40198eff47664c831c56e8a63f60a4d1b815cf697e6bdb0be39e6d9c5df043857f6264b7cd2ccf46c07626186c565144e80f4214b5f7936ef7024c47201437'
'c3f3baf8a5f480ce64b321c031e31c0d5819732ca34647ac545d0fd7fafa40ad4dcf1e1ec8d574754e0a44bf0cdc462ed8709c8d9b58a17e01c6ba5b4c5e91c6'
'a2062f8a5259aabed1aa20df6a8510f0f3e914cb6bba72751249b3295285596bb7615063a7a7b7870f9f4489d0e6b774f0bced2bdde49a1aa9df6a44976462d1'
'572901a1e9cacfacfc8c4cc3cd077a626d4aeda8c8a58f6085bae827cba8a2d4d99af1dafbb5a9296b6ebf3120e2b05a084fe1c96093074befe62597319384a1'
'75cd21bccc84a6b6b0de39c6d209c8bee0e5143b486433184ca078e8bc6797d30746be3ce5f7a89eea9bc3c7e2d68880412511fd6b9946252c7c7638523c6caa')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
@ -41,16 +41,17 @@ prepare() {
# glvnd support patches - from Fedora
# non-upstreamed ones
patch -Np1 -i ../0001-glvnd-fix-gl-dot-pc.patch
# experimental patch, should fix FS#58549
# see https://bugs.freedesktop.org/show_bug.cgi?id=106351
# and https://patchwork.freedesktop.org/series/42687/
patch -Np1 -i ../0002-loader_dri3-Wait-for-pending-swaps-to-complete-before-drawable_fini.patch
patch -Np1 -i ../0001-glvnd-fix-gl.pc.patch
# Upstreamed meson fixes
patch -Np1 -i ../0004-meson-Add-library-versions-to-swr-drivers.patch
patch -Np1 -i ../0005-meson-Version-libMesaOpenCL-like-autotools-does.patch
patch -Np1 -i ../0002-meson-Add-library-versions-to-swr-drivers.patch
patch -Np1 -i ../0003-meson-Version-libMesaOpenCL-like-autotools-does.patch
# experimental patch, should fix FS#58549
# variant 2 patch should fix FS#58605
# see https://bugs.freedesktop.org/show_bug.cgi?id=106351
# and https://patchwork.freedesktop.org/series/42687/
patch -Np1 -i ../0004-loader_dri3-Variant-2-Wait-for-pending-swaps-to-comp.patch
# disk cache: Link with -latomic if necessary
patch -Np1 -i ../atomic.patch