Accepting request 930821 from X11:XOrg
- U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch * reverse apply this one to go back to fixed 96 dpi (gitlab fdo/xserver issue#1241) - N_fix-dpi-values.diff * back to version for xserver < 21.1.0 - Update to version 21.1.1 * s/__/@/ in inputtestdrv manpage * Make xf86CompatOutput() return NULL when there are no privates * Makefile.am: Add missing meson build files to release tarball - Update to version 21.1.0 * The meson support is now fully mature. While autotools support will still be kept for this release series, it will be dropped afterwards. * Glamor support for Xvfb. * Variable refresh rate support in the modesetting driver. * XInput 2.4 support which adds touchpad gestures. * DMX DDX has been removed. * X server now correctly reports display DPI in more cases. This may affect rendering of client applications that have their own workarounds for hi-DPI screens. * A large number of small features and various bug fixes. - updated xorg-server-provides - supersedes patches * U_Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch * U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch * U_glamor_egl-Reject-OpenGL-2.1-early-on.patch * u_render-Cast-color-masks-to-unsigned-long-before-shifting-them.patch - refreshed patches * N_fix-dpi-values.diff * N_zap_warning_xserver.diff * u_modesetting-Fix-dirty-updates-for-sw-rotation.patch * u_randr-Do-not-crash-if-slave-screen-does-not-have-pro.patch * u_vesa-Add-VBEDPMSGetCapabilities-VBEDPMSGet.patch - disabled n_xserver-optimus-autoconfig-hack.patch, which I believe is superseded by: commit 078277e4d92f05a90c4715d61b89b9d9d38d68ea Author: Dave Airlie <airlied@redhat.com> Date: Fri Aug 17 09:49:24 2012 +1000 xf86: autobind GPUs to the screen - added pkgconfig(libxcvt) - cvt binary moved to libxcvt0 package OBS-URL: https://build.opensuse.org/request/show/930821 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xorg-x11-server?expand=0&rev=397
This commit is contained in:
commit
cf9b33dc5a
@ -8,19 +8,19 @@ Zap the server if a second ctrl-alt-backspace is sent
|
||||
within 2 seconds.
|
||||
This can be enabled with a new option flag "ZapWarning"
|
||||
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Config.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Config.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||
@@ -622,6 +622,7 @@ typedef enum {
|
||||
FLAG_NOTRAPSIGNALS,
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Config.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Config.c
|
||||
@@ -621,6 +621,7 @@ configFiles(XF86ConfFilesPtr fileconf)
|
||||
typedef enum {
|
||||
FLAG_DONTVTSWITCH,
|
||||
FLAG_DONTZAP,
|
||||
+ FLAG_ZAPWARNING,
|
||||
FLAG_DONTZOOM,
|
||||
FLAG_DISABLEVIDMODE,
|
||||
FLAG_ALLOWNONLOCAL,
|
||||
@@ -659,6 +660,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||
@@ -657,6 +658,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||
{0}, FALSE},
|
||||
{FLAG_DONTZAP, "DontZap", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
@ -29,70 +29,65 @@ Index: xorg-server-1.20.5/hw/xfree86/common/xf86Config.c
|
||||
{FLAG_DONTZOOM, "DontZoom", OPTV_BOOLEAN,
|
||||
{0}, FALSE},
|
||||
{FLAG_DISABLEVIDMODE, "DisableVidModeExtension", OPTV_BOOLEAN,
|
||||
@@ -740,6 +743,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
||||
xf86GetOptValBool(FlagOptions, FLAG_NOTRAPSIGNALS, &xf86Info.notrapSignals);
|
||||
@@ -739,6 +742,7 @@ configServerFlags(XF86ConfFlagsPtr flags
|
||||
|
||||
xf86GetOptValBool(FlagOptions, FLAG_DONTVTSWITCH, &xf86Info.dontVTSwitch);
|
||||
xf86GetOptValBool(FlagOptions, FLAG_DONTZAP, &xf86Info.dontZap);
|
||||
+ xf86GetOptValBool(FlagOptions, FLAG_ZAPWARNING, &xf86Info.ZapWarning);
|
||||
xf86GetOptValBool(FlagOptions, FLAG_DONTZOOM, &xf86Info.dontZoom);
|
||||
|
||||
xf86GetOptValBool(FlagOptions, FLAG_IGNORE_ABI, &xf86Info.ignoreABI);
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Events.c
|
||||
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Events.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Events.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Events.c
|
||||
@@ -166,13 +166,25 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Events.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Events.c
|
||||
@@ -158,10 +158,22 @@ xf86ProcessActionEvent(ActionEvent actio
|
||||
DebugF("ProcessActionEvent(%d,%p)\n", (int) action, arg);
|
||||
switch (action) {
|
||||
case ACTION_TERMINATE:
|
||||
- if (!xf86Info.dontZap) {
|
||||
- xf86Msg(X_INFO, "Server zapped. Shutting down.\n");
|
||||
- GiveUp(0);
|
||||
+ if (xf86Info.dontZap)
|
||||
+ break;
|
||||
+
|
||||
+ if (xf86Info.ZapWarning) {
|
||||
+ static struct timeval LastZap = { 0, 0};
|
||||
+ struct timeval NewZap;
|
||||
+ if (xf86Info.ZapWarning) {
|
||||
+ static struct timeval LastZap = { 0, 0};
|
||||
+ struct timeval NewZap;
|
||||
+
|
||||
+ gettimeofday(&NewZap, NULL);
|
||||
+ gettimeofday(&NewZap, NULL);
|
||||
+
|
||||
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
|
||||
+ xf86OSRingBell(30, 1000, 50);
|
||||
+ LastZap = NewZap;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
#ifdef XFreeXDGA
|
||||
- DGAShutdown();
|
||||
+ DGAShutdown();
|
||||
#endif
|
||||
- GiveUp(0);
|
||||
- }
|
||||
+ if ((NewZap.tv_sec - LastZap.tv_sec) >= 2) {
|
||||
+ xf86OSRingBell(30, 1000, 50);
|
||||
+ LastZap = NewZap;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
+ GiveUp(0);
|
||||
break;
|
||||
case ACTION_NEXT_MODE:
|
||||
if (!xf86Info.dontZoom)
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Globals.c
|
||||
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Globals.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Globals.c
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Globals.c
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Globals.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Globals.c
|
||||
@@ -107,6 +107,7 @@ xf86InfoRec xf86Info = {
|
||||
.autoVTSwitch = TRUE,
|
||||
.ShareVTs = FALSE,
|
||||
.dontZap = FALSE,
|
||||
+ .ZapWarning = TRUE,
|
||||
.dontZoom = FALSE,
|
||||
.notrapSignals = FALSE,
|
||||
.currentScreen = NULL,
|
||||
Index: xorg-server-1.20.5/hw/xfree86/common/xf86Privstr.h
|
||||
#ifdef CSRG_BASED
|
||||
Index: xorg-server-21.1.0/hw/xfree86/common/xf86Privstr.h
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/hw/xfree86/common/xf86Privstr.h
|
||||
+++ xorg-server-1.20.5/hw/xfree86/common/xf86Privstr.h
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/common/xf86Privstr.h
|
||||
+++ xorg-server-21.1.0/hw/xfree86/common/xf86Privstr.h
|
||||
@@ -62,6 +62,7 @@ typedef struct {
|
||||
Bool autoVTSwitch;
|
||||
Bool ShareVTs;
|
||||
Bool dontZap;
|
||||
+ Bool ZapWarning;
|
||||
Bool dontZoom;
|
||||
Bool notrapSignals; /* don't exit cleanly - die at fault */
|
||||
|
||||
/* graphics part */
|
||||
|
@ -1,31 +0,0 @@
|
||||
From e50c85f4ebf559a3bac4817b41074c43d4691779 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Fri, 26 Oct 2018 17:47:30 -0700
|
||||
Subject: [PATCH] Fix segfault on probing a non-PCI platform device on a system
|
||||
with PCI.
|
||||
|
||||
Some Broadcom set-top-box boards have PCI busses, but the GPU is still
|
||||
probed through DT. We would dereference a null busid here in that
|
||||
case.
|
||||
|
||||
Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
---
|
||||
hw/xfree86/common/xf86platformBus.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
|
||||
index cef47da03..dadbac6c8 100644
|
||||
--- a/hw/xfree86/common/xf86platformBus.c
|
||||
+++ b/hw/xfree86/common/xf86platformBus.c
|
||||
@@ -289,7 +289,7 @@ xf86platformProbe(void)
|
||||
for (i = 0; i < xf86_num_platform_devices; i++) {
|
||||
char *busid = xf86_platform_odev_attributes(i)->busid;
|
||||
|
||||
- if (pci && (strncmp(busid, "pci:", 4) == 0)) {
|
||||
+ if (pci && busid && (strncmp(busid, "pci:", 4) == 0)) {
|
||||
platform_find_pci_info(&xf86_platform_devices[i], busid);
|
||||
}
|
||||
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,48 +0,0 @@
|
||||
Git-commit: fbdd4d679a7d020f78f7b877033b83e00f5a0f73
|
||||
Patch-Mainline: Upstream
|
||||
Author: Michal Srb <msrb@suse.com>
|
||||
Subject: dix/window: Use ConfigureWindow instead of MoveWindow
|
||||
References: bsc#1114822
|
||||
|
||||
The screensaver can regularly move its window to random offsets. It should
|
||||
use the ConfigureWindow function instead of calling the Screen's MoveWindow
|
||||
directly. Some MoveWindow implementations, such as compMoveWindow, rely on
|
||||
Screen's ConfigNotify being called first as it happens in ConfigureWindow.
|
||||
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
dix/window.c | 14 ++++++--------
|
||||
1 file changed, 6 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: xorg-server-1.20.5/dix/window.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/dix/window.c
|
||||
+++ xorg-server-1.20.5/dix/window.c
|
||||
@@ -3110,6 +3110,7 @@ int
|
||||
dixSaveScreens(ClientPtr client, int on, int mode)
|
||||
{
|
||||
int rc, i, what, type;
|
||||
+ XID vlist[2];
|
||||
|
||||
if (on == SCREEN_SAVER_FORCER) {
|
||||
if (mode == ScreenSaverReset)
|
||||
@@ -3162,14 +3163,11 @@ dixSaveScreens(ClientPtr client, int on,
|
||||
* for the root window, so PaintWindow works
|
||||
*/
|
||||
screenIsSaved = SCREEN_SAVER_OFF;
|
||||
- (*pWin->drawable.pScreen->MoveWindow) (pWin,
|
||||
- (short) (-
|
||||
- (rand() %
|
||||
- RANDOM_WIDTH)),
|
||||
- (short) (-
|
||||
- (rand() %
|
||||
- RANDOM_WIDTH)),
|
||||
- pWin->nextSib, VTMove);
|
||||
+
|
||||
+ vlist[0] = -(rand() % RANDOM_WIDTH);
|
||||
+ vlist[1] = -(rand() % RANDOM_WIDTH);
|
||||
+ ConfigureWindow(pWin, CWX | CWY, vlist, client);
|
||||
+
|
||||
screenIsSaved = SCREEN_SAVER_ON;
|
||||
}
|
||||
/*
|
@ -1,82 +0,0 @@
|
||||
From 26004df63c25061586a967f3586795a75280acc2 Mon Sep 17 00:00:00 2001
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: Wed, 25 Dec 2019 18:54:03 +0100
|
||||
Subject: [PATCH] glamor_egl: Reject OpenGL < 2.1 early on
|
||||
|
||||
The Etnaviv driver on GC2000 reports desktop OpenGL 1.3 but also OpenGL ES 2.0.
|
||||
However, with the modesetting driver, GLES2 never gets a chance:
|
||||
|
||||
[ 11233.393] Require OpenGL version 2.1 or later.
|
||||
[ 11233.393] (EE) modeset(0): Failed to initialize glamor at ScreenInit() time.
|
||||
[ 11233.393] (EE)
|
||||
Fatal server error:
|
||||
[ 11233.395] (EE) AddScreen/ScreenInit failed for driver 0
|
||||
|
||||
Let's reject old desktop GL early on, just like XWayland seems to do.
|
||||
|
||||
This is perhaps a slightly bit more complicated that one would expect, since we
|
||||
need to call eglMakeCurrent() before we query the GL version.
|
||||
|
||||
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
|
||||
---
|
||||
glamor/glamor_egl.c | 39 ++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 28 insertions(+), 11 deletions(-)
|
||||
|
||||
Index: xserver-1.20.8+0/glamor/glamor_egl.c
|
||||
===================================================================
|
||||
--- xserver-1.20.8+0.orig/glamor/glamor_egl.c
|
||||
+++ xserver-1.20.8+0/glamor/glamor_egl.c
|
||||
@@ -985,6 +985,22 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd
|
||||
config_attribs);
|
||||
}
|
||||
|
||||
+ if (glamor_egl->context != EGL_NO_CONTEXT) {
|
||||
+ if (!eglMakeCurrent(glamor_egl->display,
|
||||
+ EGL_NO_SURFACE, EGL_NO_SURFACE, glamor_egl->context)) {
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
+ "Failed to make GL context current\n");
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
+ if (epoxy_gl_version() < 21) {
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_INFO,
|
||||
+ "glamor: Ignoring GL < 2.1, falling back to GLES.\n");
|
||||
+ eglDestroyContext(glamor_egl->display, glamor_egl->context);
|
||||
+ glamor_egl->context = EGL_NO_CONTEXT;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (glamor_egl->context == EGL_NO_CONTEXT) {
|
||||
static const EGLint config_attribs[] = {
|
||||
EGL_CONTEXT_CLIENT_VERSION, 2,
|
||||
@@ -999,18 +1015,19 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd
|
||||
glamor_egl->context = eglCreateContext(glamor_egl->display,
|
||||
NULL, EGL_NO_CONTEXT,
|
||||
config_attribs);
|
||||
- }
|
||||
- if (glamor_egl->context == EGL_NO_CONTEXT) {
|
||||
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
- "glamor: Failed to create GL or GLES2 contexts\n");
|
||||
- goto error;
|
||||
- }
|
||||
|
||||
- if (!eglMakeCurrent(glamor_egl->display,
|
||||
- EGL_NO_SURFACE, EGL_NO_SURFACE, glamor_egl->context)) {
|
||||
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
- "Failed to make EGL context current\n");
|
||||
- goto error;
|
||||
+ if (glamor_egl->context == EGL_NO_CONTEXT) {
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
+ "glamor: Failed to create GL or GLES2 contexts\n");
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
+ if (!eglMakeCurrent(glamor_egl->display,
|
||||
+ EGL_NO_SURFACE, EGL_NO_SURFACE, glamor_egl->context)) {
|
||||
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
+ "Failed to make GLES2 context current\n");
|
||||
+ goto error;
|
||||
+ }
|
||||
}
|
||||
|
||||
renderer = glGetString(GL_RENDERER);
|
136
U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
Normal file
136
U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
Normal file
@ -0,0 +1,136 @@
|
||||
From 05b3c681ea2f478c0cb941c2f8279919cf78de6d Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Strnad <strnadda@gmail.com>
|
||||
Date: Tue, 19 May 2020 15:52:35 +0200
|
||||
Subject: [PATCH] hw/xfree86: Propagate physical dimensions from DRM connector
|
||||
|
||||
Physical dimmension of display can be obtained not just by configuration or
|
||||
DDC, but also directly from kernel via drmModeGetConnector(). Until now
|
||||
xserver silently discarded these values even when no configuration nor EDID
|
||||
were present and fallbacked to default DPI.
|
||||
---
|
||||
hw/xfree86/common/xf86Helper.c | 30 ++++++++++++++++++------------
|
||||
hw/xfree86/modes/xf86Crtc.c | 6 ++++--
|
||||
hw/xfree86/modes/xf86RandR12.c | 6 ++++++
|
||||
3 files changed, 28 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
|
||||
index 0389945a7..d03382d26 100644
|
||||
--- a/hw/xfree86/common/xf86Helper.c
|
||||
+++ b/hw/xfree86/common/xf86Helper.c
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "xf86Xinput.h"
|
||||
#include "xf86InPriv.h"
|
||||
#include "mivalidate.h"
|
||||
+#include "xf86Crtc.h"
|
||||
|
||||
/* For xf86GetClocks */
|
||||
#if defined(CSRG_BASED) || defined(__GNU__)
|
||||
@@ -851,8 +852,9 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
|
||||
{
|
||||
MessageType from = X_DEFAULT;
|
||||
xf86MonPtr DDC = (xf86MonPtr) (pScrn->monitor->DDC);
|
||||
- int ddcWidthmm, ddcHeightmm;
|
||||
+ int probedWidthmm, probedHeightmm;
|
||||
int widthErr, heightErr;
|
||||
+ xf86OutputPtr compat = xf86CompatOutput(pScrn);
|
||||
|
||||
/* XXX Maybe there is no need for widthmm/heightmm in ScrnInfoRec */
|
||||
pScrn->widthmm = pScrn->monitor->widthmm;
|
||||
@@ -862,11 +864,15 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
|
||||
/* DDC gives display size in mm for individual modes,
|
||||
* but cm for monitor
|
||||
*/
|
||||
- ddcWidthmm = DDC->features.hsize * 10; /* 10mm in 1cm */
|
||||
- ddcHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
|
||||
+ probedWidthmm = DDC->features.hsize * 10; /* 10mm in 1cm */
|
||||
+ probedHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
|
||||
+ }
|
||||
+ else if (compat && compat->mm_width > 0 && compat->mm_height > 0) {
|
||||
+ probedWidthmm = compat->mm_width;
|
||||
+ probedHeightmm = compat->mm_height;
|
||||
}
|
||||
else {
|
||||
- ddcWidthmm = ddcHeightmm = 0;
|
||||
+ probedWidthmm = probedHeightmm = 0;
|
||||
}
|
||||
|
||||
if (monitorResolution > 0) {
|
||||
@@ -892,15 +898,15 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
|
||||
pScrn->widthmm, pScrn->heightmm);
|
||||
|
||||
/* Warn if config and probe disagree about display size */
|
||||
- if (ddcWidthmm && ddcHeightmm) {
|
||||
+ if (probedWidthmm && probedHeightmm) {
|
||||
if (pScrn->widthmm > 0) {
|
||||
- widthErr = abs(ddcWidthmm - pScrn->widthmm);
|
||||
+ widthErr = abs(probedWidthmm - pScrn->widthmm);
|
||||
}
|
||||
else {
|
||||
widthErr = 0;
|
||||
}
|
||||
if (pScrn->heightmm > 0) {
|
||||
- heightErr = abs(ddcHeightmm - pScrn->heightmm);
|
||||
+ heightErr = abs(probedHeightmm - pScrn->heightmm);
|
||||
}
|
||||
else {
|
||||
heightErr = 0;
|
||||
@@ -909,17 +915,17 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
|
||||
/* Should include config file name for monitor here */
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
|
||||
"Probed monitor is %dx%d mm, using Displaysize %dx%d mm\n",
|
||||
- ddcWidthmm, ddcHeightmm, pScrn->widthmm,
|
||||
+ probedWidthmm, probedHeightmm, pScrn->widthmm,
|
||||
pScrn->heightmm);
|
||||
}
|
||||
}
|
||||
}
|
||||
- else if (ddcWidthmm && ddcHeightmm) {
|
||||
+ else if (probedWidthmm && probedHeightmm) {
|
||||
from = X_PROBED;
|
||||
xf86DrvMsg(pScrn->scrnIndex, from, "Display dimensions: (%d, %d) mm\n",
|
||||
- ddcWidthmm, ddcHeightmm);
|
||||
- pScrn->widthmm = ddcWidthmm;
|
||||
- pScrn->heightmm = ddcHeightmm;
|
||||
+ probedWidthmm, probedHeightmm);
|
||||
+ pScrn->widthmm = probedWidthmm;
|
||||
+ pScrn->heightmm = probedHeightmm;
|
||||
if (pScrn->widthmm > 0) {
|
||||
pScrn->xDpi =
|
||||
(int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index c6e89e66f..202791774 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -3256,8 +3256,10 @@ xf86OutputSetEDID(xf86OutputPtr output, xf86MonPtr edid_mon)
|
||||
free(output->MonInfo);
|
||||
|
||||
output->MonInfo = edid_mon;
|
||||
- output->mm_width = 0;
|
||||
- output->mm_height = 0;
|
||||
+ if (edid_mon) {
|
||||
+ output->mm_width = 0;
|
||||
+ output->mm_height = 0;
|
||||
+ }
|
||||
|
||||
if (debug_modes) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_INFO, "EDID for output %s\n",
|
||||
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
|
||||
index 50cbd043e..d4651f4e8 100644
|
||||
--- a/hw/xfree86/modes/xf86RandR12.c
|
||||
+++ b/hw/xfree86/modes/xf86RandR12.c
|
||||
@@ -806,6 +806,12 @@ xf86RandR12CreateScreenResources(ScreenPtr pScreen)
|
||||
mmWidth = output->conf_monitor->mon_width;
|
||||
mmHeight = output->conf_monitor->mon_height;
|
||||
}
|
||||
+ else if (output &&
|
||||
+ (output->mm_width > 0 &&
|
||||
+ output->mm_height > 0)) {
|
||||
+ mmWidth = output->mm_width;
|
||||
+ mmHeight = output->mm_height;
|
||||
+ }
|
||||
else {
|
||||
/*
|
||||
* Otherwise, just set the screen to DEFAULT_DPI
|
||||
--
|
||||
2.26.2
|
||||
|
@ -29,7 +29,7 @@ else
|
||||
echo ""
|
||||
echo ""
|
||||
echo "Trying to guess the right tarball"
|
||||
sh $0 --tar xserver-*.tar.xz
|
||||
sh $0 --tar xorg-server-*.tar.xz
|
||||
echo "... Please verify if the result makes sense"
|
||||
exit 2
|
||||
fi
|
||||
|
@ -19,11 +19,11 @@ Signed-off-by: Patrik Jakobsson <pjakobsson@suse.de>
|
||||
.../drivers/modesetting/drmmode_display.h | 2 +
|
||||
3 files changed, 63 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
||||
index ef4a314..deca1ed 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/driver.c
|
||||
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
||||
@@ -503,9 +503,41 @@ GetRec(ScrnInfoPtr pScrn)
|
||||
Index: xorg-server-21.1.0/hw/xfree86/drivers/modesetting/driver.c
|
||||
===================================================================
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/drivers/modesetting/driver.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/drivers/modesetting/driver.c
|
||||
@@ -515,9 +515,41 @@ GetRec(ScrnInfoPtr pScrn)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ index ef4a314..deca1ed 100644
|
||||
{
|
||||
modesettingPtr ms = modesettingPTR(scrn);
|
||||
RegionPtr dirty = DamageRegion(damage);
|
||||
@@ -520,13 +552,9 @@ dispatch_dirty_region(ScrnInfoPtr scrn,
|
||||
@@ -532,13 +564,9 @@ dispatch_dirty_region(ScrnInfoPtr scrn,
|
||||
if (!clip)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -84,7 +84,7 @@ index ef4a314..deca1ed 100644
|
||||
|
||||
/* TODO query connector property to see if this is needed */
|
||||
ret = drmModeDirtyFB(ms->fd, fb_id, clip, num_cliprects);
|
||||
@@ -549,20 +577,31 @@ static void
|
||||
@@ -561,20 +589,31 @@ static void
|
||||
dispatch_dirty(ScreenPtr pScreen)
|
||||
{
|
||||
ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
|
||||
@ -127,8 +127,8 @@ index ef4a314..deca1ed 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -574,7 +613,7 @@ dispatch_dirty_pixmap(ScrnInfoPtr scrn, xf86CrtcPtr crtc, PixmapPtr ppix)
|
||||
DamagePtr damage = ppriv->slave_damage;
|
||||
@@ -586,7 +625,7 @@ dispatch_dirty_pixmap(ScrnInfoPtr scrn,
|
||||
DamagePtr damage = ppriv->secondary_damage;
|
||||
int fb_id = ppriv->fb_id;
|
||||
|
||||
- dispatch_dirty_region(scrn, ppix, damage, fb_id);
|
||||
@ -136,11 +136,11 @@ index ef4a314..deca1ed 100644
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
index 88992f5..b29db12 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
@@ -598,7 +598,7 @@ drmmode_crtc_can_test_mode(xf86CrtcPtr crtc)
|
||||
Index: xorg-server-21.1.0/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
===================================================================
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/drivers/modesetting/drmmode_display.c
|
||||
@@ -627,7 +627,7 @@ drmmode_crtc_can_test_mode(xf86CrtcPtr c
|
||||
return ms->atomic_modeset;
|
||||
}
|
||||
|
||||
@ -149,19 +149,16 @@ index 88992f5..b29db12 100644
|
||||
drmmode_crtc_get_fb_id(xf86CrtcPtr crtc, uint32_t *fb_id, int *x, int *y)
|
||||
{
|
||||
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
|
||||
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.h b/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
index 59d79e9..0ed96ab 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
@@ -297,6 +297,8 @@ void drmmode_copy_fb(ScrnInfoPtr pScrn, drmmode_ptr drmmode);
|
||||
Index: xorg-server-21.1.0/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
===================================================================
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
+++ xorg-server-21.1.0/hw/xfree86/drivers/modesetting/drmmode_display.h
|
||||
@@ -311,6 +311,8 @@ void drmmode_copy_fb(ScrnInfoPtr pScrn,
|
||||
|
||||
int drmmode_crtc_flip(xf86CrtcPtr crtc, uint32_t fb_id, uint32_t flags, void *data);
|
||||
|
||||
+Bool drmmode_crtc_get_fb_id(xf86CrtcPtr crtc, uint32_t *fb_id, int *x, int *y);
|
||||
+
|
||||
void drmmode_set_dpms(ScrnInfoPtr scrn, int PowerManagementMode, int flags);
|
||||
|
||||
#endif
|
||||
--
|
||||
2.31.1
|
||||
void drmmode_crtc_set_vrr(xf86CrtcPtr crtc, Bool enabled);
|
||||
|
||||
|
@ -21,18 +21,18 @@ provider is there.
|
||||
randr/randr.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: xorg-server-1.20.5/randr/randr.c
|
||||
Index: xorg-server-21.1.0/randr/randr.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/randr/randr.c
|
||||
+++ xorg-server-1.20.5/randr/randr.c
|
||||
@@ -647,7 +647,9 @@ RRTellChanged(ScreenPtr pScreen)
|
||||
--- xorg-server-21.1.0.orig/randr/randr.c
|
||||
+++ xorg-server-21.1.0/randr/randr.c
|
||||
@@ -651,7 +651,9 @@ RRTellChanged(ScreenPtr pScreen)
|
||||
|
||||
xorg_list_for_each_entry(iter, &master->slave_list, slave_head) {
|
||||
pSlaveScrPriv = rrGetScrPriv(iter);
|
||||
- pSlaveScrPriv->provider->changed = FALSE;
|
||||
+ if (pSlaveScrPriv->provider) {
|
||||
+ pSlaveScrPriv->provider->changed = FALSE;
|
||||
xorg_list_for_each_entry(iter, &primary->secondary_list, secondary_head) {
|
||||
pSecondaryScrPriv = rrGetScrPriv(iter);
|
||||
- pSecondaryScrPriv->provider->changed = FALSE;
|
||||
+ if (pSecondaryScrPriv->provider) {
|
||||
+ pSecondaryScrPriv->provider->changed = FALSE;
|
||||
+ }
|
||||
if (iter->is_output_slave) {
|
||||
for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
|
||||
pSlaveScrPriv->outputs[i]->changed = FALSE;
|
||||
if (iter->is_output_secondary) {
|
||||
for (i = 0; i < pSecondaryScrPriv->numOutputs; i++)
|
||||
pSecondaryScrPriv->outputs[i]->changed = FALSE;
|
||||
|
@ -1,41 +0,0 @@
|
||||
From: Egbert Eich <eich@hammer45.arch.suse.de>
|
||||
Date: Fri May 30 19:08:00 2014 -0400
|
||||
Subject: [PATCH]render: Cast color masks to unsigned long before shifting them
|
||||
Patch-mainline: to be upstreamed
|
||||
Git-commit: 6ec9a78f9b79668239c3a1519d715cbecf186cef
|
||||
Git-repo:
|
||||
References: bnc#876757
|
||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
|
||||
The color masks in DirectFormatRec are CARD16. Shifting them may lead
|
||||
to unexpected results. Cast them to unsigned long to make sure the
|
||||
shifted value will still fit into that type.
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
---
|
||||
render/picture.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: xorg-server-1.20.5/render/picture.c
|
||||
===================================================================
|
||||
--- xorg-server-1.20.5.orig/render/picture.c
|
||||
+++ xorg-server-1.20.5/render/picture.c
|
||||
@@ -527,12 +527,12 @@ PictureMatchVisual(ScreenPtr pScreen, in
|
||||
return format;
|
||||
}
|
||||
else {
|
||||
- if (format->direct.redMask << format->direct.red ==
|
||||
- pVisual->redMask &&
|
||||
- format->direct.greenMask << format->direct.green ==
|
||||
- pVisual->greenMask &&
|
||||
- format->direct.blueMask << format->direct.blue ==
|
||||
- pVisual->blueMask) {
|
||||
+ if (((unsigned long)format->direct.redMask) <<
|
||||
+ format->direct.red == pVisual->redMask &&
|
||||
+ ((unsigned long)format->direct.greenMask) <<
|
||||
+ format->direct.green == pVisual->greenMask &&
|
||||
+ ((unsigned long)format->direct.blueMask) <<
|
||||
+ format->direct.blue == pVisual->blueMask) {
|
||||
return format;
|
||||
}
|
||||
}
|
@ -8,14 +8,14 @@ Signed-off-by: Egbert Eich <eich@suse.com>
|
||||
|
||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
||||
---
|
||||
hw/xfree86/vbe/vbe.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
hw/xfree86/vbe/vbe.h | 3 ++
|
||||
hw/xfree86/in10/vbe.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
hw/xfree86/in10/vbe.h | 3 ++
|
||||
2 files changed, 149 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c
|
||||
index 39f0cef..179d4c6 100644
|
||||
--- a/hw/xfree86/vbe/vbe.c
|
||||
+++ b/hw/xfree86/vbe/vbe.c
|
||||
Index: xorg-server-21.1.0/hw/xfree86/int10/vbe.c
|
||||
===================================================================
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/int10/vbe.c
|
||||
+++ xorg-server-21.1.0/hw/xfree86/int10/vbe.c
|
||||
@@ -20,6 +20,28 @@
|
||||
#include "vbe.h"
|
||||
#include <X11/extensions/dpmsconst.h>
|
||||
@ -91,7 +91,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return NULL;
|
||||
@@ -458,6 +486,7 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock * block)
|
||||
@@ -458,6 +486,7 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode,
|
||||
Output: AX = Status
|
||||
(All other registers are preserved)
|
||||
*/
|
||||
@ -99,7 +99,7 @@ index 39f0cef..179d4c6 100644
|
||||
pVbe->pInt10->num = 0x10;
|
||||
pVbe->pInt10->ax = 0x4f02;
|
||||
pVbe->pInt10->bx = mode;
|
||||
@@ -471,6 +500,7 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode, VbeCRTCInfoBlock * block)
|
||||
@@ -471,6 +500,7 @@ VBESetVBEMode(vbeInfoPtr pVbe, int mode,
|
||||
pVbe->pInt10->bx &= ~(1 << 11);
|
||||
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -107,7 +107,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
return (R16(pVbe->pInt10->ax) == 0x4f);
|
||||
}
|
||||
@@ -488,10 +518,12 @@ VBEGetVBEMode(vbeInfoPtr pVbe, int *mode)
|
||||
@@ -488,10 +518,12 @@ VBEGetVBEMode(vbeInfoPtr pVbe, int *mode
|
||||
BX := Current video mode
|
||||
(All other registers are preserved)
|
||||
*/
|
||||
@ -120,7 +120,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) == 0x4f) {
|
||||
*mode = R16(pVbe->pInt10->bx);
|
||||
@@ -521,12 +553,14 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
|
||||
@@ -521,12 +553,14 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode
|
||||
AX := status
|
||||
(All other registers are preserved)
|
||||
*/
|
||||
@ -135,7 +135,7 @@ index 39f0cef..179d4c6 100644
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return NULL;
|
||||
|
||||
@@ -586,6 +620,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
|
||||
@@ -586,6 +620,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveR
|
||||
(All other registers are preserved)
|
||||
*/
|
||||
|
||||
@ -143,7 +143,7 @@ index 39f0cef..179d4c6 100644
|
||||
if ((pVbe->version & 0xff00) > 0x100) {
|
||||
int screen = pVbe->pInt10->pScrn->scrnIndex;
|
||||
|
||||
@@ -597,9 +632,9 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
|
||||
@@ -597,9 +632,9 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveR
|
||||
pVbe->pInt10->dx = 0;
|
||||
pVbe->pInt10->cx = 0x000f;
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -154,7 +154,7 @@ index 39f0cef..179d4c6 100644
|
||||
if (function == MODE_SAVE) {
|
||||
int npages = (R16(pVbe->pInt10->bx) * 64) / 4096 + 1;
|
||||
|
||||
@@ -618,6 +653,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
|
||||
@@ -618,6 +653,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveR
|
||||
|
||||
if (!*memory)
|
||||
return FALSE;
|
||||
@ -162,7 +162,7 @@ index 39f0cef..179d4c6 100644
|
||||
pVbe->pInt10->num = 0x10;
|
||||
pVbe->pInt10->ax = 0x4f04;
|
||||
switch (function) {
|
||||
@@ -635,6 +671,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
|
||||
@@ -635,6 +671,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveR
|
||||
pVbe->pInt10->es = SEG_ADDR(*real_mode_pages);
|
||||
pVbe->pInt10->bx = SEG_OFF(*real_mode_pages);
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -170,7 +170,7 @@ index 39f0cef..179d4c6 100644
|
||||
return (R16(pVbe->pInt10->ax) == 0x4f);
|
||||
|
||||
}
|
||||
@@ -652,11 +689,13 @@ VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window)
|
||||
@@ -652,11 +689,13 @@ VBEBankSwitch(vbeInfoPtr pVbe, unsigned
|
||||
|
||||
Output:
|
||||
*/
|
||||
@ -184,7 +184,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return FALSE;
|
||||
@@ -690,12 +729,14 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
|
||||
@@ -690,12 +729,14 @@ VBESetGetLogicalScanlineLength(vbeInfoPt
|
||||
DX := Maximum Number of Scan Lines
|
||||
*/
|
||||
|
||||
@ -199,7 +199,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return FALSE;
|
||||
@@ -715,12 +756,15 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
|
||||
@@ -715,12 +756,15 @@ VBESetGetLogicalScanlineLength(vbeInfoPt
|
||||
Bool
|
||||
VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
|
||||
{
|
||||
@ -215,7 +215,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return FALSE;
|
||||
@@ -731,10 +775,12 @@ VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
|
||||
@@ -731,10 +775,12 @@ VBESetDisplayStart(vbeInfoPtr pVbe, int
|
||||
Bool
|
||||
VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y)
|
||||
{
|
||||
@ -228,7 +228,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return FALSE;
|
||||
@@ -761,6 +807,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
|
||||
@@ -761,6 +807,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVb
|
||||
BH := Current number of bits of color per primary
|
||||
*/
|
||||
|
||||
@ -236,7 +236,7 @@ index 39f0cef..179d4c6 100644
|
||||
pVbe->pInt10->num = 0x10;
|
||||
pVbe->pInt10->ax = 0x4f08;
|
||||
if (!bits)
|
||||
@@ -768,6 +815,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
|
||||
@@ -768,6 +815,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVb
|
||||
else
|
||||
pVbe->pInt10->bx = (bits & 0x00ff) << 8;
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -244,7 +244,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return 0;
|
||||
@@ -805,6 +853,8 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
|
||||
@@ -805,6 +853,8 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bo
|
||||
DS := Selector for memory mapped registers
|
||||
*/
|
||||
|
||||
@ -253,7 +253,7 @@ index 39f0cef..179d4c6 100644
|
||||
pVbe->pInt10->num = 0x10;
|
||||
pVbe->pInt10->ax = 0x4f09;
|
||||
if (!secondary)
|
||||
@@ -818,6 +868,7 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
|
||||
@@ -818,6 +868,7 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bo
|
||||
if (set)
|
||||
memcpy(pVbe->memory, data, num * sizeof(CARD32));
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -275,7 +275,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return NULL;
|
||||
@@ -967,6 +1020,7 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
|
||||
@@ -967,6 +1020,7 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mo
|
||||
AX := VBE Return Status
|
||||
ECX := Closest pixel clock
|
||||
*/
|
||||
@ -283,7 +283,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
pVbe->pInt10->num = 0x10;
|
||||
pVbe->pInt10->ax = 0x4f0b;
|
||||
@@ -974,6 +1028,7 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
|
||||
@@ -974,6 +1028,7 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mo
|
||||
pVbe->pInt10->cx = clock;
|
||||
pVbe->pInt10->dx = mode;
|
||||
xf86ExecX86int10(pVbe->pInt10);
|
||||
@ -291,7 +291,7 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if (R16(pVbe->pInt10->ax) != 0x4f)
|
||||
return 0;
|
||||
@@ -981,6 +1036,92 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
|
||||
@@ -981,6 +1036,92 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mo
|
||||
return pVbe->pInt10->cx;
|
||||
}
|
||||
|
||||
@ -416,11 +416,11 @@ index 39f0cef..179d4c6 100644
|
||||
|
||||
if ((pVbe->pInt10->ax & 0xff) != 0x4f) {
|
||||
xf86DrvMsgVerb(screen, X_INFO, 3, "VESA VBE PanelID invalid\n");
|
||||
diff --git a/hw/xfree86/vbe/vbe.h b/hw/xfree86/vbe/vbe.h
|
||||
index 3907c53..9b37f46 100644
|
||||
--- a/hw/xfree86/vbe/vbe.h
|
||||
+++ b/hw/xfree86/vbe/vbe.h
|
||||
@@ -336,6 +336,9 @@ VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeSaveRestorePtr vbe_sr,
|
||||
Index: xorg-server-21.1.0/hw/xfree86/int10/vbe.h
|
||||
===================================================================
|
||||
--- xorg-server-21.1.0.orig/hw/xfree86/int10/vbe.h
|
||||
+++ xorg-server-21.1.0/hw/xfree86/int10/vbe.h
|
||||
@@ -335,6 +335,9 @@ VBEVesaSaveRestore(vbeInfoPtr pVbe, vbeS
|
||||
|
||||
extern _X_EXPORT int VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int Clock);
|
||||
extern _X_EXPORT Bool VBEDPMSSet(vbeInfoPtr pVbe, int mode);
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:40aa4e96a56a81a301f15a9b10e06a22700f12b42d9e0e453c7f11d354386300
|
||||
size 5122260
|
3
xorg-server-21.1.1.tar.xz
Normal file
3
xorg-server-21.1.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:782e7fef2ca0c7cbe60a937b8bf42dac69c904fb841950fd0363e1c2346ea755
|
||||
size 4958508
|
@ -1,4 +1,4 @@
|
||||
Provides: X11_ABI_XINPUT = 24.1
|
||||
Provides: X11_ABI_VIDEODRV = 24.1
|
||||
Provides: X11_ABI_XINPUT = 24.4
|
||||
Provides: X11_ABI_VIDEODRV = 25.2
|
||||
Provides: X11_ABI_ANSIC = 0.4
|
||||
Provides: X11_ABI_EXTENSION = 10.0
|
||||
|
@ -1,3 +1,57 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 11 08:35:39 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
|
||||
* reverse apply this one to go back to fixed 96 dpi (gitlab
|
||||
fdo/xserver issue#1241)
|
||||
- N_fix-dpi-values.diff
|
||||
* back to version for xserver < 21.1.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 7 09:22:47 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- Update to version 21.1.1
|
||||
* s/__/@/ in inputtestdrv manpage
|
||||
* Make xf86CompatOutput() return NULL when there are no privates
|
||||
* Makefile.am: Add missing meson build files to release tarball
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 27 11:58:32 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
- Update to version 21.1.0
|
||||
* The meson support is now fully mature. While autotools support
|
||||
will still be kept for this release series, it will be dropped
|
||||
afterwards.
|
||||
* Glamor support for Xvfb.
|
||||
* Variable refresh rate support in the modesetting driver.
|
||||
* XInput 2.4 support which adds touchpad gestures.
|
||||
* DMX DDX has been removed.
|
||||
* X server now correctly reports display DPI in more cases. This
|
||||
may affect rendering of client applications that have their own
|
||||
workarounds for hi-DPI screens.
|
||||
* A large number of small features and various bug fixes.
|
||||
- updated xorg-server-provides
|
||||
- supersedes patches
|
||||
* U_Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
|
||||
* U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch
|
||||
* U_glamor_egl-Reject-OpenGL-2.1-early-on.patch
|
||||
* u_render-Cast-color-masks-to-unsigned-long-before-shifting-them.patch
|
||||
- refreshed patches
|
||||
* N_fix-dpi-values.diff
|
||||
* N_zap_warning_xserver.diff
|
||||
* u_modesetting-Fix-dirty-updates-for-sw-rotation.patch
|
||||
* u_randr-Do-not-crash-if-slave-screen-does-not-have-pro.patch
|
||||
* u_vesa-Add-VBEDPMSGetCapabilities-VBEDPMSGet.patch
|
||||
- disabled n_xserver-optimus-autoconfig-hack.patch, which I believe is
|
||||
superseded by:
|
||||
commit 078277e4d92f05a90c4715d61b89b9d9d38d68ea
|
||||
Author: Dave Airlie <airlied@redhat.com>
|
||||
Date: Fri Aug 17 09:49:24 2012 +1000
|
||||
|
||||
xf86: autobind GPUs to the screen
|
||||
- added pkgconfig(libxcvt)
|
||||
- cvt binary moved to libxcvt0 package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jul 30 15:07:59 UTC 2021 - Stefan Dirsch <sndirsch@suse.com>
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
%endif
|
||||
|
||||
Name: xorg-x11-server
|
||||
Version: 1.20.13
|
||||
Version: 21.1.1
|
||||
Release: 0
|
||||
URL: http://xorg.freedesktop.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -72,7 +72,6 @@ BuildRequires: pkgconfig(bigreqsproto) >= 1.1.0
|
||||
BuildRequires: pkgconfig(compositeproto)
|
||||
BuildRequires: pkgconfig(damageproto) >= 1.1
|
||||
BuildRequires: pkgconfig(dbus-1) >= 1.0
|
||||
BuildRequires: pkgconfig(dmx) >= 1.0.99.1
|
||||
BuildRequires: pkgconfig(dri) >= 7.8.0
|
||||
BuildRequires: pkgconfig(dri2proto)
|
||||
BuildRequires: pkgconfig(dri3proto)
|
||||
@ -96,6 +95,7 @@ BuildRequires: pkgconfig(inputproto) >= 1.9.99.902
|
||||
BuildRequires: pkgconfig(kbproto) >= 1.0.3
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(libxcvt)
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
BuildRequires: pkgconfig(pciaccess) >= 0.8.0
|
||||
BuildRequires: pkgconfig(pixman-1) >= 0.24
|
||||
@ -207,6 +207,7 @@ Patch1: N_default-module-path.diff
|
||||
Patch2: N_zap_warning_xserver.diff
|
||||
Patch3: N_driver-autoconfig.diff
|
||||
Patch4: N_fix_fglrx_screendepth_issue.patch
|
||||
Patch5: U_hw-xfree86-Propagate-physical-dimensions-from-DRM-co.patch
|
||||
Patch6: N_fix-dpi-values.diff
|
||||
Patch7: N_Install-Avoid-failure-on-wrapper-installation.patch
|
||||
Patch8: u_xorg-wrapper-Drop-supplemental-group-IDs.patch
|
||||
@ -219,7 +220,6 @@ Patch101: u_02-DIX-ConfineTo-Don-t-bother-about-the-bounding-box-when-grab
|
||||
# PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions
|
||||
|
||||
Patch104: u_xorg-server-xdmcp.patch
|
||||
Patch112: u_render-Cast-color-masks-to-unsigned-long-before-shifting-them.patch
|
||||
|
||||
Patch115: N_Disable-HW-Cursor-for-cirrus-and-mgag200-kernel-modules.patch
|
||||
|
||||
@ -241,14 +241,8 @@ Patch1222: b_sync-fix.patch
|
||||
|
||||
Patch1401: u_randr-Do-not-crash-if-slave-screen-does-not-have-pro.patch
|
||||
|
||||
Patch1502: U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch
|
||||
|
||||
Patch1503: u_xfree86-Do-not-claim-pci-slots-if-fb-slot-is-already.patch
|
||||
|
||||
Patch1600: U_glamor_egl-Reject-OpenGL-2.1-early-on.patch
|
||||
|
||||
Patch1801: U_Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch
|
||||
|
||||
Patch1900: u_no-lto-for-tests.patch
|
||||
|
||||
Patch1910: u_modesetting-Fix-dirty-updates-for-sw-rotation.patch
|
||||
@ -257,7 +251,7 @@ Patch1910: u_modesetting-Fix-dirty-updates-for-sw-rotation.patch
|
||||
This package contains the X.Org Server.
|
||||
|
||||
%package extra
|
||||
Summary: Additional Xservers (Xdmx, Xephyr, Xnest)
|
||||
Summary: Additional Xservers Xephyr, Xnest)
|
||||
Group: System/X11/Servers/XF86_4
|
||||
Requires: Mesa
|
||||
Requires: xkbcomp
|
||||
@ -267,7 +261,7 @@ Provides: xorg-x11-Xnest
|
||||
Obsoletes: xorg-x11-Xnest
|
||||
|
||||
%description extra
|
||||
This package contains additional Xservers (Xdmx, Xephyr, Xnest).
|
||||
This package contains additional Xservers (Xephyr, Xnest).
|
||||
|
||||
%package Xvfb
|
||||
Summary: Virtual Xserver Xvfb
|
||||
@ -368,6 +362,8 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
%patch2 -p1
|
||||
%patch3 -p0
|
||||
%patch4 -p0
|
||||
# back to 96 dpi fix
|
||||
%patch5 -p1 -R
|
||||
%patch6 -p0
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
@ -379,7 +375,6 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
%patch100 -p1
|
||||
#%patch101 -p1
|
||||
%patch104 -p1
|
||||
%patch112 -p1
|
||||
%patch115 -p1
|
||||
%patch117 -p1
|
||||
%patch160 -p1
|
||||
@ -388,7 +383,13 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
### not applicable anymore
|
||||
#%patch210 -p1
|
||||
%patch215 -p1
|
||||
%patch1000 -p1
|
||||
### apparently supersed by upstream
|
||||
### commit 078277e4d92f05a90c4715d61b89b9d9d38d68ea
|
||||
### Author: Dave Airlie <airlied@redhat.com>
|
||||
### Date: Fri Aug 17 09:49:24 2012 +1000
|
||||
###
|
||||
### xf86: autobind GPUs to the screen
|
||||
#%patch1000 -p1
|
||||
|
||||
### disabled for now
|
||||
#%patch1162 -p1
|
||||
@ -397,10 +398,7 @@ sh %{SOURCE92} --verify . %{SOURCE91}
|
||||
### patch222 might not be applicable anymore
|
||||
#%patch1222 -p1
|
||||
%patch1401 -p1
|
||||
%patch1502 -p1
|
||||
%patch1503 -p1
|
||||
%patch1600 -p1
|
||||
%patch1801 -p1
|
||||
%patch1900 -p1
|
||||
%patch1910 -p1
|
||||
|
||||
@ -422,7 +420,6 @@ export PCI_TXT_IDS_DIR=%{pci_ids_dir}
|
||||
--enable-dri2 \
|
||||
--enable-dri3 \
|
||||
--enable-glamor \
|
||||
--enable-dmx \
|
||||
--enable-xnest \
|
||||
--enable-kdrive \
|
||||
--enable-kdrive-evdev \
|
||||
@ -606,7 +603,6 @@ fi
|
||||
%dir %{_libdir}/xorg
|
||||
%{_libdir}/xorg/protocol.txt
|
||||
%{_mandir}/man1/*
|
||||
%exclude %{_mandir}/man1/Xdmx.1*
|
||||
%exclude %{_mandir}/man1/Xephyr.1*
|
||||
%exclude %{_mandir}/man1/Xnest.1*
|
||||
%dir %{_datadir}/factory
|
||||
@ -622,7 +618,6 @@ fi
|
||||
%endif
|
||||
%{_bindir}/X
|
||||
|
||||
%{_bindir}/cvt
|
||||
%{_bindir}/gtf
|
||||
%{_libdir}/xorg/modules/
|
||||
%{_mandir}/man4/*
|
||||
@ -649,19 +644,6 @@ fi
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/Xephyr
|
||||
%{_bindir}/Xnest
|
||||
%{_bindir}/Xdmx
|
||||
%{_bindir}/dmxaddinput
|
||||
%{_bindir}/dmxaddscreen
|
||||
%{_bindir}/dmxinfo
|
||||
%{_bindir}/dmxreconfig
|
||||
%{_bindir}/dmxresize
|
||||
%{_bindir}/dmxrminput
|
||||
%{_bindir}/dmxrmscreen
|
||||
%{_bindir}/dmxtodmx
|
||||
%{_bindir}/dmxwininfo
|
||||
%{_bindir}/vdltodmx
|
||||
%{_bindir}/xdmxconfig
|
||||
%{_mandir}/man1/Xdmx.1*
|
||||
%{_mandir}/man1/Xephyr.1*
|
||||
%{_mandir}/man1/Xnest.1*
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user