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>
|
||||
|
||||
|
@ -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
|
||||
Patch8: 0008-Add-ICD-json-file.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: meson >= 0.50
|
||||
BuildRequires: ninja
|
||||
|
Loading…
Reference in New Issue
Block a user