From 6f092efb0c040fa599fedfefd1ee307fc1f8d86e Mon Sep 17 00:00:00 2001 From: Andrew Benson Date: Wed, 27 Jul 2022 12:12:48 -0500 Subject: [PATCH] xf86-video-qxl: add compatiblity patch for xorg-21.x+ Closes #37157. --- .../xf86-video-qxl/patches/xorg-compat.patch | 86 +++++++++++++++++++ srcpkgs/xf86-video-qxl/template | 2 +- 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/xf86-video-qxl/patches/xorg-compat.patch diff --git a/srcpkgs/xf86-video-qxl/patches/xorg-compat.patch b/srcpkgs/xf86-video-qxl/patches/xorg-compat.patch new file mode 100644 index 000000000000..9fe31fa8e009 --- /dev/null +++ b/srcpkgs/xf86-video-qxl/patches/xorg-compat.patch @@ -0,0 +1,86 @@ +https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/-/merge_requests/9 + +From fe3acdf9503b836111fb20c4839a25562d0484f7 Mon Sep 17 00:00:00 2001 +From: Joachim Breuer +Date: Tue, 12 Apr 2022 19:32:40 +0200 +Subject: [PATCH 1/3] fix pScrn->modes == NULL in xf86InitViewport() + +track pScrn->modes along with qxl->x_modes +--- + src/qxl_ums_mode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qxl_ums_mode.c b/src/qxl_ums_mode.c +index e4a7edc..5e5f668 100644 +--- a/src/qxl_ums_mode.c ++++ b/src/qxl_ums_mode.c +@@ -65,7 +65,7 @@ qxl_add_mode (qxl_screen_t *qxl, ScrnInfoPtr pScrn, int width, int height, int t + DisplayModePtr mode; + + mode = screen_create_mode (pScrn, width, height, type); +- qxl->x_modes = xf86ModesAdd (qxl->x_modes, mode); ++ pScrn->modes = qxl->x_modes = xf86ModesAdd (qxl->x_modes, mode); + + return mode; + } +-- +GitLab + + +From 9d0ddb12cb74a04ccd007ad884137a4fdaf39b44 Mon Sep 17 00:00:00 2001 +From: Joachim Breuer +Date: Tue, 12 Apr 2022 19:33:45 +0200 +Subject: [PATCH 2/3] Initialize pScrn->{width, height} from primary + +... instead of pScrn->currentMode, the latter is not initialized +in xorg-server-21.1.3 +--- + src/qxl_driver.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/qxl_driver.c b/src/qxl_driver.c +index 80d021b..009e79a 100644 +--- a/src/qxl_driver.c ++++ b/src/qxl_driver.c +@@ -807,8 +807,8 @@ qxl_screen_init (SCREEN_INIT_ARGS_DECL) + + CHECK_POINT (); + +- pScreen->width = pScrn->currentMode->HDisplay; +- pScreen->height = pScrn->currentMode->VDisplay; ++ pScreen->width = qxl->primary_mode.x_res; ++ pScreen->height = qxl->primary_mode.y_res; + + if (!xf86CrtcScreenInit (pScreen)) + return FALSE; +-- +GitLab + + +From ca70ff93dd8bbf35104d0f48b23a81aebf58bfac Mon Sep 17 00:00:00 2001 +From: Joachim Breuer +Date: Tue, 12 Apr 2022 19:35:21 +0200 +Subject: [PATCH 3/3] Default to one head if there is no NUM_HEADS option + +--- + src/qxl_driver.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/qxl_driver.c b/src/qxl_driver.c +index 009e79a..2c38e2d 100644 +--- a/src/qxl_driver.c ++++ b/src/qxl_driver.c +@@ -1005,6 +1005,10 @@ qxl_pre_init_common(ScrnInfoPtr pScrn) + get_bool_option (qxl->options, OPTION_DEBUG_RENDER_FALLBACKS, "QXL_DEBUG_RENDER_FALLBACKS"); + qxl->num_heads = + get_int_option (qxl->options, OPTION_NUM_HEADS, "QXL_NUM_HEADS"); ++ if (qxl->num_heads == 0) { ++ xf86DrvMsg (scrnIndex, X_INFO, "QXL_NUM_HEADS not configured, defaulting to 1\n"); ++ qxl->num_heads = 1; ++ } + + qxl->deferred_fps = get_int_option(qxl->options, OPTION_SPICE_DEFERRED_FPS, "XSPICE_DEFERRED_FPS"); + if (qxl->deferred_fps > 0) +-- +GitLab + diff --git a/srcpkgs/xf86-video-qxl/template b/srcpkgs/xf86-video-qxl/template index 27f34302efaf..b82a009a2c23 100644 --- a/srcpkgs/xf86-video-qxl/template +++ b/srcpkgs/xf86-video-qxl/template @@ -1,7 +1,7 @@ # Template file for 'xf86-video-qxl' pkgname=xf86-video-qxl version=0.1.5 -revision=3 +revision=4 build_style=gnu-configure hostmakedepends="automake m4 xorg-util-macros libtool pkg-config" makedepends="xorg-server-devel spice-protocol xorgproto"