extra/xorg-server to 1.20.13-1

This commit is contained in:
Kevin Mihelich 2021-07-29 23:25:15 +00:00
parent b194d5279a
commit 79e26345b0
3 changed files with 3 additions and 137 deletions

View file

@ -1,97 +0,0 @@
From d6c02ffd9c910637f6b3b7249507998e9e45f93c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Spintzyk?= <lukasz.spintzyk@synaptics.com>
Date: Mon, 19 Jul 2021 14:25:28 +0200
Subject: [PATCH 1/2] present: fallback get_crtc to return crtc belonging to
screen with present extension
Since crtc can belong to secondary output that may not have present
extension enabled we should fallback to first enabled crtc or fake crtc.
Fix for issue xorg/xserver#1195
Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
---
present/present.c | 10 +++++++++-
randr/randr.c | 27 +++++++++++++++++++++++++++
randr/randrstr.h | 2 ++
3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/present/present.c b/present/present.c
index 217fe1d7a..271fe32bc 100644
--- a/present/present.c
+++ b/present/present.c
@@ -44,11 +44,19 @@ present_get_crtc(WindowPtr window)
{
ScreenPtr screen = window->drawable.pScreen;
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
+ RRCrtcPtr crtc = NULL;
if (!screen_priv)
return NULL;
- return screen_priv->get_crtc(screen_priv, window);
+ crtc = screen_priv->get_crtc(screen_priv, window);
+ if (crtc && !present_screen_priv(crtc->pScreen)) {
+ crtc = RRFirstEnabledCrtc(screen);
+ }
+ if (crtc && !present_screen_priv(crtc->pScreen)) {
+ crtc = NULL;
+ }
+ return crtc;
}
/*
diff --git a/randr/randr.c b/randr/randr.c
index 3f94c2f6c..6d02c2577 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -697,6 +697,33 @@ RRFirstOutput(ScreenPtr pScreen)
return NULL;
}
+RRCrtcPtr
+RRFirstEnabledCrtc(ScreenPtr pScreen)
+{
+ rrScrPriv(pScreen);
+ RROutputPtr output;
+ int i, j;
+
+ if (!pScrPriv)
+ return NULL;
+
+ if (pScrPriv->primaryOutput && pScrPriv->primaryOutput->crtc &&
+ pScrPriv->primaryOutput->pScreen == pScreen)
+ return pScrPriv->primaryOutput->crtc;
+
+ for (i = 0; i < pScrPriv->numCrtcs; i++) {
+ RRCrtcPtr crtc = pScrPriv->crtcs[i];
+
+ for (j = 0; j < pScrPriv->numOutputs; j++) {
+ output = pScrPriv->outputs[j];
+ if (output->crtc == crtc && crtc->mode)
+ return crtc;
+ }
+ }
+ return NULL;
+}
+
+
CARD16
RRVerticalRefresh(xRRModeInfo * mode)
{
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 8f427a48e..b23390575 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -593,6 +593,8 @@ extern _X_EXPORT Bool RRScreenInit(ScreenPtr pScreen);
extern _X_EXPORT RROutputPtr RRFirstOutput(ScreenPtr pScreen);
+extern _X_EXPORT RRCrtcPtr RRFirstEnabledCrtc(ScreenPtr pScreen);
+
extern _X_EXPORT Bool RROutputSetNonDesktop(RROutputPtr output, Bool non_desktop);
extern _X_EXPORT CARD16
--
2.32.0

View file

@ -1,29 +0,0 @@
From 8836b9d243444031b6396d39d345f2f83b5fa6a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Spintzyk?= <lukasz.spintzyk@synaptics.com>
Date: Thu, 22 Jul 2021 13:12:05 +0200
Subject: [PATCH 2/2] modesetting: unflip not possible when glamor is not set
This is fixing crashes of xfce when running under qemu
Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
---
hw/xfree86/drivers/modesetting/present.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/xfree86/drivers/modesetting/present.c b/hw/xfree86/drivers/modesetting/present.c
index f0a0e2704..916a15303 100644
--- a/hw/xfree86/drivers/modesetting/present.c
+++ b/hw/xfree86/drivers/modesetting/present.c
@@ -272,6 +272,9 @@ ms_present_check_unflip(RRCrtcPtr crtc,
pixmap->devKind != drmmode_bo_get_pitch(&ms->drmmode.front_bo))
return FALSE;
+ if (!ms->drmmode.glamor)
+ return FALSE;
+
#ifdef GBM_BO_WITH_MODIFIERS
/* Check if buffer format/modifier is supported by all active CRTCs */
gbm = ms->glamor.gbm_bo_from_pixmap(screen, pixmap);
--
2.32.0

