Update to 23.1.2 & Updated patches & fix rendering on nvidia
This commit is contained in:
parent
3ac15b049d
commit
88fb26bde8
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -1,4 +1,4 @@
|
|||||||
xwayland (2:23.1.1-99pika1.lunar) lunar; urgency=medium
|
xwayland (2:23.1.2-99pika1.lunar) lunar; urgency=medium
|
||||||
|
|
||||||
* Update to lunar
|
* Update to lunar
|
||||||
|
|
||||||
|
1
debian/control
vendored
1
debian/control
vendored
@ -36,6 +36,7 @@ Depends:
|
|||||||
xserver-common,
|
xserver-common,
|
||||||
${shlibs:Depends},
|
${shlibs:Depends},
|
||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
|
libnvidia-egl-wayland1,
|
||||||
Description: X server for running X clients under Wayland
|
Description: X server for running X clients under Wayland
|
||||||
This package provides an X server running on top of wayland, using wayland
|
This package provides an X server running on top of wayland, using wayland
|
||||||
input devices for input and forwarding either the root window or individual
|
input devices for input and forwarding either the root window or individual
|
||||||
|
1006
debian/patches/0001-xwayland-patch-fix-vsync.patch
vendored
1006
debian/patches/0001-xwayland-patch-fix-vsync.patch
vendored
File diff suppressed because it is too large
Load Diff
3
debian/patches/series
vendored
3
debian/patches/series
vendored
@ -1,3 +1,2 @@
|
|||||||
#xwayland-Detect-gbm_bo_get_fd_for_plane-at-runtime.patch
|
|
||||||
0001-xwayland-patch-fix-vsync.patch
|
0001-xwayland-patch-fix-vsync.patch
|
||||||
|
xwayland-cursor-wrap-fix.patch
|
||||||
|
@ -1,129 +0,0 @@
|
|||||||
Description: xwayland: Detect gbm_bo_get_fd_for_plane at runtime
|
|
||||||
`gbm_bo_get_fd_for_plane` was introduced in Mesa 21 but some
|
|
||||||
proprietary GBM implementations (Xilinx) still haven't been updated
|
|
||||||
to support it:
|
|
||||||
```
|
|
||||||
/usr/bin/Xwayland: symbol lookup error: /usr/bin/Xwayland: undefined symbol: gbm_bo_get_fd_for_plane
|
|
||||||
```
|
|
||||||
.
|
|
||||||
Since distros would like to build a single Xwayland binary for all
|
|
||||||
OEMs of the same architecture, we now make the function always
|
|
||||||
available.
|
|
||||||
.
|
|
||||||
If a real implementation of `gbm_bo_get_fd_for_plane` exists at runtime
|
|
||||||
then it will be used, otherwise fall back to `gbm_bo_get_fd` or fail.
|
|
||||||
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
|
||||||
Origin: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/946
|
|
||||||
Bug-Ubuntu: https://launchpad.net/bugs/1987628
|
|
||||||
Forwarded: yes
|
|
||||||
Last-Update: 2022-08-25
|
|
||||||
|
|
||||||
Index: xorg/hw/xwayland/xwayland-glamor-gbm.c
|
|
||||||
===================================================================
|
|
||||||
--- xorg.orig/hw/xwayland/xwayland-glamor-gbm.c
|
|
||||||
+++ xorg/hw/xwayland/xwayland-glamor-gbm.c
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <errno.h>
|
|
||||||
+#include <dlfcn.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <xf86drm.h>
|
|
||||||
#include <drm_fourcc.h>
|
|
||||||
@@ -113,6 +114,33 @@ is_device_path_render_node (const char *
|
|
||||||
return is_render_node;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int (*real_gbm_bo_get_fd_for_plane)(struct gbm_bo *, int);
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+init_gbm_abi(void)
|
|
||||||
+{
|
|
||||||
+ if (!real_gbm_bo_get_fd_for_plane) {
|
|
||||||
+ real_gbm_bo_get_fd_for_plane = dlsym(RTLD_NEXT,
|
|
||||||
+ "gbm_bo_get_fd_for_plane");
|
|
||||||
+ if (!real_gbm_bo_get_fd_for_plane)
|
|
||||||
+ LogMessageVerb(X_WARNING, 0,
|
|
||||||
+ "gbm_bo_get_fd_for_plane is not supported natively.\n");
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+xwl_gbm_bo_get_fd_for_plane(struct gbm_bo *bo, int plane)
|
|
||||||
+{
|
|
||||||
+ if (real_gbm_bo_get_fd_for_plane)
|
|
||||||
+ return real_gbm_bo_get_fd_for_plane(bo, plane);
|
|
||||||
+
|
|
||||||
+ if (plane == 0)
|
|
||||||
+ return gbm_bo_get_fd(bo);
|
|
||||||
+
|
|
||||||
+ errno = ENOSYS;
|
|
||||||
+ return -1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static PixmapPtr
|
|
||||||
xwl_glamor_gbm_create_pixmap_for_bo(ScreenPtr screen, struct gbm_bo *bo,
|
|
||||||
int depth)
|
|
||||||
@@ -120,7 +148,6 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
|
|
||||||
PixmapPtr pixmap;
|
|
||||||
struct xwl_pixmap *xwl_pixmap;
|
|
||||||
struct xwl_screen *xwl_screen = xwl_screen_get(screen);
|
|
||||||
-#ifdef GBM_BO_FD_FOR_PLANE
|
|
||||||
struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
|
|
||||||
uint64_t modifier = gbm_bo_get_modifier(bo);
|
|
||||||
const int num_planes = gbm_bo_get_plane_count(bo);
|
|
||||||
@@ -168,7 +195,6 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
|
|
||||||
};
|
|
||||||
|
|
||||||
for (plane = 0; plane < num_planes; plane++) fds[plane] = -1;
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
xwl_pixmap = calloc(1, sizeof(*xwl_pixmap));
|
|
||||||
if (xwl_pixmap == NULL)
|
|
||||||
@@ -188,7 +214,6 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
|
|
||||||
xwl_pixmap->bo = bo;
|
|
||||||
xwl_pixmap->buffer = NULL;
|
|
||||||
|
|
||||||
-#ifdef GBM_BO_FD_FOR_PLANE
|
|
||||||
if (xwl_gbm->dmabuf_capable) {
|
|
||||||
#define ADD_ATTR(attrs, num, attr) \
|
|
||||||
do { \
|
|
||||||
@@ -203,7 +228,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
|
|
||||||
ADD_ATTR(img_attrs, attr_num, gbm_bo_get_format(bo));
|
|
||||||
|
|
||||||
for (plane = 0; plane < num_planes; plane++) {
|
|
||||||
- fds[plane] = gbm_bo_get_fd_for_plane(bo, plane);
|
|
||||||
+ fds[plane] = xwl_gbm_bo_get_fd_for_plane(bo, plane);
|
|
||||||
ADD_ATTR(img_attrs, attr_num, planeAttrs[plane][PLANE_FD]);
|
|
||||||
ADD_ATTR(img_attrs, attr_num, fds[plane]);
|
|
||||||
ADD_ATTR(img_attrs, attr_num, planeAttrs[plane][PLANE_OFFSET]);
|
|
||||||
@@ -230,7 +255,6 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
-#endif
|
|
||||||
{
|
|
||||||
xwl_pixmap->image = eglCreateImageKHR(xwl_screen->egl_display,
|
|
||||||
xwl_screen->egl_context,
|
|
||||||
@@ -1062,6 +1086,8 @@ xwl_glamor_init_gbm(struct xwl_screen *x
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ init_gbm_abi();
|
|
||||||
+
|
|
||||||
dixSetPrivate(&xwl_screen->screen->devPrivates, &xwl_gbm_private_key,
|
|
||||||
xwl_gbm);
|
|
||||||
|
|
||||||
Index: xorg/include/meson.build
|
|
||||||
===================================================================
|
|
||||||
--- xorg.orig/include/meson.build
|
|
||||||
+++ xorg/include/meson.build
|
|
||||||
@@ -103,8 +103,6 @@ conf_data.set('GLAMOR_HAS_GBM_LINEAR',
|
|
||||||
build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 10.6') ? '1' : false)
|
|
||||||
conf_data.set('GBM_BO_WITH_MODIFIERS',
|
|
||||||
build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 17.1') ? '1' : false)
|
|
||||||
-conf_data.set('GBM_BO_FD_FOR_PLANE',
|
|
||||||
- build_glamor and gbm_dep.found() and gbm_dep.version().version_compare('>= 21.1') ? '1' : false)
|
|
||||||
|
|
||||||
conf_data.set_quoted('SERVER_MISC_CONFIG_PATH', serverconfigdir)
|
|
||||||
conf_data.set_quoted('PROJECTROOT', get_option('prefix'))
|
|
34
debian/patches/xwayland-cursor-wrap-fix.patch
vendored
Normal file
34
debian/patches/xwayland-cursor-wrap-fix.patch
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From fdc71a08f059d2466e39968652c3df71cc582b3e Mon Sep 17 00:00:00 2001
|
||||||
|
From: GloriousEggroll <gloriouseggroll@gmail.com>
|
||||||
|
Date: Sun, 21 May 2023 03:34:46 -0600
|
||||||
|
Subject: [PATCH] xwayland pointer warp fix
|
||||||
|
|
||||||
|
---
|
||||||
|
hw/xwayland/xwayland-input.c | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
|
||||||
|
index 34dd3c8..f7fa737 100644
|
||||||
|
--- a/hw/xwayland/xwayland-input.c
|
||||||
|
+++ b/hw/xwayland/xwayland-input.c
|
||||||
|
@@ -3202,9 +3202,6 @@ xwl_seat_emulate_pointer_warp(struct xwl_seat *xwl_seat,
|
||||||
|
if (!xwl_seat_can_emulate_pointer_warp(xwl_seat))
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (xwl_seat->x_cursor != NULL)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
if (!xwl_seat->pointer_warp_emulator)
|
||||||
|
xwl_seat_create_pointer_warp_emulator(xwl_seat);
|
||||||
|
|
||||||
|
@@ -3215,6 +3212,8 @@ xwl_seat_emulate_pointer_warp(struct xwl_seat *xwl_seat,
|
||||||
|
xwl_window,
|
||||||
|
sprite,
|
||||||
|
x, y);
|
||||||
|
+ if (xwl_seat->x_cursor != NULL)
|
||||||
|
+ xwl_seat_destroy_pointer_warp_emulator(xwl_seat);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
--
|
||||||
|
2.40.1
|
10
debian/rules
vendored
10
debian/rules
vendored
@ -9,8 +9,14 @@ SUPPORT = https://www.debian.org/support
|
|||||||
|
|
||||||
override_dh_auto_configure:
|
override_dh_auto_configure:
|
||||||
dh_auto_configure -- \
|
dh_auto_configure -- \
|
||||||
-Dbuilder_addr="debian-x@lists.debian.org"
|
-Dbuilder_addr="debian-x@lists.debian.org" \
|
||||||
-Dbuilder_string="$(DEB_SOURCE) $(DEB_VERSION_UPSTREAM) ($(SUPPORT))"
|
-Dbuilder_string="$(DEB_SOURCE) $(DEB_VERSION_UPSTREAM) ($(SUPPORT))" \
|
||||||
|
-Dxkb_dir=/usr/share/X11/xkb \
|
||||||
|
-Dxkb_output_dir=/var/lib/xkb \
|
||||||
|
-Dxwayland_eglstream=true \
|
||||||
|
-Dxcsecurity=true \
|
||||||
|
-Dglamor=true \
|
||||||
|
-Ddri3=true
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
dh_auto_install --destdir=debian/tmp
|
dh_auto_install --destdir=debian/tmp
|
||||||
|
4
main.sh
4
main.sh
@ -1,5 +1,5 @@
|
|||||||
# Clone Upstream
|
# Clone Upstream
|
||||||
git clone https://gitlab.freedesktop.org/xorg/xserver.git -b xwayland-23.1.1
|
git clone https://gitlab.freedesktop.org/xorg/xserver.git -b xwayland-23.1.2
|
||||||
cp -rvf ./debian ./xserver
|
cp -rvf ./debian ./xserver
|
||||||
mv ./xserver ./xwayland
|
mv ./xserver ./xwayland
|
||||||
cd ./xwayland
|
cd ./xwayland
|
||||||
@ -8,7 +8,7 @@ cd ./xwayland
|
|||||||
apt-get build-dep ./ -y
|
apt-get build-dep ./ -y
|
||||||
|
|
||||||
# Build package
|
# Build package
|
||||||
LOGNAME=root dh_make --createorig -y -l -p xwayland_23.1.1
|
LOGNAME=root dh_make --createorig -y -l -p xwayland_23.1.2
|
||||||
dpkg-buildpackage
|
dpkg-buildpackage
|
||||||
|
|
||||||
# Move the debs to output
|
# Move the debs to output
|
||||||
|
Loading…
Reference in New Issue
Block a user