- 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/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=804
This commit is contained in:
Stefan Dirsch 2021-10-27 16:05:03 +00:00 committed by Git OBS Bridge
parent 87e3223980
commit 540300e204
15 changed files with 152 additions and 346 deletions

View File

@ -6,7 +6,7 @@ Index: hw/xfree86/common/xf86Helper.c
===================================================================
--- hw/xfree86/common/xf86Helper.c.orig
+++ hw/xfree86/common/xf86Helper.c
@@ -875,12 +875,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
@@ -883,12 +883,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
else if (pScrn->widthmm > 0 || pScrn->heightmm > 0) {
from = X_CONFIG;
if (pScrn->widthmm > 0) {
@ -33,9 +33,9 @@ Index: hw/xfree86/common/xf86Helper.c
}
if (pScrn->xDpi > 0 && pScrn->yDpi <= 0)
pScrn->yDpi = pScrn->xDpi;
@@ -919,12 +929,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
pScrn->widthmm = ddcWidthmm;
pScrn->heightmm = ddcHeightmm;
@@ -927,12 +937,22 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int
pScrn->widthmm = probedWidthmm;
pScrn->heightmm = probedHeightmm;
if (pScrn->widthmm > 0) {
- pScrn->xDpi =
- (int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);

View File

@ -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 */

View File

@ -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

View File

@ -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;
}
/*

View File

@ -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);

View File

@ -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

View File

@ -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);
void drmmode_crtc_set_vrr(xf86CrtcPtr crtc, Bool enabled);
#endif
--
2.31.1

View File

@ -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;
+ }
if (iter->is_output_slave) {
for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
pSlaveScrPriv->outputs[i]->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_secondary) {
for (i = 0; i < pSecondaryScrPriv->numOutputs; i++)
pSecondaryScrPriv->outputs[i]->changed = FALSE;

View File

@ -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;
}
}

View File

@ -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);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40aa4e96a56a81a301f15a9b10e06a22700f12b42d9e0e453c7f11d354386300
size 5122260

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:50c316dd8f4472cb60dfb285aa46ca6855d7626cecfd8330f6c51da743c1fe42
size 4951620

View File

@ -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

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
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>

View File

@ -40,7 +40,7 @@
%endif
Name: xorg-x11-server
Version: 1.20.13
Version: 21.1.0
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
@ -219,7 +219,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 +240,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 +250,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 +260,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
@ -379,7 +372,6 @@ sh %{SOURCE92} --verify . %{SOURCE91}
%patch100 -p1
#%patch101 -p1
%patch104 -p1
%patch112 -p1
%patch115 -p1
%patch117 -p1
%patch160 -p1
@ -388,7 +380,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 +395,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 +417,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 +600,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 +615,6 @@ fi
%endif
%{_bindir}/X
%{_bindir}/cvt
%{_bindir}/gtf
%{_libdir}/xorg/modules/
%{_mandir}/man4/*
@ -649,19 +641,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*