void-packages/srcpkgs/xf86-video-qxl/patches/xorg-compat.patch

87 lines
2.7 KiB
Diff

https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/-/merge_requests/9
From fe3acdf9503b836111fb20c4839a25562d0484f7 Mon Sep 17 00:00:00 2001
From: Joachim Breuer <git@jmbreuer.net>
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 <git@jmbreuer.net>
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 <git@jmbreuer.net>
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