Sync from SUSE:SLFO:Main libnvidia-egl-wayland revision a87a4a279b7e2c25c0f986a80ed1f4f4
This commit is contained in:
parent
9fbe4f448f
commit
fbd68930cd
108
0001-egl-wayland-enable-CI-with-github-actions.patch
Normal file
108
0001-egl-wayland-enable-CI-with-github-actions.patch
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
From 40e835f197178e7e4387a042acc8f1dc42f810ee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Austin Shafer <ashafer@nvidia.com>
|
||||||
|
Date: Wed, 9 Oct 2024 14:53:52 -0400
|
||||||
|
Subject: [PATCH 1/3] egl-wayland: enable CI with github actions
|
||||||
|
|
||||||
|
This enables CI for github actions builds, aimed for helping verify
|
||||||
|
new pull requests. This adds tests for the meson and autotools builds
|
||||||
|
on ubuntu 24.04. Other distros are apparently not supported by default
|
||||||
|
so we aren't able to expand testing this way.
|
||||||
|
---
|
||||||
|
.github/workflows/arch-build.yml | 16 ++++++++++++++++
|
||||||
|
.github/workflows/autoconf-build.yml | 14 ++++++++++++++
|
||||||
|
.github/workflows/meson-build.yml | 14 ++++++++++++++
|
||||||
|
.github/workflows/meson-llvm-build.yml | 17 +++++++++++++++++
|
||||||
|
4 files changed, 61 insertions(+)
|
||||||
|
create mode 100644 .github/workflows/arch-build.yml
|
||||||
|
create mode 100644 .github/workflows/autoconf-build.yml
|
||||||
|
create mode 100644 .github/workflows/meson-build.yml
|
||||||
|
create mode 100644 .github/workflows/meson-llvm-build.yml
|
||||||
|
|
||||||
|
diff --git a/.github/workflows/arch-build.yml b/.github/workflows/arch-build.yml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..3f56616
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/.github/workflows/arch-build.yml
|
||||||
|
@@ -0,0 +1,16 @@
|
||||||
|
+name: Arch Build
|
||||||
|
+on: [push, pull_request]
|
||||||
|
+jobs:
|
||||||
|
+ Meson-Build:
|
||||||
|
+ runs-on: ubuntu-24.04
|
||||||
|
+ container:
|
||||||
|
+ image: archlinux:latest
|
||||||
|
+ steps:
|
||||||
|
+ - uses: actions/checkout@v4
|
||||||
|
+ - run: pacman --noconfirm -Syy
|
||||||
|
+ - run: pacman --noconfirm -S wayland-protocols libdrm libglvnd pkgconf
|
||||||
|
+ - run: pacman --noconfirm -S wayland eglexternalplatform
|
||||||
|
+ - run: pacman --noconfirm -S meson ninja gcc
|
||||||
|
+ - run: meson build
|
||||||
|
+ - run: ninja -C build
|
||||||
|
+ - run: ninja -C build install
|
||||||
|
diff --git a/.github/workflows/autoconf-build.yml b/.github/workflows/autoconf-build.yml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c52ed92
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/.github/workflows/autoconf-build.yml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+name: Autotools GCC Build
|
||||||
|
+on: [push, pull_request]
|
||||||
|
+jobs:
|
||||||
|
+ Meson-Build:
|
||||||
|
+ runs-on: ubuntu-24.04
|
||||||
|
+ steps:
|
||||||
|
+ - uses: actions/checkout@v4
|
||||||
|
+ - run: sudo apt update
|
||||||
|
+ - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev
|
||||||
|
+ - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev
|
||||||
|
+ - run: sudo apt install -y meson ninja-build gcc
|
||||||
|
+ - run: ./autogen.sh
|
||||||
|
+ - run: make
|
||||||
|
+ - run: sudo make install
|
||||||
|
diff --git a/.github/workflows/meson-build.yml b/.github/workflows/meson-build.yml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..ca070d6
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/.github/workflows/meson-build.yml
|
||||||
|
@@ -0,0 +1,14 @@
|
||||||
|
+name: Meson GCC Build
|
||||||
|
+on: [push, pull_request]
|
||||||
|
+jobs:
|
||||||
|
+ Meson-Build:
|
||||||
|
+ runs-on: ubuntu-24.04
|
||||||
|
+ steps:
|
||||||
|
+ - uses: actions/checkout@v4
|
||||||
|
+ - run: sudo apt update
|
||||||
|
+ - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev
|
||||||
|
+ - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev
|
||||||
|
+ - run: sudo apt install -y meson ninja-build gcc
|
||||||
|
+ - run: meson build
|
||||||
|
+ - run: ninja -C build
|
||||||
|
+ - run: sudo ninja -C build install
|
||||||
|
diff --git a/.github/workflows/meson-llvm-build.yml b/.github/workflows/meson-llvm-build.yml
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..83a8dbe
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/.github/workflows/meson-llvm-build.yml
|
||||||
|
@@ -0,0 +1,17 @@
|
||||||
|
+name: Meson LLVM Build
|
||||||
|
+on: [push, pull_request]
|
||||||
|
+jobs:
|
||||||
|
+ Meson-Build:
|
||||||
|
+ runs-on: ubuntu-24.04
|
||||||
|
+ steps:
|
||||||
|
+ - uses: actions/checkout@v4
|
||||||
|
+ - run: sudo apt update
|
||||||
|
+ - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev
|
||||||
|
+ - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev
|
||||||
|
+ - run: sudo apt install -y meson ninja-build clang
|
||||||
|
+ - name: meson build
|
||||||
|
+ run: meson build
|
||||||
|
+ env:
|
||||||
|
+ CC: clang
|
||||||
|
+ - run: ninja -C build
|
||||||
|
+ - run: sudo ninja -C build install
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
From 0cd471dcfd46e6cb8b71eceddb20cc02eadabf61 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robin Ebert <ebertrobin2002@gmail.com>
|
||||||
|
Date: Tue, 15 Oct 2024 16:26:05 +0200
|
||||||
|
Subject: [PATCH 2/3] egl-wayland: Fix use after free in library teardown
|
||||||
|
|
||||||
|
---
|
||||||
|
src/wayland-egldisplay.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c
|
||||||
|
index 7089271..edd79c4 100644
|
||||||
|
--- a/src/wayland-egldisplay.c
|
||||||
|
+++ b/src/wayland-egldisplay.c
|
||||||
|
@@ -729,10 +729,10 @@ static EGLBoolean terminateDisplay(WlEglDisplay *display, EGLBoolean globalTeard
|
||||||
|
* destroy the display connection itself */
|
||||||
|
wlEglDestroyAllSurfaces(display);
|
||||||
|
|
||||||
|
- wlEglDestroyFormatSet(&display->formatSet);
|
||||||
|
- wlEglDestroyFeedback(&display->defaultFeedback);
|
||||||
|
-
|
||||||
|
if (!globalTeardown || display->ownNativeDpy) {
|
||||||
|
+ wlEglDestroyFormatSet(&display->formatSet);
|
||||||
|
+ wlEglDestroyFeedback(&display->defaultFeedback);
|
||||||
|
+
|
||||||
|
if (display->wlRegistry) {
|
||||||
|
wl_registry_destroy(display->wlRegistry);
|
||||||
|
display->wlRegistry = NULL;
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 218f67846472c9310355210ee9a7e1fabed95062 Mon Sep 17 00:00:00 2001
|
||||||
|
From: shiningdracon <shiningdracon@gmail.com>
|
||||||
|
Date: Sun, 8 Sep 2024 19:34:26 -0700
|
||||||
|
Subject: [PATCH 3/3] egl-wayland: Handle failure to acquire image in
|
||||||
|
wlEglSendDamageEvent
|
||||||
|
|
||||||
|
The image parameter of send_explicit_sync_points is assumed not to be
|
||||||
|
null, however this is a case the rest of the code handles. This causes
|
||||||
|
sporadic problems on KDE when running overnight as the image will not
|
||||||
|
be valid at some point, causing us to crash.
|
||||||
|
|
||||||
|
Fixes #143
|
||||||
|
---
|
||||||
|
src/wayland-eglsurface.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c
|
||||||
|
index 4e4dcff..ae6cafc 100644
|
||||||
|
--- a/src/wayland-eglsurface.c
|
||||||
|
+++ b/src/wayland-eglsurface.c
|
||||||
|
@@ -265,11 +265,13 @@ wlEglSendDamageEvent(WlEglSurface *surface,
|
||||||
|
}
|
||||||
|
|
||||||
|
image = pop_acquired_image(surface);
|
||||||
|
- if (image) {
|
||||||
|
- surface->ctx.currentBuffer = image->buffer;
|
||||||
|
- image->attached = EGL_TRUE;
|
||||||
|
+ if (!image) {
|
||||||
|
+ return EGL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ surface->ctx.currentBuffer = image->buffer;
|
||||||
|
+ image->attached = EGL_TRUE;
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Send our explicit sync acquire and release points. This needs to be done
|
||||||
|
* as part of the surface attach as it is a protocol error to specify these
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 6 15:53:40 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
- 0001-egl-wayland-enable-CI-with-github-actions.patch
|
||||||
|
0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch
|
||||||
|
0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch
|
||||||
|
* apply latest fixes from git (jsc#PED-11284)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 7 13:40:16 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
Mon Oct 7 13:40:16 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
|
||||||
|
|
||||||
|
@ -37,6 +37,9 @@ Patch6: 0006-egl-wayland-Accept-device-name-from-either-wl_drm-or.patch
|
|||||||
Patch7: 0007-egl-wayland-fix-device-name-case-where-only-wl_drm-e.patch
|
Patch7: 0007-egl-wayland-fix-device-name-case-where-only-wl_drm-e.patch
|
||||||
Patch8: 0008-Add-ICD-json-file.patch
|
Patch8: 0008-Add-ICD-json-file.patch
|
||||||
Patch9: 0009-egl-wayland-Fix-roundtrip-eating-wl_drm-events-in-ge.patch
|
Patch9: 0009-egl-wayland-Fix-roundtrip-eating-wl_drm-events-in-ge.patch
|
||||||
|
Patch11: 0001-egl-wayland-enable-CI-with-github-actions.patch
|
||||||
|
Patch12: 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch
|
||||||
|
Patch13: 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: meson >= 0.50
|
BuildRequires: meson >= 0.50
|
||||||
BuildRequires: ninja
|
BuildRequires: ninja
|
||||||
|
Loading…
Reference in New Issue
Block a user