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; } -- 2.35.1 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; -- 2.35.1 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) -- 2.35.1