View file

@ -7,8 +7,8 @@
pkgbase=xorg-server
pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xvfb' 'xorg-server-xnest'
'xorg-server-common' 'xorg-server-devel')
pkgver=1.20.12
pkgrel=2
pkgver=1.20.13
pkgrel=1
arch=('x86_64')
license=('custom')
groups=('xorg')
@ -24,8 +24,6 @@ source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pk
xserver-autobind-hotplug.patch
0001-v2-FS-58644.patch
0002-fix-libshadow-2.patch
0001-present-fallback-get_crtc-to-return-crtc-belonging-t.patch
0002-modesetting-unflip-not-possible-when-glamor-is-not-s.patch
0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
xvfb-run # with updates from FC master
xvfb-run.1)
@ -33,13 +31,11 @@ validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3'
'3BB639E56F861FA2E86505690FDD682D974CA72A')
sha512sums=('98350c42fb1f10c965663c1c8d4b225689a6a63163d788d454aa71b28b9cc8fcf9709a932f882358a13ca0c277c0c15812d05919092b4c32828d4ed61cca0406'
sha512sums=('4e0b7bd4e070dc52cb2c51c2056feb133de2c0487d359392ed63abba9702910cd2e2983e9415973d8d6e9672eac78be6f39202687fc56610877914ce722554b3'
'SKIP'
'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
'74e1aa0c101e42f0f25349d305641873b3a79ab3b9bb2d4ed68ba8e392b4db2701fcbc35826531ee2667d3ee55673e4b4fecc2a9f088141af29ceb400f72f363'
'3d3be34ad9fa976daec53573d3a30a9f1953341ba5ee27099af0141f0ef7994fa5cf84dc08aae848380e6abfc10879f9a67f07601c7a437abf8aef13a3ec9fe1'
'531a3d0b9cebdcb06a9dcf4a8501bee1ee4ed1791e8f2bc95e7859fd78cebbe3a9baacf7595f106c181835b53eb46c9f121f476e3c42cdd5e71dc91b5e507076'
'2601f780c3480fcfd009a95f703140e05d2ccc64c5c1de9455f134c0ec159f96e86a8bd81f735ce6b91ac5edb71683889b4667a92eae71d42dd7b57d93338b31'
'9df57f5f00df22865880b726a835b0a68c6e460bcb7481418b83ee0521d93b329dbbbab278ef70c4b577e75bb46fe23535949eeba44fc41107d0726495ca77a7'
'4154dd55702b98083b26077bf70c60aa957b4795dbf831bcc4c78b3cb44efe214f0cf8e3c140729c829b5f24e7466a24615ab8dbcce0ac6ebee3229531091514'
'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22')
@ -57,10 +53,6 @@ prepare() {
# Fix libshadow.so: libfb.so => not found - merge in master
patch -Np1 -i ../0002-fix-libshadow-2.patch
# Fix FS#71483 - [Xorg] Xorg crashes when opening new window
patch -Np1 -i ../0001-present-fallback-get_crtc-to-return-crtc-belonging-t.patch
patch -Np1 -i ../0002-modesetting-unflip-not-possible-when-glamor-is-not-s.patch
# Fix segfault on probing a non-PCI platform device on a system with PCI
patch -Np1 -i ../0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
}