summarylogtreecommitdiffstats
diff options
context:
space:
mode:
author0strodamus2016-03-25 13:36:49 -0700
committer0strodamus2016-03-25 13:36:49 -0700
commit86348afcbfb043f9dc5c8a572cc6dde825651883 (patch)
tree407c98c2b08e9ee07f58e3cde1bd0f5c08328f25
parent442b435a899562c9dc352b88a690cf9af4f12a48 (diff)
downloadaur-86348afcbfb043f9dc5c8a572cc6dde825651883.tar.gz
upgpkg: xorg-server-nosystemd 1.18.2-4
-rw-r--r--.SRCINFO20
-rw-r--r--0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch374
-rw-r--r--0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch16
-rw-r--r--0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch43
-rw-r--r--Fix-XineramaQueryScreens-for-reverse-prime.patch55
-rw-r--r--PKGBUILD24
-rw-r--r--xorg-server.install5
7 files changed, 465 insertions, 72 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f74c941a3ee0..6510216be3eb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Mon Feb 29 19:08:53 UTC 2016
+# Fri Mar 25 20:36:23 UTC 2016
pkgbase = xorg-server-nosystemd
- pkgver = 1.18.1
- pkgrel = 3
+ pkgver = 1.18.2
+ pkgrel = 4
url = http://xorg.freedesktop.org
arch = i686
arch = x86_64
@@ -54,16 +54,20 @@ pkgbase = xorg-server-nosystemd
makedepends = dri3proto
makedepends = libxshmfence
makedepends = libunwind
- source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.1.tar.bz2
- source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.1.tar.bz2.sig
+ source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.2.tar.bz2
+ source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.2.tar.bz2.sig
source = xvfb-run
source = xvfb-run.1
- source = Fix-XineramaQueryScreens-for-reverse-prime.patch
- sha256sums = 85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d
+ source = 0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
+ source = 0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+ source = 0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
+ sha256sums = 022142b07f6477d140dcc915902df326408a53ca3a352426a499f142b25d632d
sha256sums = SKIP
sha256sums = ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9
sha256sums = 2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776
- sha256sums = afc334dfe1f1eb9e557ae01771b0f774c8fc578115e1698462ab670d1b0a213a
+ sha256sums = 10c66c10f4f71930e2ac3f6e07881e228ca88542af449d2c69c7744ec87335df
+ sha256sums = 72755a652e72144e3f28c8fa959b4a6df5def838db3cde5077a626e97baab591
+ sha256sums = 70c84bf1f7cbc818692fb56f57c8b8ef2ea057bc05380b2f797ecba742b7ce31
pkgname = xorg-server-nosystemd
pkgdesc = Xorg X server
diff --git a/0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch b/0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
new file mode 100644
index 000000000000..2dbbb85bffb8
--- /dev/null
+++ b/0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
@@ -0,0 +1,374 @@
+From 75eecf28ae3709181a51571132b0accd9cae316e Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun, 13 Mar 2016 13:54:01 +0000
+Subject: Xext/vidmode: Reduce verbosity of GetModeLine debug messages
+
+In commit f175cf45aebcdda53f3ae49c0eaf27da1f194e92
+Author: Olivier Fourdan <ofourdan@redhat.com>
+Date: Wed Feb 10 09:34:34 2016 +0100
+
+ vidmode: move to a separate library of its own
+
+the verbosity of some old debug messages (which print the reply to every
+GetModeLine client request and others) was increased leading to lots of
+log spam. Downgrade the logging back to DebugF.
+
+[ajax: Fix a typo so it compiles.]
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+References: https://bugs.freedesktop.org/show_bug.cgi?id=94515
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Olivier Fourdan <ofourdan@redhat.com>
+
+diff --git a/Xext/vidmode.c b/Xext/vidmode.c
+index 7c838f4..0cbbdc3 100644
+--- a/Xext/vidmode.c
++++ b/Xext/vidmode.c
+@@ -69,7 +69,7 @@ typedef struct {
+ dixSetPrivate(&(c)->devPrivates, VidModeClientPrivateKey, p)
+
+ #ifdef DEBUG
+-#define DEBUG_P(x) LogMessage(X_INFO, x"\n");
++#define DEBUG_P(x) DebugF(x"\n")
+ #else
+ #define DEBUG_P(x) /**/
+ #endif
+@@ -267,13 +267,13 @@ ProcVidModeGetModeLine(ClientPtr client)
+ rep.vtotal = VidModeGetModeValue(mode, VIDMODE_V_TOTAL);
+ rep.flags = VidModeGetModeValue(mode, VIDMODE_FLAGS);
+
+- LogMessage(X_INFO, "GetModeLine - scrn: %d clock: %ld\n",
+- stuff->screen, (unsigned long) rep.dotclock);
+- LogMessage(X_INFO, "GetModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- rep.hdisplay, rep.hsyncstart, rep.hsyncend, rep.htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- rep.vdisplay, rep.vsyncstart, rep.vsyncend,
+- rep.vtotal, (unsigned long) rep.flags);
++ DebugF("GetModeLine - scrn: %d clock: %ld\n",
++ stuff->screen, (unsigned long) rep.dotclock);
++ DebugF("GetModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ rep.hdisplay, rep.hsyncstart, rep.hsyncend, rep.htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ rep.vdisplay, rep.vsyncstart, rep.vsyncend,
++ rep.vtotal, (unsigned long) rep.flags);
+
+ /*
+ * Older servers sometimes had server privates that the VidMode
+@@ -483,23 +483,23 @@ ProcVidModeAddModeLine(ClientPtr client)
+ stuff->after_vtotal = oldstuff->after_vtotal;
+ stuff->after_flags = oldstuff->after_flags;
+ }
+- LogMessage(X_INFO, "AddModeLine - scrn: %d clock: %ld\n",
+- (int) stuff->screen, (unsigned long) stuff->dotclock);
+- LogMessage(X_INFO, "AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- stuff->hdisplay, stuff->hsyncstart,
+- stuff->hsyncend, stuff->htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
+- stuff->vtotal, (unsigned long) stuff->flags);
+- LogMessage(X_INFO, " after - scrn: %d clock: %ld\n",
+- (int) stuff->screen, (unsigned long) stuff->after_dotclock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- stuff->after_hdisplay, stuff->after_hsyncstart,
+- stuff->after_hsyncend, stuff->after_htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->after_vdisplay, stuff->after_vsyncstart,
+- stuff->after_vsyncend, stuff->after_vtotal,
+- (unsigned long) stuff->after_flags);
++ DebugF("AddModeLine - scrn: %d clock: %ld\n",
++ (int) stuff->screen, (unsigned long) stuff->dotclock);
++ DebugF("AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ stuff->hdisplay, stuff->hsyncstart,
++ stuff->hsyncend, stuff->htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
++ stuff->vtotal, (unsigned long) stuff->flags);
++ DebugF(" after - scrn: %d clock: %ld\n",
++ (int) stuff->screen, (unsigned long) stuff->after_dotclock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ stuff->after_hdisplay, stuff->after_hsyncstart,
++ stuff->after_hsyncend, stuff->after_htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->after_vdisplay, stuff->after_vsyncstart,
++ stuff->after_vsyncend, stuff->after_vtotal,
++ (unsigned long) stuff->after_flags);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
+@@ -572,7 +572,7 @@ ProcVidModeAddModeLine(ClientPtr client)
+ VidModeSetModeValue(mode, VIDMODE_FLAGS, stuff->flags);
+
+ if (stuff->privsize)
+- LogMessage(X_INFO, "AddModeLine - Privates in request have been ignored\n");
++ DebugF("AddModeLine - Privates in request have been ignored\n");
+
+ /* Check that the mode is consistent with the monitor specs */
+ switch (pVidMode->CheckModeForMonitor(pScreen, mode)) {
+@@ -601,7 +601,7 @@ ProcVidModeAddModeLine(ClientPtr client)
+
+ pVidMode->AddModeline(pScreen, mode);
+
+- LogMessage(X_INFO, "AddModeLine - Succeeded\n");
++ DebugF("AddModeLine - Succeeded\n");
+
+ return Success;
+ }
+@@ -640,14 +640,14 @@ ProcVidModeDeleteModeLine(ClientPtr client)
+ stuff->flags = oldstuff->flags;
+ stuff->privsize = oldstuff->privsize;
+ }
+- LogMessage(X_INFO, "DeleteModeLine - scrn: %d clock: %ld\n",
+- (int) stuff->screen, (unsigned long) stuff->dotclock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- stuff->hdisplay, stuff->hsyncstart,
+- stuff->hsyncend, stuff->htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
+- (unsigned long) stuff->flags);
++ DebugF("DeleteModeLine - scrn: %d clock: %ld\n",
++ (int) stuff->screen, (unsigned long) stuff->dotclock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ stuff->hdisplay, stuff->hsyncstart,
++ stuff->hsyncend, stuff->htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
++ (unsigned long) stuff->flags);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
+@@ -662,11 +662,11 @@ ProcVidModeDeleteModeLine(ClientPtr client)
+ bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq));
+ }
+ if (len != stuff->privsize) {
+- LogMessage(X_INFO, "req_len = %ld, sizeof(Req) = %d, privsize = %ld, "
+- "len = %d, length = %d\n",
+- (unsigned long) client->req_len,
+- (int) sizeof(xXF86VidModeDeleteModeLineReq) >> 2,
+- (unsigned long) stuff->privsize, len, stuff->length);
++ DebugF("req_len = %ld, sizeof(Req) = %d, privsize = %ld, "
++ "len = %d, length = %d\n",
++ (unsigned long) client->req_len,
++ (int) sizeof(xXF86VidModeDeleteModeLineReq) >> 2,
++ (unsigned long) stuff->privsize, len, stuff->length);
+ return BadLength;
+ }
+
+@@ -681,46 +681,46 @@ ProcVidModeDeleteModeLine(ClientPtr client)
+ if (!pVidMode->GetCurrentModeline(pScreen, &mode, &dotClock))
+ return BadValue;
+
+- LogMessage(X_INFO, "Checking against clock: %d (%d)\n",
++ DebugF("Checking against clock: %d (%d)\n",
++ VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ VidModeGetModeValue(mode, VIDMODE_H_DISPLAY),
++ VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART),
++ VidModeGetModeValue(mode, VIDMODE_H_SYNCEND),
++ VidModeGetModeValue(mode, VIDMODE_H_TOTAL));
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
++ VidModeGetModeValue(mode, VIDMODE_V_DISPLAY),
++ VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART),
++ VidModeGetModeValue(mode, VIDMODE_V_SYNCEND),
++ VidModeGetModeValue(mode, VIDMODE_V_TOTAL),
++ VidModeGetModeValue(mode, VIDMODE_FLAGS));
++
++ if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) &&
++ MODEMATCH(mode, stuff))
++ return BadValue;
++
++ if (!pVidMode->GetFirstModeline(pScreen, &mode, &dotClock))
++ return BadValue;
++
++ do {
++ DebugF("Checking against clock: %d (%d)\n",
+ VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
+ VidModeGetModeValue(mode, VIDMODE_H_DISPLAY),
+ VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART),
+ VidModeGetModeValue(mode, VIDMODE_H_SYNCEND),
+ VidModeGetModeValue(mode, VIDMODE_H_TOTAL));
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
+ VidModeGetModeValue(mode, VIDMODE_V_DISPLAY),
+ VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART),
+ VidModeGetModeValue(mode, VIDMODE_V_SYNCEND),
+ VidModeGetModeValue(mode, VIDMODE_V_TOTAL),
+ VidModeGetModeValue(mode, VIDMODE_FLAGS));
+
+- if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) &&
+- MODEMATCH(mode, stuff))
+- return BadValue;
+-
+- if (!pVidMode->GetFirstModeline(pScreen, &mode, &dotClock))
+- return BadValue;
+-
+- do {
+- LogMessage(X_INFO, "Checking against clock: %d (%d)\n",
+- VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- VidModeGetModeValue(mode, VIDMODE_H_DISPLAY),
+- VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART),
+- VidModeGetModeValue(mode, VIDMODE_H_SYNCEND),
+- VidModeGetModeValue(mode, VIDMODE_H_TOTAL));
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
+- VidModeGetModeValue(mode, VIDMODE_V_DISPLAY),
+- VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART),
+- VidModeGetModeValue(mode, VIDMODE_V_SYNCEND),
+- VidModeGetModeValue(mode, VIDMODE_V_TOTAL),
+- VidModeGetModeValue(mode, VIDMODE_FLAGS));
+-
+ if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) &&
+ MODEMATCH(mode, stuff)) {
+ pVidMode->DeleteModeline(pScreen, mode);
+- LogMessage(X_INFO, "DeleteModeLine - Succeeded\n");
++ DebugF("DeleteModeLine - Succeeded\n");
+ return Success;
+ }
+ } while (pVidMode->GetNextModeline(pScreen, &mode, &dotClock));
+@@ -761,12 +761,12 @@ ProcVidModeModModeLine(ClientPtr client)
+ stuff->flags = oldstuff->flags;
+ stuff->privsize = oldstuff->privsize;
+ }
+- LogMessage(X_INFO, "ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart,
+- stuff->hsyncend, stuff->htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
+- stuff->vtotal, (unsigned long) stuff->flags);
++ DebugF("ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart,
++ stuff->hsyncend, stuff->htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
++ stuff->vtotal, (unsigned long) stuff->flags);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
+@@ -816,7 +816,7 @@ ProcVidModeModModeLine(ClientPtr client)
+ VidModeSetModeValue(modetmp, VIDMODE_FLAGS, stuff->flags);
+
+ if (stuff->privsize)
+- LogMessage(X_INFO, "ModModeLine - Privates in request have been ignored\n");
++ DebugF("ModModeLine - Privates in request have been ignored\n");
+
+ /* Check that the mode is consistent with the monitor specs */
+ switch (pVidMode->CheckModeForMonitor(pScreen, modetmp)) {
+@@ -856,7 +856,7 @@ ProcVidModeModModeLine(ClientPtr client)
+ pVidMode->SetCrtcForMode(pScreen, mode);
+ pVidMode->SwitchMode(pScreen, mode);
+
+- LogMessage(X_INFO, "ModModeLine - Succeeded\n");
++ DebugF("ModModeLine - Succeeded\n");
+ return Success;
+ }
+
+@@ -896,14 +896,14 @@ ProcVidModeValidateModeLine(ClientPtr client)
+ stuff->privsize = oldstuff->privsize;
+ }
+
+- LogMessage(X_INFO, "ValidateModeLine - scrn: %d clock: %ld\n",
+- (int) stuff->screen, (unsigned long) stuff->dotclock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- stuff->hdisplay, stuff->hsyncstart,
+- stuff->hsyncend, stuff->htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
+- (unsigned long) stuff->flags);
++ DebugF("ValidateModeLine - scrn: %d clock: %ld\n",
++ (int) stuff->screen, (unsigned long) stuff->dotclock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ stuff->hdisplay, stuff->hsyncstart,
++ stuff->hsyncend, stuff->htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
++ (unsigned long) stuff->flags);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
+@@ -956,7 +956,7 @@ ProcVidModeValidateModeLine(ClientPtr client)
+ VidModeSetModeValue(modetmp, VIDMODE_V_TOTAL, stuff->vtotal);
+ VidModeSetModeValue(modetmp, VIDMODE_FLAGS, stuff->flags);
+ if (stuff->privsize)
+- LogMessage(X_INFO, "ValidateModeLine - Privates in request have been ignored\n");
++ DebugF("ValidateModeLine - Privates in request have been ignored\n");
+
+ /* Check that the mode is consistent with the monitor specs */
+ if ((status =
+@@ -982,7 +982,7 @@ ProcVidModeValidateModeLine(ClientPtr client)
+ swapl(&rep.status);
+ }
+ WriteToClient(client, sizeof(xXF86VidModeValidateModeLineReply), &rep);
+- LogMessage(X_INFO, "ValidateModeLine - Succeeded (status = %d)\n", status);
++ DebugF("ValidateModeLine - Succeeded (status = %d)\n", status);
+
+ return Success;
+ }
+@@ -1046,14 +1046,14 @@ ProcVidModeSwitchToMode(ClientPtr client)
+ stuff->privsize = oldstuff->privsize;
+ }
+
+- LogMessage(X_INFO, "SwitchToMode - scrn: %d clock: %ld\n",
+- (int) stuff->screen, (unsigned long) stuff->dotclock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- stuff->hdisplay, stuff->hsyncstart,
+- stuff->hsyncend, stuff->htotal);
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
+- stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
+- (unsigned long) stuff->flags);
++ DebugF("SwitchToMode - scrn: %d clock: %ld\n",
++ (int) stuff->screen, (unsigned long) stuff->dotclock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ stuff->hdisplay, stuff->hsyncstart,
++ stuff->hsyncend, stuff->htotal);
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n",
++ stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
++ (unsigned long) stuff->flags);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq);
+@@ -1089,19 +1089,19 @@ ProcVidModeSwitchToMode(ClientPtr client)
+ return BadValue;
+
+ do {
+- LogMessage(X_INFO, "Checking against clock: %d (%d)\n",
+- VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock);
+- LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n",
+- VidModeGetModeValue(mode, VIDMODE_H_DISPLAY),
+- VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART),
+- VidModeGetModeValue(mode, VIDMODE_H_SYNCEND),
+- VidModeGetModeValue(mode, VIDMODE_H_TOTAL));
+- LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
+- VidModeGetModeValue(mode, VIDMODE_V_DISPLAY),
+- VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART),
+- VidModeGetModeValue(mode, VIDMODE_V_SYNCEND),
+- VidModeGetModeValue(mode, VIDMODE_V_TOTAL),
+- VidModeGetModeValue(mode, VIDMODE_FLAGS));
++ DebugF("Checking against clock: %d (%d)\n",
++ VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock);
++ DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n",
++ VidModeGetModeValue(mode, VIDMODE_H_DISPLAY),
++ VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART),
++ VidModeGetModeValue(mode, VIDMODE_H_SYNCEND),
++ VidModeGetModeValue(mode, VIDMODE_H_TOTAL));
++ DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n",
++ VidModeGetModeValue(mode, VIDMODE_V_DISPLAY),
++ VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART),
++ VidModeGetModeValue(mode, VIDMODE_V_SYNCEND),
++ VidModeGetModeValue(mode, VIDMODE_V_TOTAL),
++ VidModeGetModeValue(mode, VIDMODE_FLAGS));
+
+ if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) &&
+ MODEMATCH(mode, stuff)) {
+@@ -1109,7 +1109,7 @@ ProcVidModeSwitchToMode(ClientPtr client)
+ if (!pVidMode->SwitchMode(pScreen, mode))
+ return BadValue;
+
+- LogMessage(X_INFO, "SwitchToMode - Succeeded\n");
++ DebugF("SwitchToMode - Succeeded\n");
+ return Success;
+ }
+ } while (pVidMode->GetNextModeline(pScreen, &mode, &dotClock));
+--
+cgit v0.10.2
+
diff --git a/0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch b/0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
new file mode 100644
index 000000000000..dc2e7ef4357a
--- /dev/null
+++ b/0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
@@ -0,0 +1,16 @@
+diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
+index a531f60..f4f8749 100644
+--- a/glamor/glamor_fbo.c
++++ b/glamor/glamor_fbo.c
+@@ -352,8 +352,10 @@ _glamor_create_tex(glamor_screen_private *glamor_priv,
+ glBindTexture(GL_TEXTURE_2D, tex);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+- if (format == glamor_priv->one_channel_format && format == GL_RED)
++ if (format == glamor_priv->one_channel_format && format == GL_RED) {
++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_ZERO);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED);
++ }
+ glamor_priv->suppress_gl_out_of_memory_logging = true;
+ glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0,
+ format, GL_UNSIGNED_BYTE, NULL);
diff --git a/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch b/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
new file mode 100644
index 000000000000..adf5c7a470f0
--- /dev/null
+++ b/0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
@@ -0,0 +1,43 @@
+From 3b385105b2d19a1c55e9779ae88d775185eea231 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
+Date: Thu, 24 Mar 2016 17:42:47 +0900
+Subject: [PATCH xserver] present: Only requeue for next MSC after flip failure
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This code was added to deal with the driver present hook failing, in
+which case we need to wait for the next MSC before executing the
+presentation.
+
+However, it could also take effect in cases where the driver incorrectly
+thinks the current MSC matches the target one (e.g. due to the kernel
+interface only supporting 32-bit MSC values), in which case it could
+result in the presentation getting requeued over and over.
+
+To prevent such issues, check specifically for the target MSC
+immediately following the current MSC.
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94596
+Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+---
+ present/present.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/present/present.c b/present/present.c
+index 55f6aa7..105e2bf 100644
+--- a/present/present.c
++++ b/present/present.c
+@@ -726,7 +726,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
+ }
+
+ /* If present_flip failed, we may have to requeue for the target MSC */
+- if (msc_is_after(vblank->target_msc, crtc_msc) &&
++ if (vblank->target_msc == crtc_msc + 1 &&
+ Success == present_queue_vblank(screen,
+ vblank->crtc,
+ vblank->event_id,
+--
+2.7.4
+
diff --git a/Fix-XineramaQueryScreens-for-reverse-prime.patch b/Fix-XineramaQueryScreens-for-reverse-prime.patch
deleted file mode 100644
index fe2c9479abf8..000000000000
--- a/Fix-XineramaQueryScreens-for-reverse-prime.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff --git a/randr/rrmonitor.c b/randr/rrmonitor.c
-index c37dcf8..58041bb 100644
---- a/randr/rrmonitor.c
-+++ b/randr/rrmonitor.c
-@@ -326,7 +326,7 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
- RRMonitorSetFromClient(pScrPriv->monitors[list.client_primary], mon);
- mon++;
- } else if (list.server_primary >= 0) {
-- RRMonitorSetFromServer(pScrPriv->crtcs[list.server_primary], mon);
-+ RRMonitorSetFromServer(list.server_crtc[list.server_primary], mon);
- mon++;
- }
-
-@@ -354,8 +354,8 @@ RRMonitorMakeList(ScreenPtr screen, Bool get_active, RRMonitorPtr *monitors_ret,
-
- /* And finish with the list of crtc-inspired monitors
- */
-- for (c = 0; c < pScrPriv->numCrtcs; c++) {
-- RRCrtcPtr crtc = pScrPriv->crtcs[c];
-+ for (c = 0; c < list.num_crtcs; c++) {
-+ RRCrtcPtr crtc = list.server_crtc[c];
- if (c == list.server_primary && list.client_primary < 0)
- continue;
-
-diff --git a/randr/rroutput.c b/randr/rroutput.c
-index d12b9ba..2ba62fa 100644
---- a/randr/rroutput.c
-+++ b/randr/rroutput.c
-@@ -543,6 +543,7 @@ ProcRRSetOutputPrimary(ClientPtr client)
- WindowPtr pWin;
- rrScrPrivPtr pScrPriv;
- int ret;
-+ ScreenPtr slave;
-
- REQUEST_SIZE_MATCH(xRRSetOutputPrimaryReq);
-
-@@ -565,7 +566,18 @@ ProcRRSetOutputPrimary(ClientPtr client)
-
- pScrPriv = rrGetScrPriv(pWin->drawable.pScreen);
- if (pScrPriv)
-+ {
- RRSetPrimaryOutput(pWin->drawable.pScreen, pScrPriv, output);
-+
-+ xorg_list_for_each_entry(slave,
-+ &pWin->drawable.pScreen->output_slave_list,
-+ output_head) {
-+ rrScrPrivPtr pSlavePriv;
-+ pSlavePriv = rrGetScrPriv(slave);
-+
-+ RRSetPrimaryOutput(slave, pSlavePriv, output);
-+ }
-+ }
-
- return Success;
- }
diff --git a/PKGBUILD b/PKGBUILD
index ee67280ab079..1e4066b0043c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,11 +3,12 @@
# Contributor: AndyRTR <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgbase=xorg-server-nosystemd
pkgname=('xorg-server-nosystemd' 'xorg-server-xephyr-nosystemd' 'xorg-server-xdmx-nosystemd' 'xorg-server-xvfb-nosystemd'
'xorg-server-xnest-nosystemd' 'xorg-server-xwayland-nosystemd' 'xorg-server-common-nosystemd' 'xorg-server-devel-nosystemd')
_pkgbase=xorg-server
-pkgver=1.18.1
-pkgrel=3
+pkgver=1.18.2
+pkgrel=4
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
@@ -21,20 +22,29 @@ makedepends=('pixman' 'libx11' 'mesa-nosystemd' 'mesa-libgl-nosystemd' 'xf86drip
source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run
xvfb-run.1
- Fix-XineramaQueryScreens-for-reverse-prime.patch)
+ 0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
+ 0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+ 0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
-sha256sums=('85ec56dbeb89a951295cdf4f39bf38e515f900d35e06d4a8081b114d1520789d'
+sha256sums=('022142b07f6477d140dcc915902df326408a53ca3a352426a499f142b25d632d'
'SKIP'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- 'afc334dfe1f1eb9e557ae01771b0f774c8fc578115e1698462ab670d1b0a213a')
+ '10c66c10f4f71930e2ac3f6e07881e228ca88542af449d2c69c7744ec87335df'
+ '72755a652e72144e3f28c8fa959b4a6df5def838db3cde5077a626e97baab591'
+ '70c84bf1f7cbc818692fb56f57c8b8ef2ea057bc05380b2f797ecba742b7ce31')
prepare() {
cd "${_pkgbase}-${pkgver}"
- # FS#47151
- patch -Np1 -i ../Fix-XineramaQueryScreens-for-reverse-prime.patch
+
+ # Fix red tint in Firefox
+ patch -Np1 -i ../0001-glamor-swizzle-RED-to-0-for-alpha-textures.patch
+ # Fix flooding of Xorg log file
+ patch -Np1 -i ../0001-Xext-vidmode-Reduce-verbosity-of-GetModeLine.patch
+ # Fix FS#48549
+ patch -Np1 -i ../0001-present-Only-requeue-for-next-MSC-after-flip-failure.patch
}
build() {
diff --git a/xorg-server.install b/xorg-server.install
index 5fbc7865bca9..46bf5a90ae8a 100644
--- a/xorg-server.install
+++ b/xorg-server.install
@@ -6,8 +6,8 @@ post_upgrade() {
post_install() {
cat <<MSG
->>> xorg-server has now the ability to run without root rights.
- xserver will fail to run if not launched
+>>> xorg-server has now the ability to run without root rights with
+ the help of systemd-logind. xserver will fail to run if not launched
from the same virtual terminal as was used to log in.
Without root rights, log files will be in ~/.local/share/xorg/ directory.
@@ -15,3 +15,4 @@ post_install() {
See Xorg.wrap man page (man xorg.wrap).
MSG
}
+