diff --git a/.gitignore b/.gitignore index 447e443..5db85a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/xorg-server-1.20.6.tar.bz2 +SOURCES/xorg-server-1.20.8.tar.bz2 diff --git a/.xorg-x11-server.metadata b/.xorg-x11-server.metadata index b4d2574..1bae2ad 100644 --- a/.xorg-x11-server.metadata +++ b/.xorg-x11-server.metadata @@ -1 +1 @@ -59473e72136113f3a35b1ab5a5cfcbcad955b660 SOURCES/xorg-server-1.20.6.tar.bz2 +077d081f912faf11c87ea1c9d0e29490961b0cd4 SOURCES/xorg-server-1.20.8.tar.bz2 diff --git a/SOURCES/0001-modesetting-Call-glamor_finish-from-drmmode_crtc_set.patch b/SOURCES/0001-modesetting-Call-glamor_finish-from-drmmode_crtc_set.patch deleted file mode 100644 index baf3dc5..0000000 --- a/SOURCES/0001-modesetting-Call-glamor_finish-from-drmmode_crtc_set.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 58d357db299116657b468db9565c0e431bb7ea29 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michel=20D=C3=A4nzer?= -Date: Tue, 26 Nov 2019 17:14:46 +0100 -Subject: [PATCH xserver 1/3] modesetting: Call glamor_finish from - drmmode_crtc_set_mode -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This makes sure any pending drawing to a new scanout buffer will be -visible from the start. - -This makes the finish call in drmmode_copy_fb superfluous, so remove it. - -Reviewed-by: Adam Jackson -(Cherry picked from commit c66c548eabf06835cb0cb906598fb87c7bb30cf4) - -Signed-off-by: Michel Dänzer ---- - hw/xfree86/drivers/modesetting/drmmode_display.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c -index 336f7686e..8786d13a3 100644 ---- a/hw/xfree86/drivers/modesetting/drmmode_display.c -+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c -@@ -754,6 +754,7 @@ drmmode_crtc_set_mode(xf86CrtcPtr crtc, Bool test_only) - xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn); - drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private; - drmmode_ptr drmmode = drmmode_crtc->drmmode; -+ ScreenPtr screen = crtc->scrn->pScreen; - drmModeModeInfo kmode; - int output_count = 0; - uint32_t *output_ids = NULL; -@@ -764,6 +765,12 @@ drmmode_crtc_set_mode(xf86CrtcPtr crtc, Bool test_only) - if (!drmmode_crtc_get_fb_id(crtc, &fb_id, &x, &y)) - return 1; - -+#ifdef GLAMOR_HAS_GBM -+ /* Make sure any pending drawing will be visible in a new scanout buffer */ -+ if (drmmode->glamor) -+ glamor_finish(screen); -+#endif -+ - if (ms->atomic_modeset) { - drmModeAtomicReq *req = drmModeAtomicAlloc(); - Bool active; -@@ -1452,8 +1459,6 @@ drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode) - - FreeScratchGC(gc); - -- glamor_finish(pScreen); -- - pScreen->canDoBGNoneRoot = TRUE; - - if (drmmode->fbcon_pixmap) --- -2.24.0 - diff --git a/SOURCES/0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch b/SOURCES/0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch deleted file mode 100644 index 6ab37ba..0000000 --- a/SOURCES/0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a22a81a0de76b96b01f32f59fd2a4b4af675d9b1 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Fri, 5 Oct 2018 15:12:18 -0400 -Subject: [PATCH] modesetting: Hide atomic behind Option "Atomic" "[boolean]" - -You can turn it on if the kernel driver supports it and you ask for it -explicitly, but right now it's too fragile. - -Signed-off-by: Adam Jackson ---- - hw/xfree86/drivers/modesetting/driver.c | 5 ++++- - hw/xfree86/drivers/modesetting/driver.h | 1 + - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c -index 24311c1..4fc62e4 100644 ---- a/hw/xfree86/drivers/modesetting/driver.c -+++ b/hw/xfree86/drivers/modesetting/driver.c -@@ -131,6 +131,7 @@ static const OptionInfoRec Options[] = { - {OPTION_PAGEFLIP, "PageFlip", OPTV_BOOLEAN, {0}, FALSE}, - {OPTION_ZAPHOD_HEADS, "ZaphodHeads", OPTV_STRING, {0}, FALSE}, - {OPTION_DOUBLE_SHADOW, "DoubleShadow", OPTV_BOOLEAN, {0}, FALSE}, -+ {OPTION_ATOMIC, "Atomic", OPTV_BOOLEAN, {0}, FALSE}, - {-1, NULL, OPTV_NONE, {0}, FALSE} - }; - -@@ -1061,7 +1062,9 @@ PreInit(ScrnInfoPtr pScrn, int flags) - } - - ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1); -- ms->atomic_modeset = (ret == 0); -+ if ((ms->atomic_modeset = (ret == 0))) -+ ms->atomic_modeset = xf86ReturnOptValBool(ms->drmmode.Options, -+ OPTION_ATOMIC, FALSE); - - ms->kms_has_modifiers = FALSE; - ret = drmGetCap(ms->fd, DRM_CAP_ADDFB2_MODIFIERS, &value); -diff --git a/hw/xfree86/drivers/modesetting/driver.h b/hw/xfree86/drivers/modesetting/driver.h -index c8db4b8..46ba78a 100644 ---- a/hw/xfree86/drivers/modesetting/driver.h -+++ b/hw/xfree86/drivers/modesetting/driver.h -@@ -51,6 +51,7 @@ typedef enum { - OPTION_PAGEFLIP, - OPTION_ZAPHOD_HEADS, - OPTION_DOUBLE_SHADOW, -+ OPTION_ATOMIC, - } modesettingOpts; - - typedef struct --- -2.19.0 - diff --git a/SOURCES/0001-xfree86-modes-Bail-from-xf86RotateRedisplay-if-pScre.patch b/SOURCES/0001-xfree86-modes-Bail-from-xf86RotateRedisplay-if-pScre.patch deleted file mode 100644 index e52a664..0000000 --- a/SOURCES/0001-xfree86-modes-Bail-from-xf86RotateRedisplay-if-pScre.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 6a5e47c57d16de8b6a6a2636f3cbad1aebec32e2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michel=20D=C3=A4nzer?= -Date: Mon, 27 Jan 2020 17:47:10 +0100 -Subject: [PATCH xserver] xfree86/modes: Bail from xf86RotateRedisplay if - pScreen->root is NULL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Avoids a crash in xf86RotatePrepare -> DamageRegister during -CreateScreenResources if rotation or another transform is configured for -any connected RandR output in xorg.conf. The generic rotation/transform -code generally can't work without the root window currently. - -Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/969 -Fixes: 094f42cdfe5d "xfree86/modes: Call xf86RotateRedisplay from - xf86CrtcRotate" -Acked-by: Olivier Fourdan -Reviewed-by: Adam Jackson -Signed-off-by: Michel Dänzer ---- - hw/xfree86/modes/xf86Rotate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c -index 05944cfcb..5415ed97c 100644 ---- a/hw/xfree86/modes/xf86Rotate.c -+++ b/hw/xfree86/modes/xf86Rotate.c -@@ -176,7 +176,7 @@ xf86RotateRedisplay(ScreenPtr pScreen) - DamagePtr damage = xf86_config->rotation_damage; - RegionPtr region; - -- if (!damage) -+ if (!damage || !pScreen->root) - return FALSE; - xf86RotatePrepare(pScreen); - region = DamageRegion(damage); --- -2.24.1 - diff --git a/SOURCES/0002-xfree86-modes-Call-xf86RotateRedisplay-from-xf86Crtc.patch b/SOURCES/0002-xfree86-modes-Call-xf86RotateRedisplay-from-xf86Crtc.patch deleted file mode 100644 index c2ae5b1..0000000 --- a/SOURCES/0002-xfree86-modes-Call-xf86RotateRedisplay-from-xf86Crtc.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 532f1618a0600e8601fd42f40eb628e4794300b2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michel=20D=C3=A4nzer?= -Date: Tue, 26 Nov 2019 17:16:37 +0100 -Subject: [PATCH xserver 2/3] xfree86/modes: Call xf86RotateRedisplay from - xf86CrtcRotate -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If a new rotate buffer was allocated. This makes sure the new buffer -has valid transformed contents when it starts being displayed. - -Reviewed-by: Adam Jackson -(Cherry picked from commit 327df450ffcf5bda5b4254db0208d355860d1010) - -Signed-off-by: Michel Dänzer ---- - hw/xfree86/modes/xf86Rotate.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c -index a8f1e615c..05944cfcb 100644 ---- a/hw/xfree86/modes/xf86Rotate.c -+++ b/hw/xfree86/modes/xf86Rotate.c -@@ -485,6 +485,9 @@ xf86CrtcRotate(xf86CrtcPtr crtc) - - if (damage) - xf86CrtcDamageShadow(crtc); -+ else if (crtc->rotatedData && !crtc->rotatedPixmap) -+ /* Make sure the new rotate buffer has valid transformed contents */ -+ xf86RotateRedisplay(pScreen); - - /* All done */ - return TRUE; --- -2.24.0 - diff --git a/SOURCES/0003-modesetting-Clear-new-screen-pixmap-storage-on-RandR.patch b/SOURCES/0003-modesetting-Clear-new-screen-pixmap-storage-on-RandR.patch deleted file mode 100644 index f417bdc..0000000 --- a/SOURCES/0003-modesetting-Clear-new-screen-pixmap-storage-on-RandR.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 5489029ff6508b37d71d47d905d744c436a49563 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michel=20D=C3=A4nzer?= -Date: Tue, 26 Nov 2019 17:17:12 +0100 -Subject: [PATCH xserver 3/3] modesetting: Clear new screen pixmap storage on - RandR resize -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes random garbage being visible intermittently. - -Reviewed-by: Adam Jackson -(Cherry picked from commit 9ba13bac9dd076f166ff0d063fc144b904a40d12) - -Signed-off-by: Michel Dänzer ---- - hw/xfree86/drivers/modesetting/drmmode_display.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c -index 8786d13a3..eca058258 100644 ---- a/hw/xfree86/drivers/modesetting/drmmode_display.c -+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c -@@ -1795,6 +1795,19 @@ drmmode_set_scanout_pixmap(xf86CrtcPtr crtc, PixmapPtr ppix) - &drmmode_crtc->prime_pixmap); - } - -+static void -+drmmode_clear_pixmap(PixmapPtr pixmap) -+{ -+ ScreenPtr screen = pixmap->drawable.pScreen; -+ GCPtr gc; -+ -+ gc = GetScratchGC(pixmap->drawable.depth, screen); -+ if (gc) { -+ miClearDrawable(&pixmap->drawable, gc); -+ FreeScratchGC(gc); -+ } -+} -+ - static void * - drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height) - { -@@ -3179,6 +3192,8 @@ drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height) - if (!drmmode_glamor_handle_new_screen_pixmap(drmmode)) - goto fail; - -+ drmmode_clear_pixmap(ppix); -+ - for (i = 0; i < xf86_config->num_crtc; i++) { - xf86CrtcPtr crtc = xf86_config->crtc[i]; - --- -2.24.0 - diff --git a/SPECS/xorg-x11-server.spec b/SPECS/xorg-x11-server.spec index c8a5ed1..e4bc917 100644 --- a/SPECS/xorg-x11-server.spec +++ b/SPECS/xorg-x11-server.spec @@ -21,7 +21,7 @@ %global ansic_major 0 %global ansic_minor 4 %global videodrv_major 24 -%global videodrv_minor 0 +%global videodrv_minor 1 %global xinput_major 24 %global xinput_minor 1 %global extension_major 10 @@ -45,8 +45,8 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.20.6 -Release: 3%{?gitdate:.%{gitdate}}%{?dist} +Version: 1.20.8 +Release: 1%{?gitdate:.%{gitdate}}%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -94,7 +94,6 @@ Patch10: 0001-mustard-Don-t-probe-for-drivers-not-shipped-in-RHEL8.patch Patch11: 0001-mustard-Add-DRI2-fallback-driver-mappings-for-i965-a.patch #Patch11: 0001-Enable-PAM-support.patch Patch12: 0001-link-with-z-now.patch -Patch13: 0001-modesetting-Hide-atomic-behind-Option-Atomic-boolean.patch Patch14: 0001-xfree86-Don-t-autoconfigure-vesa-or-fbdev.patch Patch15: 0001-xfree86-LeaveVT-from-xf86CrtcCloseScreen.patch Patch16: 0001-xfree86-try-harder-to-span-on-multihead.patch @@ -109,14 +108,6 @@ Patch102: 0001-xfree86-ensure-the-readlink-buffer-is-null-terminate.patch Patch200: 0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch Patch201: 0001-linux-Fix-platform-device-PCI-detection-for-complex-.patch -# 1738670 - Graphical artifacts when modesetting -Patch300: 0001-modesetting-Call-glamor_finish-from-drmmode_crtc_set.patch -Patch301: 0002-xfree86-modes-Call-xf86RotateRedisplay-from-xf86Crtc.patch -Patch302: 0003-modesetting-Clear-new-screen-pixmap-storage-on-RandR.patch - -# 1795328 - Crash in xf86CrtcRotate with Option "Rotate" in xorg.conf -Patch400: 0001-xfree86-modes-Bail-from-xf86RotateRedisplay-if-pScre.patch - BuildRequires: systemtap-sdt-devel BuildRequires: git BuildRequires: automake autoconf libtool pkgconfig @@ -559,6 +550,9 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete %changelog +* Tue May 26 2020 Adam Jackson - 1.20.8-1 +- xserver 1.20.8 + * Tue Feb 11 2020 Michel Dänzer - 1.20.6-3 - Add fix for crash with Option "Rotate" in xorg.conf Resolves: #1795328