mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-08 17:39:24 +00:00
xserver-xorg: upgrade from 1.10.1.902 to 1.10.2 and replace part of randr-support.patch with upstream patch
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
+61
@@ -0,0 +1,61 @@
|
|||||||
|
From 50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aaron Plattner <aplattner@nvidia.com>
|
||||||
|
Date: Tue, 24 May 2011 23:02:42 +0000
|
||||||
|
Subject: randr: check rotated virtual size limits correctly
|
||||||
|
|
||||||
|
Commit d1107918d4626268803b54033a07405122278e7f introduced checks to
|
||||||
|
the RandR path that cause RRSetScreenConfig requests to fail if the
|
||||||
|
size is too large. Unfortunately, when RandR 1.1 rotation is enabled
|
||||||
|
it compares the rotated screen dimensions to the unrotated limits,
|
||||||
|
which causes 90- and 270-degree rotation to fail unless your screen
|
||||||
|
happens to be square:
|
||||||
|
|
||||||
|
X Error of failed request: BadValue (integer parameter out of range for operation)
|
||||||
|
Major opcode of failed request: 153 (RANDR)
|
||||||
|
Minor opcode of failed request: 2 (RRSetScreenConfig)
|
||||||
|
Value in failed request: 0x780
|
||||||
|
Serial number of failed request: 14
|
||||||
|
Current serial number in output stream: 14
|
||||||
|
|
||||||
|
Fix this by moving the check above the code that swaps the dimensions
|
||||||
|
based on the rotation.
|
||||||
|
|
||||||
|
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
|
||||||
|
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
|
||||||
|
Tested-by: Robert Hooker <robert.hooker@canonical.com>
|
||||||
|
Tested-by: Kent Baxley <kent.baxley@canonical.com>
|
||||||
|
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||||
|
(cherry picked from commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3)
|
||||||
|
---
|
||||||
|
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
|
||||||
|
index 1bc1a9e..da6d48d 100644
|
||||||
|
--- a/randr/rrscreen.c
|
||||||
|
+++ b/randr/rrscreen.c
|
||||||
|
@@ -910,12 +910,6 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||||
|
*/
|
||||||
|
width = mode->mode.width;
|
||||||
|
height = mode->mode.height;
|
||||||
|
- if (rotation & (RR_Rotate_90|RR_Rotate_270))
|
||||||
|
- {
|
||||||
|
- width = mode->mode.height;
|
||||||
|
- height = mode->mode.width;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
|
||||||
|
client->errorValue = width;
|
||||||
|
free(pData);
|
||||||
|
@@ -927,6 +921,12 @@ ProcRRSetScreenConfig (ClientPtr client)
|
||||||
|
return BadValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (rotation & (RR_Rotate_90|RR_Rotate_270))
|
||||||
|
+ {
|
||||||
|
+ width = mode->mode.height;
|
||||||
|
+ height = mode->mode.width;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (width != pScreen->width || height != pScreen->height)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
--
|
||||||
|
cgit v0.8.3-6-g21f6
|
||||||
+6
-35
@@ -39,22 +39,22 @@ diff -ur xorg-server-1.10.1.901//hw/xfree86/common/xf86Xinput.c git/xorg-server-
|
|||||||
+ case RR_Rotate_0:
|
+ case RR_Rotate_0:
|
||||||
+ swap_axes = 1;
|
+ swap_axes = 1;
|
||||||
+ invert[0] = 0;
|
+ invert[0] = 0;
|
||||||
+ invert[1] = 0;
|
+ invert[1] = 0;
|
||||||
+ break;
|
+ break;
|
||||||
+ case RR_Rotate_90:
|
+ case RR_Rotate_90:
|
||||||
+ swap_axes = 0;
|
+ swap_axes = 0;
|
||||||
+ invert[0] = 0;
|
+ invert[0] = 0;
|
||||||
+ invert[1] = 1;
|
+ invert[1] = 1;
|
||||||
+ break;
|
+ break;
|
||||||
+ case RR_Rotate_180:
|
+ case RR_Rotate_180:
|
||||||
+ swap_axes = 1;
|
+ swap_axes = 1;
|
||||||
+ invert[0] = 0;
|
+ invert[0] = 1;
|
||||||
+ invert[1] = 0;
|
+ invert[1] = 1;
|
||||||
+ break;
|
+ break;
|
||||||
+ case RR_Rotate_270:
|
+ case RR_Rotate_270:
|
||||||
+ swap_axes = 0;
|
+ swap_axes = 0;
|
||||||
+ invert[0] = 0;
|
+ invert[0] = 1;
|
||||||
+ invert[1] = 1;
|
+ invert[1] = 0;
|
||||||
+ break;
|
+ break;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -100,32 +100,3 @@ diff -ur xorg-server-1.10.1.901//hw/xfree86/modes/xf86Crtc.c git/xorg-server-1.1
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
diff -ur xorg-server-1.10.1.901//randr/rrscreen.c git/xorg-server-1.10.1.901//randr/rrscreen.c
|
|
||||||
--- xorg-server-1.10.1.901//randr/rrscreen.c 2011-02-25 04:27:32.000000000 +0100
|
|
||||||
+++ git/xorg-server-1.10.1.901//randr/rrscreen.c 2011-05-18 23:19:39.007760004 +0200
|
|
||||||
@@ -910,11 +910,6 @@
|
|
||||||
*/
|
|
||||||
width = mode->mode.width;
|
|
||||||
height = mode->mode.height;
|
|
||||||
- if (rotation & (RR_Rotate_90|RR_Rotate_270))
|
|
||||||
- {
|
|
||||||
- width = mode->mode.height;
|
|
||||||
- height = mode->mode.width;
|
|
||||||
- }
|
|
||||||
|
|
||||||
if (width < pScrPriv->minWidth || pScrPriv->maxWidth < width) {
|
|
||||||
client->errorValue = width;
|
|
||||||
@@ -926,7 +921,12 @@
|
|
||||||
free(pData);
|
|
||||||
return BadValue;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+ if (rotation & (RR_Rotate_90|RR_Rotate_270))
|
|
||||||
+ {
|
|
||||||
+ width = mode->mode.height;
|
|
||||||
+ height = mode->mode.width;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (width != pScreen->width || height != pScreen->height)
|
|
||||||
{
|
|
||||||
int c;
|
|
||||||
+5
-4
@@ -7,16 +7,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=74df27b6254cc88d2799b5f4f5949c00"
|
|||||||
DESCRIPTION = "the X.Org X server"
|
DESCRIPTION = "the X.Org X server"
|
||||||
DEPENDS += "mesa-dri pixman libpciaccess openssl dri2proto glproto xorg-minimal-fonts font-util-native"
|
DEPENDS += "mesa-dri pixman libpciaccess openssl dri2proto glproto xorg-minimal-fonts font-util-native"
|
||||||
PE = "2"
|
PE = "2"
|
||||||
PR = "${INC_PR}.2"
|
PR = "${INC_PR}.0"
|
||||||
|
|
||||||
SRC_URI += " \
|
SRC_URI += " \
|
||||||
|
file://50b9d3142ff90af2f7fa35b7b1bf9e5a07723dbd.patch \
|
||||||
file://randr-support.patch \
|
file://randr-support.patch \
|
||||||
file://hack-fbdev-ignore-return-mode.patch \
|
file://hack-fbdev-ignore-return-mode.patch \
|
||||||
file://hack-assume-pixman-supports-overlapped-blt.patch \
|
file://hack-assume-pixman-supports-overlapped-blt.patch \
|
||||||
file://replace-pkgconfig-sdkdir-poking.patch \
|
file://replace-pkgconfig-sdkdir-poking.patch \
|
||||||
"
|
"
|
||||||
SRC_URI[md5sum] = "64585a28abb18726d950cf1005bbcce4"
|
SRC_URI[md5sum] = "c9ba50bd44ea70da51f13100336a5484"
|
||||||
SRC_URI[sha256sum] = "b7d775891e7e7fc3001763cf5727995b81bf07b72e12d9d41db282fe625298e6"
|
SRC_URI[sha256sum] = "65264f6640568b9db8d738aec1ddd036c3ae21b7ba05b98d006759d11a72792c"
|
||||||
|
|
||||||
do_install_prepend() {
|
do_install_prepend() {
|
||||||
mkdir -p ${D}/${libdir}/X11/fonts
|
mkdir -p ${D}/${libdir}/X11/fonts
|
||||||
@@ -26,7 +27,7 @@ do_install_prepend() {
|
|||||||
PACKAGE_ARCH_ion = "${MACHINE_ARCH}"
|
PACKAGE_ARCH_ion = "${MACHINE_ARCH}"
|
||||||
XINERAMA = "${@['--disable-xinerama','--enable-xinerama'][bb.data.getVar('MACHINE',d) in ['ion']]}"
|
XINERAMA = "${@['--disable-xinerama','--enable-xinerama'][bb.data.getVar('MACHINE',d) in ['ion']]}"
|
||||||
|
|
||||||
EXTRA_OECONF += " ${CONFIG_MANAGER_OPTION} ${XINERAMA} --disable-kdrive --disable-xephyr --disable-xsdl --disable-xfake --disable-xfbdev --disable-dmx"
|
EXTRA_OECONF += " ${CONFIG_MANAGER_OPTION} ${XINERAMA} --disable-xsdl --disable-xfake --disable-xfbdev --disable-dmx"
|
||||||
EXTRA_OECONF += " --enable-dri2 --disable-unit-tests --disable-docs --disable-devel-docs"
|
EXTRA_OECONF += " --enable-dri2 --disable-unit-tests --disable-docs --disable-devel-docs"
|
||||||
|
|
||||||
export LDFLAGS += " -ldl "
|
export LDFLAGS += " -ldl "
|
||||||
Reference in New Issue
Block a user