Sync from SUSE:SLFO:Main libnvidia-egl-wayland revision fb1700f342fc48a469a27317d73aa087

This commit is contained in:
Adrian Schröter 2024-10-29 09:34:56 +01:00
parent 42d78ccddb
commit 9fbe4f448f
13 changed files with 543 additions and 5 deletions

View File

@ -0,0 +1,54 @@
From 2d31baa7831166fd27a2fc01ecc684613046bb28 Mon Sep 17 00:00:00 2001
From: Austin Shafer <ashafer@badland.io>
Date: Fri, 23 Aug 2024 10:12:10 -0400
Subject: [PATCH 1/9] egl-wayland bump version to 1.1.17
We are changing the release process and bumping versions immediately
after a release tag is made, that way versions installed from the
latest git master will always have the "next" version.
---
configure.ac | 2 +-
include/wayland-external-exports.h | 2 +-
meson.build | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 75489a5..36594a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ([2.64])
m4_define([wayland_eglstream_major_version], [1])
m4_define([wayland_eglstream_minor_version], [1])
-m4_define([wayland_eglstream_micro_version], [16])
+m4_define([wayland_eglstream_micro_version], [17])
m4_define([wayland_eglstream_version],
[wayland_eglstream_major_version.wayland_eglstream_minor_version.wayland_eglstream_micro_version])
diff --git a/include/wayland-external-exports.h b/include/wayland-external-exports.h
index 43579c9..2993dea 100644
--- a/include/wayland-external-exports.h
+++ b/include/wayland-external-exports.h
@@ -53,7 +53,7 @@
#define WAYLAND_EXTERNAL_VERSION_MINOR 0
#endif
-#define WAYLAND_EXTERNAL_VERSION_MICRO 16
+#define WAYLAND_EXTERNAL_VERSION_MICRO 17
#define EGL_EXTERNAL_PLATFORM_VERSION_MAJOR WAYLAND_EXTERNAL_VERSION_MAJOR
diff --git a/meson.build b/meson.build
index 4d9bd1a..b3700fa 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('wayland-eglstream', 'c',
- version : '1.1.16',
+ version : '1.1.17',
default_options : [
'buildtype=debugoptimized',
'c_std=gnu99',
--
2.43.0

View File

@ -0,0 +1,29 @@
From 7c18d91d3605785b0d5a821b067cda5d61b2710f Mon Sep 17 00:00:00 2001
From: Kyle Brenneman <kbrenneman@nvidia.com>
Date: Mon, 26 Aug 2024 09:16:20 -0600
Subject: [PATCH 2/9] Fix the include path for drm_fourcc.h.
Remove the leading "libdrm/" when including drm_fourcc.h.
We shouldn't hard-code a path like that -- using pkg-config should add
the appropriate include path.
---
src/wayland-eglsurface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c
index da08fb2..1b8ff77 100644
--- a/src/wayland-eglsurface.c
+++ b/src/wayland-eglsurface.c
@@ -41,7 +41,7 @@
#include <fcntl.h>
#include <poll.h>
#include <errno.h>
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
#include <sys/stat.h>
#include <xf86drm.h>
#include <stdio.h>
--
2.43.0

View File

@ -0,0 +1,30 @@
From 80ecf7edc4659c580fcd9d752b57bf23ef7399c0 Mon Sep 17 00:00:00 2001
From: Kyle Brenneman <kbrenneman@nvidia.com>
Date: Mon, 26 Aug 2024 09:19:15 -0600
Subject: [PATCH 3/9] Fix a declaration after code.
In wayland-egldisplay.c, move a declaration to the top of the function.
Older versions of C don't allow mixing declarations and code.
---
src/wayland-egldisplay.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c
index 4d25cd7..468b32d 100644
--- a/src/wayland-egldisplay.c
+++ b/src/wayland-egldisplay.c
@@ -568,9 +568,10 @@ static void
dmabuf_feedback_check_done(void *data, struct zwp_linux_dmabuf_feedback_v1 *dmabuf_feedback)
{
WlServerProtocols *protocols = (WlServerProtocols *)data;
+ drmDevice *drm_device;
+
(void) dmabuf_feedback;
- drmDevice *drm_device;
assert(getDeviceFromDevId);
if (getDeviceFromDevId(protocols->devId, 0, &drm_device) == 0) {
if (drm_device->available_nodes & (1 << DRM_NODE_RENDER)) {
--
2.43.0

View File

@ -0,0 +1,115 @@
From 8dbdd61b7c07e23bc5b8913fe3d52f32995be98a Mon Sep 17 00:00:00 2001
From: Christian Hergert <chergert@redhat.com>
Date: Fri, 23 Aug 2024 19:10:27 +0200
Subject: [PATCH 4/9] egl-swap: provide damage rectangles to wl_surface
Previously, wlEglSendDamageEvent used the entire surface as damage to
the compositor but in the wrong coordinate system. wl_surface_damage()
requires coordinates for the surface which could be scaled while
wl_surface_damage_buffer() expects buffer coordinates which is what
surface->width and surface->height represent.
This ensures that the parameters to eglSwapBuffersWithDamage() are passed
along to the compositor as well. The coordinate system is flipped between
eglSwapBuffersWithDamage() and wl_surface_damage_buffer() which is handled
as well.
Signed-off-by: Christian Hergert <chergert@redhat.com>
---
include/wayland-eglsurface-internal.h | 4 +++-
src/wayland-eglsurface.c | 25 +++++++++++++++++++++----
src/wayland-eglswap.c | 4 ++--
3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/include/wayland-eglsurface-internal.h b/include/wayland-eglsurface-internal.h
index dfc5fd4..b70b9d3 100644
--- a/include/wayland-eglsurface-internal.h
+++ b/include/wayland-eglsurface-internal.h
@@ -206,7 +206,9 @@ EGLBoolean
wlEglSurfaceCheckReleasePoints(WlEglDisplay *display, WlEglSurface *surface);
EGLBoolean wlEglSendDamageEvent(WlEglSurface *surface,
- struct wl_event_queue *queue);
+ struct wl_event_queue *queue,
+ EGLint *rects,
+ EGLint n_rects);
void wlEglCreateFrameSync(WlEglSurface *surface);
EGLint wlEglWaitFrameSync(WlEglSurface *surface);
diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c
index da08fb2..1f01616 100644
--- a/src/wayland-eglsurface.c
+++ b/src/wayland-eglsurface.c
@@ -242,9 +242,13 @@ send_explicit_sync_points (WlEglDisplay *display, WlEglSurface *surface,
}
EGLBoolean
-wlEglSendDamageEvent(WlEglSurface *surface, struct wl_event_queue *queue)
+wlEglSendDamageEvent(WlEglSurface *surface,
+ struct wl_event_queue *queue,
+ EGLint *rects,
+ EGLint n_rects)
{
struct wl_display *wlDpy = surface->wlEglDpy->nativeDpy;
+ EGLint i;
if (surface->ctx.wlStreamResource) {
/* Attach same buffer to indicate new content for the surface is
@@ -286,8 +290,21 @@ wlEglSendDamageEvent(WlEglSurface *surface, struct wl_event_queue *queue)
surface->dy);
}
- wl_surface_damage(surface->wlSurface, 0, 0,
- surface->width, surface->height);
+ if (n_rects > 0 &&
+ (wl_proxy_get_version((struct wl_proxy *)surface->wlSurface) >=
+ WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION)) {
+ for (i = 0; i < n_rects; i++) {
+ const EGLint *rect = &rects[i * 4];
+ // Coordinate systems are flipped between eglSwapBuffersWithDamage
+ // and wl_surface_damage_buffer, so invert Y values.
+ int inv_y = surface->height - (rect[1] + rect[3]);
+ wl_surface_damage_buffer(surface->wlSurface, rect[0], inv_y, rect[2], rect[3]);
+ }
+ } else {
+ wl_surface_damage(surface->wlSurface, 0, 0, UINT32_MAX, UINT32_MAX);
+ }
+
+
wl_surface_commit(surface->wlSurface);
surface->ctx.isAttached = EGL_TRUE;
@@ -357,7 +374,7 @@ damage_thread(void *args)
wlEglCreateFrameSync(surface);
- ok = wlEglSendDamageEvent(surface, queue);
+ ok = wlEglSendDamageEvent(surface, queue, NULL, 0);
surface->ctx.framesProcessed++;
pthread_cond_signal(&surface->condFrameSync);
diff --git a/src/wayland-eglswap.c b/src/wayland-eglswap.c
index bf1157d..ea99f49 100644
--- a/src/wayland-eglswap.c
+++ b/src/wayland-eglswap.c
@@ -147,7 +147,7 @@ EGLBoolean wlEglSwapBuffersWithDamageHook(EGLDisplay eglDisplay, EGLSurface eglS
surface->ctx.framesProduced++;
} else {
wlEglCreateFrameSync(surface);
- res = wlEglSendDamageEvent(surface, surface->wlEventQueue);
+ res = wlEglSendDamageEvent(surface, surface->wlEventQueue, rects, n_rects);
wlEglSurfaceCheckReleasePoints(display, surface);
}
}
@@ -434,7 +434,7 @@ EGLBoolean wlEglPostPresentExport2(WlEglSurface *surface,
surface->ctx.framesProduced++;
} else {
wlEglCreateFrameSync(surface);
- res = wlEglSendDamageEvent(surface, surface->wlEventQueue);
+ res = wlEglSendDamageEvent(surface, surface->wlEventQueue, NULL, 0);
}
// Release wlEglSurface lock.
--
2.43.0

View File

@ -0,0 +1,27 @@
From febf851acc9c6a9a067ec001104533777adb5572 Mon Sep 17 00:00:00 2001
From: Kyle Brenneman <kbrenneman@nvidia.com>
Date: Tue, 27 Aug 2024 08:17:20 -0600
Subject: [PATCH 5/9] Use INT32_MAX for wl_surface_damage
The wl_surface_damage request takes signed integer parameters, so
sending UINT32_MAX would be received as -1. Instead, send INT32_MAX.
---
src/wayland-eglsurface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c
index c2e3fdc..4e4dcff 100644
--- a/src/wayland-eglsurface.c
+++ b/src/wayland-eglsurface.c
@@ -301,7 +301,7 @@ wlEglSendDamageEvent(WlEglSurface *surface,
wl_surface_damage_buffer(surface->wlSurface, rect[0], inv_y, rect[2], rect[3]);
}
} else {
- wl_surface_damage(surface->wlSurface, 0, 0, UINT32_MAX, UINT32_MAX);
+ wl_surface_damage(surface->wlSurface, 0, 0, INT32_MAX, INT32_MAX);
}
--
2.43.0

View File

@ -0,0 +1,60 @@
From 6355c1605a0b0ccfdc1963170c5564b291ad0eb0 Mon Sep 17 00:00:00 2001
From: Austin Shafer <ashafer@badland.io>
Date: Fri, 6 Sep 2024 14:06:32 -0400
Subject: [PATCH 6/9] egl-wayland: Accept device name from either wl_drm or
linux_dmabuf
Commit 11386cc allowed for listening for the DRM device using the
dmabuf protocol instead of wl_drm, when possible. Unfortunately some
headless compositors (kwin) do not properly send the device id through
dmabuf, even though they send the device path properly through wl_drm.
This change relaxes our check to ensure that one of the protocols sends
the information so that we can use it to verify compositor support.
---
src/wayland-egldisplay.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c
index 468b32d..0128dbd 100644
--- a/src/wayland-egldisplay.c
+++ b/src/wayland-egldisplay.c
@@ -485,6 +485,7 @@ static void wl_drm_device(void *data, struct wl_drm *wl_drm, const char *name)
WlServerProtocols *protocols = (WlServerProtocols *)data;
(void) wl_drm;
+ free(protocols->drm_name);
protocols->drm_name = strdup(name);
}
@@ -575,6 +576,7 @@ dmabuf_feedback_check_done(void *data, struct zwp_linux_dmabuf_feedback_v1 *dmab
assert(getDeviceFromDevId);
if (getDeviceFromDevId(protocols->devId, 0, &drm_device) == 0) {
if (drm_device->available_nodes & (1 << DRM_NODE_RENDER)) {
+ free(protocols->drm_name);
protocols->drm_name = strdup(drm_device->nodes[DRM_NODE_RENDER]);
}
@@ -632,6 +634,7 @@ registry_handle_global_check_protocols(
if ((strcmp(interface, "wl_drm") == 0) && (version >= 2)) {
protocols->wlDrm = wl_registry_bind(registry, name, &wl_drm_interface, 2);
+ wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
}
}
@@ -828,10 +831,9 @@ static bool getServerProtocolsInfo(struct wl_display *nativeDpy,
wl_display_roundtrip_queue(nativeDpy, queue);
zwp_linux_dmabuf_feedback_v1_destroy(default_feedback);
}
- } else if (protocols->wlDrm) {
- wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
- wl_display_roundtrip_queue(nativeDpy, queue);
}
+
+ /* Check that one of our two protocols provided the device name */
result = protocols->drm_name != NULL;
if (protocols->wlDmaBuf) {
--
2.43.0

View File

@ -0,0 +1,43 @@
From 845568c64b69b462918ed89760abb21039e55368 Mon Sep 17 00:00:00 2001
From: Austin Shafer <ashafer@badland.io>
Date: Tue, 17 Sep 2024 10:39:26 -0400
Subject: [PATCH 7/9] egl-wayland: fix device name case where only wl_drm
exists
This fixes a problem in commit 6355c16 where we do not properly wait
for a roundtrip to get the wl_drm name, which can lead to failing to
initialize and falling back to another ICD. This fix also properly
prioritizes the device provided by dmabuf feedback over the wl_drm
name, only using wl_drm if dmabuf did not provide anything.
---
src/wayland-egldisplay.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c
index 0128dbd..3921ede 100644
--- a/src/wayland-egldisplay.c
+++ b/src/wayland-egldisplay.c
@@ -634,7 +634,6 @@ registry_handle_global_check_protocols(
if ((strcmp(interface, "wl_drm") == 0) && (version >= 2)) {
protocols->wlDrm = wl_registry_bind(registry, name, &wl_drm_interface, 2);
- wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
}
}
@@ -833,6 +832,12 @@ static bool getServerProtocolsInfo(struct wl_display *nativeDpy,
}
}
+ /* If we didn't get a name through linux_dmabuf then fall back to wl_drm */
+ if (!protocols->drm_name && protocols->wlDrm) {
+ wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
+ wl_display_roundtrip_queue(nativeDpy, queue);
+ }
+
/* Check that one of our two protocols provided the device name */
result = protocols->drm_name != NULL;
--
2.43.0

View File

@ -0,0 +1,37 @@
From 954e094faacdacad6d82905d2f0a674c3e37fbec Mon Sep 17 00:00:00 2001
From: Simone Caronni <scaronni@nvidia.com>
Date: Thu, 19 Sep 2024 16:00:09 +0200
Subject: [PATCH 8/9] Add ICD json file
---
src/10_nvidia_wayland.json | 6 ++++++
src/meson.build | 3 +++
2 files changed, 9 insertions(+)
create mode 100644 src/10_nvidia_wayland.json
diff --git a/src/10_nvidia_wayland.json b/src/10_nvidia_wayland.json
new file mode 100644
index 0000000..c08a641
--- /dev/null
+++ b/src/10_nvidia_wayland.json
@@ -0,0 +1,6 @@
+{
+ "file_format_version" : "1.0.0",
+ "ICD" : {
+ "library_path" : "libnvidia-egl-wayland.so.1"
+ }
+}
diff --git a/src/meson.build b/src/meson.build
index 704632b..1f1ca34 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -86,3 +86,6 @@ egl_wayland = library('nvidia-egl-wayland',
version : meson.project_version(),
install : true,
)
+
+install_data('10_nvidia_wayland.json',
+ install_dir: '@0@/egl/egl_external_platform.d'.format(get_option('datadir')))
--
2.43.0

View File

@ -0,0 +1,64 @@
From c10c5300483a8ec975e64e5d76c0fb00ac94e026 Mon Sep 17 00:00:00 2001
From: Austin Shafer <ashafer@badland.io>
Date: Thu, 19 Sep 2024 09:35:47 -0400
Subject: [PATCH 9/9] egl-wayland: Fix roundtrip eating wl_drm events in
getServerProtocolsInfo
This resolves another issue where the wl_drm events sent by the
compositor are silently dropped by a roundtrip that happens before
the wl_drm listener is registered. This change immediately registers
wl_drm and triggers its roundtrip first. The dmabuf feedback can
then proceed, potentially replacing the wl_drm name if a valid device
was provided.
---
src/wayland-egldisplay.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c
index 3921ede..7089271 100644
--- a/src/wayland-egldisplay.c
+++ b/src/wayland-egldisplay.c
@@ -634,6 +634,7 @@ registry_handle_global_check_protocols(
if ((strcmp(interface, "wl_drm") == 0) && (version >= 2)) {
protocols->wlDrm = wl_registry_bind(registry, name, &wl_drm_interface, 2);
+ wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
}
}
@@ -817,11 +818,19 @@ static bool getServerProtocolsInfo(struct wl_display *nativeDpy,
protocols);
if (ret == 0) {
wl_display_roundtrip_queue(nativeDpy, queue);
+ /* use a second roundtrip to handle any wl_drm events triggered by binding the protocol */
+ wl_display_roundtrip_queue(nativeDpy, queue);
+
if (!getDeviceFromDevIdInitialised) {
getDeviceFromDevId = dlsym(RTLD_DEFAULT, "drmGetDeviceFromDevId");
getDeviceFromDevIdInitialised = true;
}
+ /*
+ * if dmabuf feedback is available then use that. This will potentially
+ * replace the drm_name provided by wl_drm, assuming the feedback provides
+ * a valid dev_t.
+ */
if (protocols->wlDmaBuf && getDeviceFromDevId) {
struct zwp_linux_dmabuf_feedback_v1 *default_feedback
= zwp_linux_dmabuf_v1_get_default_feedback(protocols->wlDmaBuf);
@@ -832,12 +841,6 @@ static bool getServerProtocolsInfo(struct wl_display *nativeDpy,
}
}
- /* If we didn't get a name through linux_dmabuf then fall back to wl_drm */
- if (!protocols->drm_name && protocols->wlDrm) {
- wl_drm_add_listener(protocols->wlDrm, &drmListener, protocols);
- wl_display_roundtrip_queue(nativeDpy, queue);
- }
-
/* Check that one of our two protocols provided the device name */
result = protocols->drm_name != NULL;
--
2.43.0

BIN
egl-wayland-1.1.11.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
egl-wayland-1.1.16.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,70 @@
-------------------------------------------------------------------
Mon Oct 7 13:40:16 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- 0001-egl-wayland-bump-version-to-1.1.17.patch
0002-Fix-the-include-path-for-drm_fourcc.h.patch
0003-Fix-a-declaration-after-code.patch
0004-egl-swap-provide-damage-rectangles-to-wl_surface.patch
0005-Use-INT32_MAX-for-wl_surface_damage.patch
0006-egl-wayland-Accept-device-name-from-either-wl_drm-or.patch
0007-egl-wayland-fix-device-name-case-where-only-wl_drm-e.patch
0008-Add-ICD-json-file.patch
0009-egl-wayland-Fix-roundtrip-eating-wl_drm-events-in-ge.patch
* apply latest fixes including adding ICD json file; related:
https://github.com/openSUSE/nvidia-driver-G06/issues/26
-------------------------------------------------------------------
Thu Aug 22 20:33:25 UTC 2024 - RN <R_Nik_C@proton.me>
- update to version 1.1.16:
* Fix a crash due to an assertion firing during surface
destruction, which affected Qt6 webengine
* Add an explicit dependency on the EGL headers
-------------------------------------------------------------------
Sat Aug 10 13:56:34 UTC 2024 - RN <R_Nik_C@proton.me>
- update to version 1.1.15:
* Significant stability fixes for explicit sync which prevents
crashes with Firefox/moonlight/more
* Added the `__NV_DISABLE_EXPLICIT_SYNC` environment variable.
Specifying `__NV_DISABLE_EXPLICIT_SYNC=1` disables the use of
the linux-drm-syncobj-v1 protocol
* Fix an issue causing KDE crashes, which also caused excessive
VRAM usage when resizing
* Fix race condition in damage_thread
-------------------------------------------------------------------
Fri Jul 19 23:00:40 UTC 2024 - RN <R_Nik_C@proton.me>
- update to version 1.1.14:
* Implement Explicit Sync (linux-drm-syncobj-v1)
* Fix freezing on KDE when explicit sync is enabled under certain
conditions
* Read compositor device from zwp_linux_dmabuf_v1 when available
* Properly validate and use the passed value of
EGL_EXT_present_opaque
-------------------------------------------------------------------
Sun Nov 12 18:57:54 UTC 2023 - Florian "spirit" <packaging@sp1rit.anonaddy.me>
- update to version 1.1.13:
* Fixed a bug where PRIME render-offload was not working with KDE
* Fixed some more warnings from libwayland-client.so when closing
applications
* Fixed a bug that was causing intermittent segfaults in
wlEglDestroyFormatSet (notably affecting Firefox)
* Avoid unnecessarily calling eglQueryDeviceEXT during application
start-up on PRIME systems. This was both slow and would turn on
the dGPU wasting power.
-------------------------------------------------------------------
Sat Jun 10 00:14:24 UTC 2023 - Nicola Pellegrini <xbb.7khj8@8shield.net>
- update to version 1.1.12
* Added support for version 4 of the Linux DMA-BUF protocol
* Added support for EGL_EXT_explicit_device extension
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Nov 4 19:38:35 UTC 2022 - Stefan Dirsch <sndirsch@suse.com> Fri Nov 4 19:38:35 UTC 2022 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package libnvidia-egl-wayland # spec file for package libnvidia-egl-wayland
# #
# Copyright (c) 2022 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -20,7 +20,7 @@
%define lname libnvidia-egl-wayland%{so_ver} %define lname libnvidia-egl-wayland%{so_ver}
%define rname egl-wayland %define rname egl-wayland
Name: libnvidia-egl-wayland Name: libnvidia-egl-wayland
Version: 1.1.11 Version: 1.1.16
Release: 0 Release: 0
Summary: The EGLStream-based Wayland external platform Summary: The EGLStream-based Wayland external platform
License: MIT License: MIT
@ -28,6 +28,15 @@ Group: Development/Libraries/C and C++
URL: https://github.com/NVIDIA/egl-wayland URL: https://github.com/NVIDIA/egl-wayland
Source0: https://github.com/NVIDIA/egl-wayland/archive/%{version}/%{rname}-%{version}.tar.gz Source0: https://github.com/NVIDIA/egl-wayland/archive/%{version}/%{rname}-%{version}.tar.gz
Source1: baselibs.conf Source1: baselibs.conf
Patch1: 0001-egl-wayland-bump-version-to-1.1.17.patch
Patch2: 0002-Fix-the-include-path-for-drm_fourcc.h.patch
Patch3: 0003-Fix-a-declaration-after-code.patch
Patch4: 0004-egl-swap-provide-damage-rectangles-to-wl_surface.patch
Patch5: 0005-Use-INT32_MAX-for-wl_surface_damage.patch
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
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: meson >= 0.50 BuildRequires: meson >= 0.50
BuildRequires: ninja BuildRequires: ninja
@ -94,6 +103,9 @@ export LDFLAGS="-Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro %{?_lto_cflags}"
%doc README.md %doc README.md
%{_libdir}/libnvidia-egl-wayland.so.%{so_ver}* %{_libdir}/libnvidia-egl-wayland.so.%{so_ver}*
%{_datadir}/wayland-eglstream/ %{_datadir}/wayland-eglstream/
%dir %{_datadir}/egl
%dir %{_datadir}/egl/egl_external_platform.d
%{_datadir}/egl/egl_external_platform.d/10_nvidia_wayland.json
%files -n libnvidia-egl-wayland-devel %files -n libnvidia-egl-wayland-devel
%license COPYING %license COPYING