1.15RC4
- Re-disable int10 on arm
This commit is contained in:
parent
bcd21a0039
commit
48dc8f4c68
28
0001-configure-Fix-a-typo-near-dri3-shmfence-detection.patch
Normal file
28
0001-configure-Fix-a-typo-near-dri3-shmfence-detection.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 53271cd4c761e884dd9060912e000b07bbaf0c3a Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 12 Dec 2013 10:57:40 -0500
|
||||
Subject: [PATCH] configure: Fix a typo near dri3/shmfence detection
|
||||
|
||||
" is not the mate of ].
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 8bedd35..3f2c2d0 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1218,7 +1218,7 @@ case "$DRI3,$HAVE_XSHMFENCE" in
|
||||
yes,yes | auto,yes)
|
||||
;;
|
||||
yes,no)
|
||||
- AC_MSG_ERROR("DRI3 requested, but xshmfence not found.])
|
||||
+ AC_MSG_ERROR([DRI3 requested, but xshmfence not found.])
|
||||
DRI3=no
|
||||
;;
|
||||
no,*)
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 893eb3b6920b8e703f2e10c1c71cd0f788bfb468 Mon Sep 17 00:00:00 2001
|
||||
From bd6c61de441087b808a45ff3fea4fe5a31455c5c Mon Sep 17 00:00:00 2001
|
||||
From: Robert Bragg <robert@linux.intel.com>
|
||||
Date: Thu, 12 Jan 2012 18:16:08 +0000
|
||||
Subject: [PATCH 01/38] dbe: Cleanup in CloseScreen hook not ext CloseDown
|
||||
@ -121,5 +121,5 @@ index 2002066..7733d0e 100644
|
||||
/* Per-screen DIX routines */
|
||||
Bool (*SetupBackgroundPainter) (WindowPtr /*pWin */ ,
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
From c8c5105c1d5c093675d7f571f158147f22f7572b Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 29 Oct 2013 14:33:56 +1000
|
||||
Subject: [PATCH 1/9] ephyr: xcb_connect returns an error, not NULL
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
hw/kdrive/ephyr/hostx.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
|
||||
index ee9ae45..3e01a47 100644
|
||||
--- a/hw/kdrive/ephyr/hostx.c
|
||||
+++ b/hw/kdrive/ephyr/hostx.c
|
||||
@@ -304,8 +304,8 @@ hostx_init(void)
|
||||
| XCB_EVENT_MASK_STRUCTURE_NOTIFY;
|
||||
|
||||
EPHYR_DBG("mark");
|
||||
-
|
||||
- if ((HostX.conn = xcb_connect(NULL, &HostX.screen)) == NULL) {
|
||||
+ HostX.conn = xcb_connect(NULL, &HostX.screen);
|
||||
+ if (xcb_connection_has_error(HostX.conn)) {
|
||||
fprintf(stderr, "\nXephyr cannot open host display. Is DISPLAY set?\n");
|
||||
exit(1);
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
93
0001-present-recursively-set-window-pixmaps-on-flip.patch
Normal file
93
0001-present-recursively-set-window-pixmaps-on-flip.patch
Normal file
@ -0,0 +1,93 @@
|
||||
From fe07ec19e212a68076560d243a2a935c54589068 Mon Sep 17 00:00:00 2001
|
||||
From: Keith Packard <keithp@keithp.com>
|
||||
Date: Tue, 10 Dec 2013 11:27:47 -0800
|
||||
Subject: [PATCH] present: recursively set window pixmaps on flip
|
||||
|
||||
Newly created windows inherit the pixmap of their parent, similarly,
|
||||
reparenting a tree inherits the pixmap of the destination tree.
|
||||
|
||||
Making present preserve the invariant that unredirected windows always
|
||||
have the same pixmap as their parent ensures that the above cases work
|
||||
correctly.
|
||||
|
||||
v2: name the recursive function to 'set_tree_pixmap' instead of 'set_window_pixmap'
|
||||
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
present/present.c | 44 +++++++++++++++++++++++++++++++++++++-------
|
||||
1 file changed, 37 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/present/present.c b/present/present.c
|
||||
index ffbb0b3..50bd055 100644
|
||||
--- a/present/present.c
|
||||
+++ b/present/present.c
|
||||
@@ -312,6 +312,36 @@ present_flip_idle(ScreenPtr screen)
|
||||
}
|
||||
}
|
||||
|
||||
+struct pixmap_visit {
|
||||
+ PixmapPtr old;
|
||||
+ PixmapPtr new;
|
||||
+};
|
||||
+
|
||||
+static int
|
||||
+present_set_tree_pixmap_visit(WindowPtr window, pointer data)
|
||||
+{
|
||||
+ struct pixmap_visit *visit = data;
|
||||
+ ScreenPtr screen = window->drawable.pScreen;
|
||||
+
|
||||
+ if ((*screen->GetWindowPixmap)(window) != visit->old)
|
||||
+ return WT_DONTWALKCHILDREN;
|
||||
+ (*screen->SetWindowPixmap)(window, visit->new);
|
||||
+ return WT_WALKCHILDREN;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+present_set_tree_pixmap(WindowPtr window, PixmapPtr pixmap)
|
||||
+{
|
||||
+ struct pixmap_visit visit;
|
||||
+ ScreenPtr screen = window->drawable.pScreen;
|
||||
+
|
||||
+ visit.old = (*screen->GetWindowPixmap)(window);
|
||||
+ visit.new = pixmap;
|
||||
+ if (visit.old == visit.new)
|
||||
+ return;
|
||||
+ TraverseTree(window, present_set_tree_pixmap_visit, &visit);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
present_unflip(ScreenPtr screen)
|
||||
{
|
||||
@@ -321,10 +351,10 @@ present_unflip(ScreenPtr screen)
|
||||
assert (!screen_priv->flip_pending);
|
||||
|
||||
if (screen_priv->flip_window)
|
||||
- (*screen->SetWindowPixmap)(screen_priv->flip_window,
|
||||
- (*screen->GetScreenPixmap)(screen));
|
||||
+ present_set_tree_pixmap(screen_priv->flip_window,
|
||||
+ (*screen->GetScreenPixmap)(screen));
|
||||
|
||||
- (*screen->SetWindowPixmap)(screen->root, (*screen->GetScreenPixmap)(screen));
|
||||
+ present_set_tree_pixmap(screen->root, (*screen->GetScreenPixmap)(screen));
|
||||
|
||||
/* Update the screen pixmap with the current flip pixmap contents
|
||||
*/
|
||||
@@ -527,10 +557,10 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
|
||||
* 2) Set current flip window pixmap to the new pixmap
|
||||
*/
|
||||
if (screen_priv->flip_window && screen_priv->flip_window != window)
|
||||
- (*screen->SetWindowPixmap)(screen_priv->flip_window,
|
||||
- (*screen->GetScreenPixmap)(screen));
|
||||
- (*screen->SetWindowPixmap)(vblank->window, vblank->pixmap);
|
||||
- (*screen->SetWindowPixmap)(screen->root, vblank->pixmap);
|
||||
+ present_set_tree_pixmap(screen_priv->flip_window,
|
||||
+ (*screen->GetScreenPixmap)(screen));
|
||||
+ present_set_tree_pixmap(vblank->window, vblank->pixmap);
|
||||
+ present_set_tree_pixmap(screen->root, vblank->pixmap);
|
||||
|
||||
/* Report update region as damaged
|
||||
*/
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 3818d72812f895207a0e89d0d4ebaeca941f852a Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 18 Nov 2013 11:26:46 -0500
|
||||
Subject: [PATCH] xfree86: Prefer fbdev to vesa
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
hw/xfree86/common/xf86AutoConfig.c | 17 +++++++++--------
|
||||
hw/xfree86/common/xf86Config.c | 2 +-
|
||||
2 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index cc6dcce..4c5d1d5 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -267,14 +267,6 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
if (i < (nmatches - 1))
|
||||
i = xf86PciMatchDriver(matches, nmatches);
|
||||
#endif
|
||||
- /* Fallback to platform default hardware */
|
||||
- if (i < (nmatches - 1)) {
|
||||
-#if defined(__i386__) || defined(__amd64__) || defined(__hurd__)
|
||||
- matches[i++] = xnfstrdup("vesa");
|
||||
-#elif defined(__sparc__) && !defined(sun)
|
||||
- matches[i++] = xnfstrdup("sunffb");
|
||||
-#endif
|
||||
- }
|
||||
|
||||
#if defined(__linux__)
|
||||
matches[i++] = xnfstrdup("modesetting");
|
||||
@@ -296,6 +288,15 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
#endif
|
||||
}
|
||||
#endif /* !sun */
|
||||
+
|
||||
+ /* Fallback to platform default hardware */
|
||||
+ if (i < (nmatches - 1)) {
|
||||
+#if defined(__i386__) || defined(__amd64__) || defined(__hurd__)
|
||||
+ matches[i++] = xnfstrdup("vesa");
|
||||
+#elif defined(__sparc__) && !defined(sun)
|
||||
+ matches[i++] = xnfstrdup("sunffb");
|
||||
+#endif
|
||||
+ }
|
||||
}
|
||||
|
||||
/* copy a screen section and enter the desired driver
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 8255d8d..66f98b2 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -519,7 +519,7 @@ xf86InputDriverlistFromConfig(void)
|
||||
static void
|
||||
fixup_video_driver_list(char **drivers)
|
||||
{
|
||||
- static const char *fallback_hw[4] = { "vesa", "fbdev", "wsfb", NULL };
|
||||
+ static const char *fallback_hw[4] = { "fbdev", "vesa", "wsfb", NULL };
|
||||
#ifdef XORG_WAYLAND
|
||||
static const char *fallback_wl[2] = { "wayland", NULL };
|
||||
#endif
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 7a9c524d0f68127baa0ced0a7f6b52b899a7cccb Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 29 Oct 2013 10:44:07 -0400
|
||||
Subject: [PATCH 1/6] xinerama: Export the screen region
|
||||
|
||||
damageext wants this so it can intersect subtract requests against the
|
||||
root window geometry.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
Xext/panoramiX.c | 2 +-
|
||||
Xext/panoramiXsrv.h | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
|
||||
index 2b3a570..15c38a9 100644
|
||||
--- a/Xext/panoramiX.c
|
||||
+++ b/Xext/panoramiX.c
|
||||
@@ -73,7 +73,7 @@ int PanoramiXPixWidth = 0;
|
||||
int PanoramiXPixHeight = 0;
|
||||
int PanoramiXNumScreens = 0;
|
||||
|
||||
-static RegionRec PanoramiXScreenRegion = { {0, 0, 0, 0}, NULL };
|
||||
+_X_EXPORT RegionRec PanoramiXScreenRegion = { {0, 0, 0, 0}, NULL };
|
||||
|
||||
static int PanoramiXNumDepths;
|
||||
static DepthPtr PanoramiXDepths;
|
||||
diff --git a/Xext/panoramiXsrv.h b/Xext/panoramiXsrv.h
|
||||
index 7c605fe..0fcde4f 100644
|
||||
--- a/Xext/panoramiXsrv.h
|
||||
+++ b/Xext/panoramiXsrv.h
|
||||
@@ -11,6 +11,7 @@
|
||||
extern _X_EXPORT int PanoramiXNumScreens;
|
||||
extern _X_EXPORT int PanoramiXPixWidth;
|
||||
extern _X_EXPORT int PanoramiXPixHeight;
|
||||
+extern _X_EXPORT RegionRec PanoramiXScreenRegion;
|
||||
|
||||
extern _X_EXPORT VisualID PanoramiXTranslateVisualID(int screen, VisualID orig);
|
||||
extern _X_EXPORT void PanoramiXConsolidate(void);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,60 +0,0 @@
|
||||
From 13f334e3699d8ca1fe02d07b1cbff8a348c47e49 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Wed, 2 Oct 2013 11:01:16 -0400
|
||||
Subject: [PATCH 2/6] dix: Add PostDispatchCallback
|
||||
|
||||
This is required to Xineramify the Damage extension, since we need to
|
||||
collect regions across screens. You can't quite use FlushCallback for
|
||||
this since WriteEventsToClient can itself trigger FlushCallback and you
|
||||
recurse.
|
||||
|
||||
There are probably other cases where this would be useful though, for
|
||||
example some of our abuse of BlockHandler may want to move to this
|
||||
callback.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
dix/dispatch.c | 5 ++++-
|
||||
include/dixstruct.h | 1 +
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dix/dispatch.c b/dix/dispatch.c
|
||||
index 4fecfea..53cabdf 100644
|
||||
--- a/dix/dispatch.c
|
||||
+++ b/dix/dispatch.c
|
||||
@@ -167,6 +167,7 @@ static int nextFreeClientID; /* always MIN free client ID */
|
||||
static int nClients; /* number of authorized clients */
|
||||
|
||||
CallbackListPtr ClientStateCallback;
|
||||
+CallbackListPtr PostDispatchCallback;
|
||||
|
||||
/* dispatchException & isItTimeToYield must be declared volatile since they
|
||||
* are modified by signal handlers - otherwise optimizer may assume it doesn't
|
||||
@@ -428,9 +429,11 @@ Dispatch(void)
|
||||
result = BadLength;
|
||||
else {
|
||||
result = XaceHookDispatch(client, client->majorOp);
|
||||
- if (result == Success)
|
||||
+ if (result == Success) {
|
||||
result =
|
||||
(*client->requestVector[client->majorOp]) (client);
|
||||
+ CallCallbacks(&PostDispatchCallback, &result);
|
||||
+ }
|
||||
XaceHookAuditEnd(client, result);
|
||||
}
|
||||
#ifdef XSERVER_DTRACE
|
||||
diff --git a/include/dixstruct.h b/include/dixstruct.h
|
||||
index 456e633..d55b047 100644
|
||||
--- a/include/dixstruct.h
|
||||
+++ b/include/dixstruct.h
|
||||
@@ -39,6 +39,7 @@ SOFTWARE.
|
||||
*/
|
||||
|
||||
extern _X_EXPORT CallbackListPtr ClientStateCallback;
|
||||
+extern _X_EXPORT CallbackListPtr PostDispatchCallback;
|
||||
|
||||
typedef struct {
|
||||
ClientPtr client;
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,36 +0,0 @@
|
||||
From d66832a3b8a8675f1e5f3656dcb1bbe95598f0ea Mon Sep 17 00:00:00 2001
|
||||
From: Keith Packard <keithp@keithp.com>
|
||||
Date: Thu, 14 Nov 2013 13:21:54 +1000
|
||||
Subject: [PATCH 2/9] kdrive: handle WxH as valid geometry spec
|
||||
|
||||
If a screen size was specified as WxH, the loop returned early and kdOrigin
|
||||
was never advanced. Thus, screen->origin was always 0 (or whatever was given
|
||||
at the -origin commandline flag).
|
||||
|
||||
If a screen size was given with a bit depth (WxHxD), kdOrigin would always
|
||||
advance by the current screen, offsetting the next screen.
|
||||
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
hw/kdrive/src/kdrive.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
|
||||
index f8949be..3829684 100644
|
||||
--- a/hw/kdrive/src/kdrive.c
|
||||
+++ b/hw/kdrive/src/kdrive.c
|
||||
@@ -328,7 +328,8 @@ KdParseScreen(KdScreenInfo * screen, const char *arg)
|
||||
screen->height = pixels;
|
||||
screen->height_mm = mm;
|
||||
}
|
||||
- if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y')
|
||||
+ if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y' &&
|
||||
+ (delim != '\0' || i == 0))
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9ebe5168a76b769139c5173bf86b97eaa1e40bc3 Mon Sep 17 00:00:00 2001
|
||||
From 8470f377fc36772d885f4b614f4d42443c4b812b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 16:54:55 -0400
|
||||
Subject: [PATCH 02/38] xkb: Add struct XkbCompContext
|
||||
@ -186,5 +186,5 @@ index d462957..5da3a35 100644
|
||||
LogMessage(X_ERROR, "Couldn't open compiled keymap file %s\n",
|
||||
fileName);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,630 +0,0 @@
|
||||
From 728866dbc1246a04dc614fac94b81f6baed19959 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 16 Sep 2013 15:17:26 -0400
|
||||
Subject: [PATCH 3/6] damageext: Xineramify (v6)
|
||||
|
||||
v6:
|
||||
- Clip window damages even more excruciatingly correctly
|
||||
|
||||
Screen 0 holds the "real" damage for all drawable types; the window
|
||||
report hooks for other screens look up screen 0 and pile on. Therefore
|
||||
we don't need to wrap Subtract, though we do have to be careful how we
|
||||
subtract since we need to clip to the (apparent) root window geometry.
|
||||
The real compexity is the cleverness required for deferring writing the
|
||||
events, but there's no getting around that.
|
||||
|
||||
Add is probably (still) somewhat broken since it will only hit screen 0,
|
||||
but Add really only exists for DRI1's sake, and DRI1 disables itself
|
||||
with Xinerama enabled anyway. In the absence of a use case, I'm leaving
|
||||
it unwrapped under Xinerama; if someone wants to define how it ought to
|
||||
work, be my guest.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
|
||||
stuff
|
||||
---
|
||||
Xext/panoramiX.c | 3 +
|
||||
Xext/panoramiX.h | 3 +
|
||||
damageext/damageext.c | 425 ++++++++++++++++++++++++++++++++++++++++++-----
|
||||
damageext/damageextint.h | 4 +
|
||||
4 files changed, 390 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
|
||||
index 15c38a9..ce0d072 100644
|
||||
--- a/Xext/panoramiX.c
|
||||
+++ b/Xext/panoramiX.c
|
||||
@@ -54,6 +54,7 @@ Equipment Corporation.
|
||||
#include "resource.h"
|
||||
#include "picturestr.h"
|
||||
#include "xfixesint.h"
|
||||
+#include "damageextint.h"
|
||||
#ifdef COMPOSITE
|
||||
#include "compint.h"
|
||||
#endif
|
||||
@@ -582,6 +583,7 @@ PanoramiXExtensionInit(void)
|
||||
|
||||
PanoramiXRenderInit();
|
||||
PanoramiXFixesInit();
|
||||
+ PanoramiXDamageInit();
|
||||
#ifdef COMPOSITE
|
||||
PanoramiXCompositeInit();
|
||||
#endif
|
||||
@@ -887,6 +889,7 @@ PanoramiXResetProc(ExtensionEntry * extEntry)
|
||||
|
||||
PanoramiXRenderReset();
|
||||
PanoramiXFixesReset();
|
||||
+ PanoramiXDamageReset();
|
||||
#ifdef COMPOSITE
|
||||
PanoramiXCompositeReset ();
|
||||
#endif
|
||||
diff --git a/Xext/panoramiX.h b/Xext/panoramiX.h
|
||||
index 6578dfa..b06fce4 100644
|
||||
--- a/Xext/panoramiX.h
|
||||
+++ b/Xext/panoramiX.h
|
||||
@@ -64,6 +64,9 @@ typedef struct {
|
||||
struct {
|
||||
Bool root;
|
||||
} pict;
|
||||
+ struct {
|
||||
+ Bool queued;
|
||||
+ } damage;
|
||||
char raw_data[4];
|
||||
} u;
|
||||
} PanoramiXRes;
|
||||
diff --git a/damageext/damageext.c b/damageext/damageext.c
|
||||
index 9521c26..7c86491 100644
|
||||
--- a/damageext/damageext.c
|
||||
+++ b/damageext/damageext.c
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright © 2002 Keith Packard
|
||||
+ * Copyright 2013 Red Hat, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
@@ -28,6 +29,15 @@
|
||||
#include "protocol-versions.h"
|
||||
#include "extinit.h"
|
||||
|
||||
+#ifdef PANORAMIX
|
||||
+#include "panoramiX.h"
|
||||
+#include "panoramiXsrv.h"
|
||||
+
|
||||
+static RESTYPE XRT_DAMAGE;
|
||||
+static int (*PanoramiXSaveDamageVector[XDamageNumberRequests]) (ClientPtr);
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
static unsigned char DamageReqCode;
|
||||
static int DamageEventBase;
|
||||
static RESTYPE DamageExtType;
|
||||
@@ -37,25 +47,61 @@ static DevPrivateKeyRec DamageClientPrivateKeyRec;
|
||||
#define DamageClientPrivateKey (&DamageClientPrivateKeyRec)
|
||||
|
||||
static void
|
||||
+DamageNoteCritical(ClientPtr pClient)
|
||||
+{
|
||||
+ DamageClientPtr pDamageClient = GetDamageClient(pClient);
|
||||
+
|
||||
+ /* Composite extension marks clients with manual Subwindows as critical */
|
||||
+ if (pDamageClient->critical > 0) {
|
||||
+ SetCriticalOutputPending();
|
||||
+ pClient->smart_priority = SMART_MAX_PRIORITY;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+damageGetGeometry(DrawablePtr draw, int *x, int *y, int *w, int *h)
|
||||
+{
|
||||
+#ifdef PANORAMIX
|
||||
+ if (!noPanoramiXExtension && draw->type == DRAWABLE_WINDOW) {
|
||||
+ WindowPtr win = (WindowPtr)draw;
|
||||
+
|
||||
+ if (!win->parent) {
|
||||
+ *x = screenInfo.x;
|
||||
+ *y = screenInfo.y;
|
||||
+ *w = screenInfo.width;
|
||||
+ *h = screenInfo.height;
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+ *x = draw->x;
|
||||
+ *y = draw->y;
|
||||
+ *w = draw->width;
|
||||
+ *h = draw->height;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes)
|
||||
{
|
||||
ClientPtr pClient = pDamageExt->pClient;
|
||||
- DamageClientPtr pDamageClient = GetDamageClient(pClient);
|
||||
DrawablePtr pDrawable = pDamageExt->pDrawable;
|
||||
xDamageNotifyEvent ev;
|
||||
- int i;
|
||||
+ int i, x, y, w, h;
|
||||
+
|
||||
+ damageGetGeometry(pDrawable, &x, &y, &w, &h);
|
||||
|
||||
UpdateCurrentTimeIf();
|
||||
ev = (xDamageNotifyEvent) {
|
||||
.type = DamageEventBase + XDamageNotify,
|
||||
.level = pDamageExt->level,
|
||||
.drawable = pDamageExt->drawable,
|
||||
- .damage = pDamageExt->id,
|
||||
+ .damage = pDamageExt->report_id,
|
||||
.timestamp = currentTime.milliseconds,
|
||||
- .geometry.x = pDrawable->x,
|
||||
- .geometry.y = pDrawable->y,
|
||||
- .geometry.width = pDrawable->width,
|
||||
- .geometry.height = pDrawable->height
|
||||
+ .geometry.x = x,
|
||||
+ .geometry.y = y,
|
||||
+ .geometry.width = w,
|
||||
+ .geometry.height = h
|
||||
};
|
||||
if (pBoxes) {
|
||||
for (i = 0; i < nBoxes; i++) {
|
||||
@@ -72,15 +118,12 @@ DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes)
|
||||
else {
|
||||
ev.area.x = 0;
|
||||
ev.area.y = 0;
|
||||
- ev.area.width = pDrawable->width;
|
||||
- ev.area.height = pDrawable->height;
|
||||
+ ev.area.width = w;
|
||||
+ ev.area.height = h;
|
||||
WriteEventsToClient(pClient, 1, (xEvent *) &ev);
|
||||
}
|
||||
- /* Composite extension marks clients with manual Subwindows as critical */
|
||||
- if (pDamageClient->critical > 0) {
|
||||
- SetCriticalOutputPending();
|
||||
- pClient->smart_priority = SMART_MAX_PRIORITY;
|
||||
- }
|
||||
+
|
||||
+ DamageNoteCritical(pClient);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -162,19 +205,55 @@ ProcDamageQueryVersion(ClientPtr client)
|
||||
return Success;
|
||||
}
|
||||
|
||||
+static DamageExtPtr
|
||||
+DamageExtCreate(DrawablePtr pDrawable, DamageReportLevel level,
|
||||
+ ClientPtr client, XID id, XID drawable, XID report_id,
|
||||
+ DamageReportFunc reportFunc)
|
||||
+{
|
||||
+ DamageExtPtr pDamageExt = malloc(sizeof(DamageExtRec));
|
||||
+ if (!pDamageExt)
|
||||
+ return NULL;
|
||||
+
|
||||
+ pDamageExt->id = id;
|
||||
+ pDamageExt->report_id = report_id;
|
||||
+ pDamageExt->drawable = drawable;
|
||||
+ pDamageExt->pDrawable = pDrawable;
|
||||
+ pDamageExt->level = level;
|
||||
+ pDamageExt->pClient = client;
|
||||
+ pDamageExt->pDamage = DamageCreate(reportFunc, DamageExtDestroy, level,
|
||||
+ FALSE, pDrawable->pScreen, pDamageExt);
|
||||
+ if (!pDamageExt->pDamage) {
|
||||
+ free(pDamageExt);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (!AddResource(id, DamageExtType, (pointer) pDamageExt))
|
||||
+ return NULL;
|
||||
+
|
||||
+ DamageSetReportAfterOp(pDamageExt->pDamage, TRUE);
|
||||
+ DamageRegister(pDrawable, pDamageExt->pDamage);
|
||||
+
|
||||
+ if (pDrawable->type == DRAWABLE_WINDOW) {
|
||||
+ RegionPtr pRegion = &((WindowPtr) pDrawable)->borderClip;
|
||||
+ RegionTranslate(pRegion, -pDrawable->x, -pDrawable->y);
|
||||
+ DamageReportDamage(pDamageExt->pDamage, pRegion);
|
||||
+ RegionTranslate(pRegion, pDrawable->x, pDrawable->y);
|
||||
+ }
|
||||
+
|
||||
+ return pDamageExt;
|
||||
+}
|
||||
+
|
||||
static int
|
||||
-ProcDamageCreate(ClientPtr client)
|
||||
+doDamageCreate(ClientPtr client, XID reportDrawable, XID reportDamage,
|
||||
+ DamageReportFunc reportFunc)
|
||||
{
|
||||
DrawablePtr pDrawable;
|
||||
DamageExtPtr pDamageExt;
|
||||
DamageReportLevel level;
|
||||
- RegionPtr pRegion;
|
||||
int rc;
|
||||
|
||||
REQUEST(xDamageCreateReq);
|
||||
|
||||
- REQUEST_SIZE_MATCH(xDamageCreateReq);
|
||||
- LEGAL_NEW_RESOURCE(stuff->damage, client);
|
||||
rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0,
|
||||
DixGetAttrAccess | DixReadAccess);
|
||||
if (rc != Success)
|
||||
@@ -198,39 +277,25 @@ ProcDamageCreate(ClientPtr client)
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
- pDamageExt = malloc(sizeof(DamageExtRec));
|
||||
+ pDamageExt = DamageExtCreate(pDrawable, level, client, stuff->damage,
|
||||
+ reportDrawable, reportDamage, reportFunc);
|
||||
if (!pDamageExt)
|
||||
return BadAlloc;
|
||||
- pDamageExt->id = stuff->damage;
|
||||
- pDamageExt->drawable = stuff->drawable;
|
||||
- pDamageExt->pDrawable = pDrawable;
|
||||
- pDamageExt->level = level;
|
||||
- pDamageExt->pClient = client;
|
||||
- pDamageExt->pDamage = DamageCreate(DamageExtReport,
|
||||
- DamageExtDestroy,
|
||||
- level,
|
||||
- FALSE, pDrawable->pScreen, pDamageExt);
|
||||
- if (!pDamageExt->pDamage) {
|
||||
- free(pDamageExt);
|
||||
- return BadAlloc;
|
||||
- }
|
||||
- if (!AddResource(stuff->damage, DamageExtType, (pointer) pDamageExt))
|
||||
- return BadAlloc;
|
||||
-
|
||||
- DamageSetReportAfterOp(pDamageExt->pDamage, TRUE);
|
||||
- DamageRegister(pDamageExt->pDrawable, pDamageExt->pDamage);
|
||||
-
|
||||
- if (pDrawable->type == DRAWABLE_WINDOW) {
|
||||
- pRegion = &((WindowPtr) pDrawable)->borderClip;
|
||||
- RegionTranslate(pRegion, -pDrawable->x, -pDrawable->y);
|
||||
- DamageReportDamage(pDamageExt->pDamage, pRegion);
|
||||
- RegionTranslate(pRegion, pDrawable->x, pDrawable->y);
|
||||
- }
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
||||
static int
|
||||
+ProcDamageCreate(ClientPtr client)
|
||||
+{
|
||||
+ REQUEST(xDamageCreateReq);
|
||||
+ REQUEST_SIZE_MATCH(xDamageCreateReq);
|
||||
+ LEGAL_NEW_RESOURCE(stuff->damage, client);
|
||||
+ return doDamageCreate(client, stuff->drawable, stuff->damage,
|
||||
+ DamageExtReport);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
ProcDamageDestroy(ClientPtr client)
|
||||
{
|
||||
REQUEST(xDamageDestroyReq);
|
||||
@@ -242,6 +307,88 @@ ProcDamageDestroy(ClientPtr client)
|
||||
return Success;
|
||||
}
|
||||
|
||||
+#ifdef PANORAMIX
|
||||
+static RegionPtr
|
||||
+DamageExtSubtractWindowClip(DamageExtPtr pDamageExt)
|
||||
+{
|
||||
+ WindowPtr win = (WindowPtr)pDamageExt->pDrawable;
|
||||
+ PanoramiXRes *res = NULL;
|
||||
+ RegionPtr ret;
|
||||
+ int i;
|
||||
+
|
||||
+ if (!win->parent)
|
||||
+ return &PanoramiXScreenRegion;
|
||||
+
|
||||
+ dixLookupResourceByType((void **)&res, win->drawable.id, XRT_WINDOW,
|
||||
+ serverClient, DixReadAccess);
|
||||
+ if (!res)
|
||||
+ return NULL;
|
||||
+
|
||||
+ ret = RegionCreate(NULL, 0);
|
||||
+ if (!ret)
|
||||
+ return NULL;
|
||||
+
|
||||
+ FOR_NSCREENS_FORWARD(i) {
|
||||
+ ScreenPtr screen;
|
||||
+ if (Success != dixLookupWindow(&win, res->info[i].id, serverClient,
|
||||
+ DixReadAccess))
|
||||
+ goto out;
|
||||
+
|
||||
+ screen = win->drawable.pScreen;
|
||||
+
|
||||
+ RegionTranslate(ret, -screen->x, -screen->y);
|
||||
+ if (!RegionUnion(ret, ret, &win->borderClip))
|
||||
+ goto out;
|
||||
+ RegionTranslate(ret, screen->x, screen->y);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+
|
||||
+out:
|
||||
+ RegionDestroy(ret);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+DamageExtFreeWindowClip(RegionPtr reg)
|
||||
+{
|
||||
+ if (reg != &PanoramiXScreenRegion)
|
||||
+ RegionDestroy(reg);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/*
|
||||
+ * DamageSubtract intersects with borderClip, so we must reconstruct the
|
||||
+ * protocol's perspective of same...
|
||||
+ */
|
||||
+static Bool
|
||||
+DamageExtSubtract(DamageExtPtr pDamageExt, const RegionPtr pRegion)
|
||||
+{
|
||||
+ DamagePtr pDamage = pDamageExt->pDamage;
|
||||
+
|
||||
+#ifdef PANORAMIX
|
||||
+ if (!noPanoramiXExtension) {
|
||||
+ RegionPtr damage = DamageRegion(pDamage);
|
||||
+ RegionSubtract(damage, damage, pRegion);
|
||||
+
|
||||
+ if (pDamageExt->pDrawable->type == DRAWABLE_WINDOW) {
|
||||
+ DrawablePtr pDraw = pDamageExt->pDrawable;
|
||||
+ RegionPtr clip = DamageExtSubtractWindowClip(pDamageExt);
|
||||
+ if (clip) {
|
||||
+ RegionTranslate(clip, -pDraw->x, -pDraw->y);
|
||||
+ RegionIntersect(damage, damage, clip);
|
||||
+ RegionTranslate(clip, pDraw->x, pDraw->y);
|
||||
+ DamageExtFreeWindowClip(clip);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return RegionNotEmpty(damage);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
+ return DamageSubtract(pDamage, pRegion);
|
||||
+}
|
||||
+
|
||||
static int
|
||||
ProcDamageSubtract(ClientPtr client)
|
||||
{
|
||||
@@ -261,7 +408,7 @@ ProcDamageSubtract(ClientPtr client)
|
||||
if (pRepair) {
|
||||
if (pParts)
|
||||
RegionIntersect(pParts, DamageRegion(pDamage), pRepair);
|
||||
- if (DamageSubtract(pDamage, pRepair))
|
||||
+ if (DamageExtSubtract(pDamageExt, pRepair))
|
||||
DamageExtReport(pDamage, DamageRegion(pDamage),
|
||||
(void *) pDamageExt);
|
||||
}
|
||||
@@ -271,6 +418,7 @@ ProcDamageSubtract(ClientPtr client)
|
||||
DamageEmpty(pDamage);
|
||||
}
|
||||
}
|
||||
+
|
||||
return Success;
|
||||
}
|
||||
|
||||
@@ -460,6 +608,188 @@ SDamageNotifyEvent(xDamageNotifyEvent * from, xDamageNotifyEvent * to)
|
||||
cpswaps(from->geometry.height, to->geometry.height);
|
||||
}
|
||||
|
||||
+#ifdef PANORAMIX
|
||||
+
|
||||
+static void
|
||||
+damageDispatchCallback(CallbackListPtr *cbl, void *closure, void *unused)
|
||||
+{
|
||||
+ DamageExtPtr pDamageExt = closure;
|
||||
+ RegionPtr pRegion = DamageRegion(pDamageExt->pDamage);
|
||||
+ PanoramiXRes *damage = NULL;
|
||||
+
|
||||
+ DamageExtReport(pDamageExt->pDamage, pRegion, pDamageExt);
|
||||
+ DeleteCallback(&PostDispatchCallback, damageDispatchCallback, pDamageExt);
|
||||
+
|
||||
+ dixLookupResourceByType((void **)&damage, pDamageExt->id, XRT_DAMAGE,
|
||||
+ serverClient, DixWriteAccess);
|
||||
+
|
||||
+ if (damage)
|
||||
+ damage->u.damage.queued = FALSE;
|
||||
+}
|
||||
+
|
||||
+/* for screen 0 */
|
||||
+static void
|
||||
+PanoramiXDamageQueue(DamagePtr pDamage, RegionPtr pRegion, void *closure)
|
||||
+{
|
||||
+ DamageExtPtr pDamageExt = closure;
|
||||
+ PanoramiXRes *damage = NULL;
|
||||
+
|
||||
+ /* happens on unmap? sigh xinerama */
|
||||
+ if (RegionNil(pRegion))
|
||||
+ return;
|
||||
+
|
||||
+ dixLookupResourceByType((void **)&damage, pDamageExt->report_id, XRT_DAMAGE,
|
||||
+ serverClient, DixWriteAccess);
|
||||
+
|
||||
+ if (damage) {
|
||||
+ if (!damage->u.damage.queued) {
|
||||
+ AddCallback(&PostDispatchCallback, damageDispatchCallback,
|
||||
+ pDamageExt);
|
||||
+ damage->u.damage.queued = TRUE;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ DamageNoteCritical(pDamageExt->pClient);
|
||||
+}
|
||||
+
|
||||
+/* for screens 1 to n */
|
||||
+static void
|
||||
+PanoramiXDamageAccumulate(DamagePtr pDamage, RegionPtr pRegion, void *closure)
|
||||
+{
|
||||
+ DamageExtPtr pDamageExt = closure, pDamageExt0 = NULL;
|
||||
+ PanoramiXRes *damage = NULL;
|
||||
+
|
||||
+ /* happens on unmap? sigh xinerama */
|
||||
+ if (RegionNil(pRegion))
|
||||
+ return;
|
||||
+
|
||||
+ dixLookupResourceByType((void **)&damage, pDamageExt->report_id, XRT_DAMAGE,
|
||||
+ serverClient, DixWriteAccess);
|
||||
+
|
||||
+ if (damage) {
|
||||
+ dixLookupResourceByType((void **)&pDamageExt0, damage->info[0].id,
|
||||
+ DamageExtType, serverClient, DixWriteAccess);
|
||||
+
|
||||
+ if (pDamageExt0) {
|
||||
+ DrawablePtr pDrawable = pDamageExt->pDrawable;
|
||||
+ ScreenPtr pScreen = pDrawable->pScreen;
|
||||
+
|
||||
+ if (pDrawable->type == DRAWABLE_WINDOW) {
|
||||
+ WindowPtr pWin = (WindowPtr)pDrawable;
|
||||
+
|
||||
+ if (!pWin->parent)
|
||||
+ if (RegionNotEmpty(pRegion))
|
||||
+ RegionTranslate(pRegion, pScreen->x, pScreen->y);
|
||||
+ }
|
||||
+
|
||||
+ DamageReportDamage(pDamageExt0->pDamage, pRegion);
|
||||
+ DamageEmpty(pDamageExt->pDamage);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+PanoramiXDamageCreate(ClientPtr client)
|
||||
+{
|
||||
+ PanoramiXRes *draw, *damage;
|
||||
+ int i, rc;
|
||||
+
|
||||
+ REQUEST(xDamageCreateReq);
|
||||
+
|
||||
+ REQUEST_SIZE_MATCH(xDamageCreateReq);
|
||||
+ LEGAL_NEW_RESOURCE(stuff->damage, client);
|
||||
+ rc = dixLookupResourceByClass((void **)&draw, stuff->drawable, XRC_DRAWABLE,
|
||||
+ client, DixGetAttrAccess | DixReadAccess);
|
||||
+ if (rc != Success)
|
||||
+ return rc;
|
||||
+
|
||||
+ if (!(damage = calloc(1, sizeof(PanoramiXRes))))
|
||||
+ return BadAlloc;
|
||||
+
|
||||
+ damage->type = XRT_DAMAGE;
|
||||
+ if (!AddResource(stuff->damage, XRT_DAMAGE, damage))
|
||||
+ return BadAlloc;
|
||||
+
|
||||
+ /* pixmaps exist on all screens, so just watching screen 0 works */
|
||||
+ if (draw->type == XRT_PIXMAP) {
|
||||
+ damage->info[0].id = stuff->damage;
|
||||
+
|
||||
+ rc = PanoramiXSaveDamageVector[X_DamageCreate](client);
|
||||
+ if (rc != Success) {
|
||||
+ FreeResource(damage->info[0].id, None);
|
||||
+ return rc;
|
||||
+ }
|
||||
+ } else {
|
||||
+ rc = doDamageCreate(client, stuff->drawable, stuff->damage,
|
||||
+ PanoramiXDamageQueue);
|
||||
+ if (rc == Success) {
|
||||
+ panoramix_setup_ids(damage, client, stuff->damage);
|
||||
+
|
||||
+ FOR_NSCREENS_FORWARD_SKIP(i) {
|
||||
+ stuff->damage = damage->info[i].id;
|
||||
+ stuff->drawable = draw->info[i].id;
|
||||
+ rc = doDamageCreate(client, draw->info[0].id,
|
||||
+ damage->info[0].id,
|
||||
+ PanoramiXDamageAccumulate);
|
||||
+ if (rc != Success)
|
||||
+ FreeResource(damage->info[0].id, None);
|
||||
+ }
|
||||
+ } else {
|
||||
+ FreeResource(damage->info[0].id, None);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+PanoramiXDamageDestroy(ClientPtr client)
|
||||
+{
|
||||
+ REQUEST(xDamageDestroyReq);
|
||||
+ PanoramiXRes *damage;
|
||||
+ int i, rc = Success;
|
||||
+
|
||||
+ REQUEST_SIZE_MATCH(xDamageDestroyReq);
|
||||
+
|
||||
+ rc = dixLookupResourceByType((void **)&damage, stuff->damage, XRT_DAMAGE,
|
||||
+ client, DixDestroyAccess);
|
||||
+ if (rc != Success)
|
||||
+ return rc;
|
||||
+
|
||||
+ FOR_NSCREENS_BACKWARD(i) {
|
||||
+ stuff->damage = damage->info[i].id;
|
||||
+ if (stuff->damage) {
|
||||
+ rc = PanoramiXSaveDamageVector[X_DamageDestroy](client);
|
||||
+ if (rc != Success)
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+PanoramiXDamageInit(void)
|
||||
+{
|
||||
+ XRT_DAMAGE = CreateNewResourceType(XineramaDeleteResource,
|
||||
+ "XineramaDamage");
|
||||
+
|
||||
+ memcpy(PanoramiXSaveDamageVector, ProcDamageVector,
|
||||
+ sizeof(ProcDamageVector));
|
||||
+
|
||||
+ ProcDamageVector[X_DamageCreate] = PanoramiXDamageCreate;
|
||||
+ ProcDamageVector[X_DamageDestroy] = PanoramiXDamageDestroy;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+PanoramiXDamageReset(void)
|
||||
+{
|
||||
+ memcpy(ProcDamageVector, PanoramiXSaveDamageVector,
|
||||
+ sizeof(ProcDamageVector));
|
||||
+}
|
||||
+
|
||||
+#endif /* PANORAMIX */
|
||||
+
|
||||
void
|
||||
DamageExtensionInit(void)
|
||||
{
|
||||
@@ -490,5 +820,10 @@ DamageExtensionInit(void)
|
||||
(EventSwapPtr) SDamageNotifyEvent;
|
||||
SetResourceTypeErrorValue(DamageExtType,
|
||||
extEntry->errorBase + BadDamage);
|
||||
+#ifdef PANORAMIX
|
||||
+ if (XRT_DAMAGE)
|
||||
+ SetResourceTypeErrorValue(XRT_DAMAGE,
|
||||
+ extEntry->errorBase + BadDamage);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
diff --git a/damageext/damageextint.h b/damageext/damageextint.h
|
||||
index 2723379..7319a1d 100644
|
||||
--- a/damageext/damageextint.h
|
||||
+++ b/damageext/damageextint.h
|
||||
@@ -54,6 +54,7 @@ typedef struct _DamageExt {
|
||||
DamageReportLevel level;
|
||||
ClientPtr pClient;
|
||||
XID id;
|
||||
+ XID report_id;
|
||||
XID drawable;
|
||||
} DamageExtRec, *DamageExtPtr;
|
||||
|
||||
@@ -67,4 +68,7 @@ typedef struct _DamageExt {
|
||||
void
|
||||
DamageExtSetCritical(ClientPtr pClient, Bool critical);
|
||||
|
||||
+void PanoramiXDamageInit(void);
|
||||
+void PanoramiXDamageReset(void);
|
||||
+
|
||||
#endif /* _DAMAGEEXTINT_H_ */
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,70 +0,0 @@
|
||||
From a94d945065177d73f3ee8dc0b9147264ba281136 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 29 Oct 2013 14:24:41 +1000
|
||||
Subject: [PATCH 3/9] kdrive: modify ephyr events to use POINTER_DESKTOP and
|
||||
scale them to that
|
||||
|
||||
A multi-head Xephyr instance has the pointer stuck on one screen
|
||||
because of bad coordinate calculation. The coordinates passed to
|
||||
GetPointerEvents are per-screen, so the cursor gets stuck on the left-most
|
||||
screen by default.
|
||||
|
||||
Adjust and mark the events as POINTER_DESKTOP, so the DIX
|
||||
can adjust them accordingly.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
hw/kdrive/ephyr/ephyr.c | 9 ++++++++-
|
||||
hw/kdrive/src/kdrive.h | 1 +
|
||||
hw/kdrive/src/kinput.c | 2 ++
|
||||
3 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
|
||||
index 91e949d..ef4b321 100644
|
||||
--- a/hw/kdrive/ephyr/ephyr.c
|
||||
+++ b/hw/kdrive/ephyr/ephyr.c
|
||||
@@ -959,7 +959,14 @@ ephyrProcessMouseMotion(xcb_generic_event_t *xev)
|
||||
}
|
||||
EPHYR_LOG("final (x,y):(%d,%d)\n", x, y);
|
||||
#endif
|
||||
- KdEnqueuePointerEvent(ephyrMouse, mouseState, x, y, 0);
|
||||
+
|
||||
+ /* convert coords into desktop-wide coordinates.
|
||||
+ * fill_pointer_events will convert that back to
|
||||
+ * per-screen coordinates where needed */
|
||||
+ x += screen->pScreen->x;
|
||||
+ y += screen->pScreen->y;
|
||||
+
|
||||
+ KdEnqueuePointerEvent(ephyrMouse, mouseState | KD_POINTER_DESKTOP, x, y, 0);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
|
||||
index d5d0799..296d611 100644
|
||||
--- a/hw/kdrive/src/kdrive.h
|
||||
+++ b/hw/kdrive/src/kdrive.h
|
||||
@@ -506,6 +506,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, unsigned char scan_code,
|
||||
#define KD_BUTTON_4 0x08
|
||||
#define KD_BUTTON_5 0x10
|
||||
#define KD_BUTTON_8 0x80
|
||||
+#define KD_POINTER_DESKTOP 0x40000000
|
||||
#define KD_MOUSE_DELTA 0x80000000
|
||||
|
||||
void
|
||||
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
|
||||
index d845830..abda693 100644
|
||||
--- a/hw/kdrive/src/kinput.c
|
||||
+++ b/hw/kdrive/src/kinput.c
|
||||
@@ -1895,6 +1895,8 @@ KdEnqueuePointerEvent(KdPointerInfo * pi, unsigned long flags, int rx, int ry,
|
||||
}
|
||||
else {
|
||||
dixflags = POINTER_ABSOLUTE;
|
||||
+ if (flags & KD_POINTER_DESKTOP)
|
||||
+ dixflags |= POINTER_DESKTOP;
|
||||
if (x != pi->dixdev->last.valuators[0] ||
|
||||
y != pi->dixdev->last.valuators[1])
|
||||
_KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags,
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d71fbbc66b9a014831039758105aab6bd95421a5 Mon Sep 17 00:00:00 2001
|
||||
From 7d08561178ab9384791a944bdb5797cf2ea14e1b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 17:11:03 -0400
|
||||
Subject: [PATCH 03/38] xkb: Split out code to start and finish xkbcomp
|
||||
@ -77,5 +77,5 @@ index 5da3a35..001ff46 100644
|
||||
XkbDDXOpenConfigFile(char *mapName, char *fileNameRtrn, int fileNameRtrnLen)
|
||||
{
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,35 +0,0 @@
|
||||
From cb020861deb8bfa91579de72f3860c445ed752d3 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 7 Nov 2013 13:59:30 -0500
|
||||
Subject: [PATCH 4/6] composite: Fix COW creation for Xinerama
|
||||
|
||||
Say you have two 800x600 screens left/right of each other. A window
|
||||
that's 200x200 at +700+0 in protocol coordinate space will appear to be
|
||||
at -100+0 in the coordinate space of the right hand screen. Put another
|
||||
way: windows are in the coordinate space of their root window pixmap.
|
||||
|
||||
We weren't doing this translation for the COW, so when rendering came in
|
||||
to it you'd see the top-left chunk of the COW on all screens. Cool
|
||||
effect and all, but wrong.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
composite/compoverlay.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/composite/compoverlay.c b/composite/compoverlay.c
|
||||
index d3cfaf0..575be42 100644
|
||||
--- a/composite/compoverlay.c
|
||||
+++ b/composite/compoverlay.c
|
||||
@@ -142,7 +142,7 @@ compCreateOverlayWindow(ScreenPtr pScreen)
|
||||
#endif
|
||||
|
||||
pWin = cs->pOverlayWin =
|
||||
- CreateWindow(cs->overlayWid, pRoot, 0, 0, w, h, 0,
|
||||
+ CreateWindow(cs->overlayWid, pRoot, -pScreen->x, -pScreen->y, w, h, 0,
|
||||
InputOutput, CWBackPixmap | CWOverrideRedirect, &attrs[0],
|
||||
pRoot->drawable.depth,
|
||||
serverClient, pScreen->rootVisual, &result);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,64 +0,0 @@
|
||||
From 550baf38f6096658f0bcf0ad647c4fedf93132f2 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 4 Oct 2013 10:55:52 +1000
|
||||
Subject: [PATCH 4/9] kdrive: fix cursor jumps on CursorOffScreen behavior
|
||||
|
||||
This patch fixes cursor jumps when there is a grab on the Xephyr window and
|
||||
the pointer moves outside the window.
|
||||
|
||||
So on two side-by-side 640x480 screens, a coordinate of 0/481
|
||||
triggers KdCursorOffscreen.
|
||||
|
||||
If the delta between two screens is 0, they share the same offset for
|
||||
that dimension. When searching for the new screen, the loop always rules out
|
||||
the current screen. So we get to the second screen, trigger the conditions
|
||||
where dy <= 0 and decide that this new screen is the correct one. The result
|
||||
is that whenever KdCursorOffScreen is called, the pointer jumps to the other
|
||||
screen.
|
||||
|
||||
Change to check for dy < 0 etc. so that the cursor stays on the same screen if
|
||||
there is no other screen at the target location.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
hw/kdrive/src/kinput.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
|
||||
index abda693..a9a9fa5 100644
|
||||
--- a/hw/kdrive/src/kinput.c
|
||||
+++ b/hw/kdrive/src/kinput.c
|
||||
@@ -2030,25 +2030,25 @@ KdCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
|
||||
dx = KdScreenOrigin(pNewScreen)->x - KdScreenOrigin(pScreen)->x;
|
||||
dy = KdScreenOrigin(pNewScreen)->y - KdScreenOrigin(pScreen)->y;
|
||||
if (*x < 0) {
|
||||
- if (dx <= 0 && -dx < best_x) {
|
||||
+ if (dx < 0 && -dx < best_x) {
|
||||
best_x = -dx;
|
||||
n_best_x = n;
|
||||
}
|
||||
}
|
||||
else if (*x >= pScreen->width) {
|
||||
- if (dx >= 0 && dx < best_x) {
|
||||
+ if (dx > 0 && dx < best_x) {
|
||||
best_x = dx;
|
||||
n_best_x = n;
|
||||
}
|
||||
}
|
||||
if (*y < 0) {
|
||||
- if (dy <= 0 && -dy < best_y) {
|
||||
+ if (dy < 0 && -dy < best_y) {
|
||||
best_y = -dy;
|
||||
n_best_y = n;
|
||||
}
|
||||
}
|
||||
else if (*y >= pScreen->height) {
|
||||
- if (dy >= 0 && dy < best_y) {
|
||||
+ if (dy > 0 && dy < best_y) {
|
||||
best_y = dy;
|
||||
n_best_y = n;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3f37d9a8a3ceaf888feb4994a4c61e14e903a368 Mon Sep 17 00:00:00 2001
|
||||
From 927e9c1b26b618a20d590062d346b9a53b120d1f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 9 Apr 2013 17:45:08 -0400
|
||||
Subject: [PATCH 04/38] xkb: Add XkbCompileKeymapFromString()
|
||||
@ -315,5 +315,5 @@ index f72655f..f3f0d8f 100644
|
||||
|
||||
/*
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,102 +0,0 @@
|
||||
From 0ba7fc8472f1227fd1cd51bd58048f164b8ea1ab Mon Sep 17 00:00:00 2001
|
||||
From: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Date: Tue, 12 Nov 2013 14:46:04 -0800
|
||||
Subject: [PATCH 5/9] Stop including inline assembly .il file for Solaris
|
||||
Studio builds
|
||||
|
||||
Since all the inb/outb/etc. use in the X server itself (except for
|
||||
xf86SlowBcopy) has been replaced by calls to libpciaccess, we no
|
||||
longer need to pass inline assembly files to replace the gcc inline
|
||||
assembly from hw/xfree86/common/compiler.h when building Xorg itself.
|
||||
|
||||
The .il files are still generated and installed in the SDK for the
|
||||
benefit of drivers who may use them.
|
||||
|
||||
Binary diff of before and after showed that xf86SlowBcopy was the
|
||||
only function changed across the Xorg binary and all modules built
|
||||
in the Xserver build, it just calls the outb() function now instead
|
||||
of having the outb instructions inlined, making it a slightly slower
|
||||
bcopy.
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
configure.ac | 9 ---------
|
||||
exa/Makefile.am | 4 ----
|
||||
hw/xfree86/Makefile.am | 11 -----------
|
||||
3 files changed, 24 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 4be8fcb..1e6f813 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1879,9 +1879,6 @@ if test "x$XORG" = xyes; then
|
||||
if test "${OS_MINOR}" -lt 8 ; then
|
||||
AC_MSG_ERROR([This release no longer supports Solaris versions older than Solaris 8.])
|
||||
fi
|
||||
- if test "x$SUNCC" = "xyes"; then
|
||||
- solaris_asm_inline="yes"
|
||||
- fi
|
||||
AC_CHECK_DECL([_LP64], [SOLARIS_64="yes"], [SOLARIS_64="no"])
|
||||
|
||||
case $host_cpu in
|
||||
@@ -1902,11 +1899,6 @@ if test "x$XORG" = xyes; then
|
||||
xorg@lists.freedesktop.org.]) ;;
|
||||
esac
|
||||
AC_SUBST([SOLARIS_INOUT_ARCH])
|
||||
- if test x$solaris_asm_inline = xyes ; then
|
||||
- SOLARIS_ASM_CFLAGS='$(top_srcdir)/hw/xfree86/os-support/solaris/solaris-$(SOLARIS_INOUT_ARCH).il'
|
||||
- XORG_CFLAGS="${XORG_CFLAGS} "'$(SOLARIS_ASM_CFLAGS)'
|
||||
- fi
|
||||
- AC_SUBST([SOLARIS_ASM_CFLAGS])
|
||||
;;
|
||||
gnu*)
|
||||
XORG_OS_SUBDIR="hurd"
|
||||
@@ -2012,7 +2004,6 @@ AM_CONDITIONAL([XORG_BUS_SPARC], [test "x$xorg_bus_sparc" = xyes])
|
||||
AM_CONDITIONAL([LINUX_ALPHA], [test "x$linux_alpha" = xyes])
|
||||
AM_CONDITIONAL([LNXACPI], [test "x$linux_acpi" = xyes])
|
||||
AM_CONDITIONAL([LNXAPM], [test "x$linux_apm" = xyes])
|
||||
-AM_CONDITIONAL([SOLARIS_ASM_INLINE], [test "x$solaris_asm_inline" = xyes])
|
||||
AM_CONDITIONAL([SOLARIS_VT], [test "x$solaris_vt" = xyes])
|
||||
AM_CONDITIONAL([DGA], [test "x$DGA" = xyes])
|
||||
AM_CONDITIONAL([XF86VIDMODE], [test "x$XF86VIDMODE" = xyes])
|
||||
diff --git a/exa/Makefile.am b/exa/Makefile.am
|
||||
index c1f1e86..6a09966 100644
|
||||
--- a/exa/Makefile.am
|
||||
+++ b/exa/Makefile.am
|
||||
@@ -1,9 +1,5 @@
|
||||
noinst_LTLIBRARIES = libexa.la
|
||||
|
||||
-# Override these since EXA doesn't need them and the needed files aren't
|
||||
-# built (in hw/xfree86/os-support/solaris) until after EXA is built
|
||||
-SOLARIS_ASM_CFLAGS=""
|
||||
-
|
||||
if XORG
|
||||
sdk_HEADERS = exa.h
|
||||
endif
|
||||
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
|
||||
index 485386f..15670d0 100644
|
||||
--- a/hw/xfree86/Makefile.am
|
||||
+++ b/hw/xfree86/Makefile.am
|
||||
@@ -80,17 +80,6 @@ BUILT_SOURCES = xorg.conf.example
|
||||
DISTCLEANFILES = xorg.conf.example
|
||||
EXTRA_DIST = xorgconf.cpp
|
||||
|
||||
-if SOLARIS_ASM_INLINE
|
||||
-# Needs to be built before any files are compiled when using Sun compilers
|
||||
-# so in*/out* inline definitions are properly processed.
|
||||
-
|
||||
-BUILT_SOURCES += os-support/solaris/solaris-@SOLARIS_INOUT_ARCH@.il
|
||||
-
|
||||
-os-support/solaris/solaris-@SOLARIS_INOUT_ARCH@.il:
|
||||
- cd os-support/solaris ; \
|
||||
- $(MAKE) $(AM_MAKEFLAGS) solaris-@SOLARIS_INOUT_ARCH@.il
|
||||
-endif
|
||||
-
|
||||
# Without logdir, X will post an error on the terminal and will not start
|
||||
install-data-local:
|
||||
$(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir)
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,55 +0,0 @@
|
||||
From b355ac5f3ab8cea52ebb61271247cb1cded6f9bf Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 4 Nov 2013 17:49:33 -0500
|
||||
Subject: [PATCH 5/6] fixes: Fix PanoramiXSetPictureClipRegion for window
|
||||
pictures
|
||||
|
||||
Windows in Xinerama are in the coordinate space of their root window
|
||||
pixmap, not in protocol space. This fixes 'xcompmgr -n' when Xinerama
|
||||
is active.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
xfixes/region.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/xfixes/region.c b/xfixes/region.c
|
||||
index 0e9ca44..eb4a082 100644
|
||||
--- a/xfixes/region.c
|
||||
+++ b/xfixes/region.c
|
||||
@@ -886,6 +886,8 @@ PanoramiXFixesSetPictureClipRegion(ClientPtr client)
|
||||
REQUEST(xXFixesSetPictureClipRegionReq);
|
||||
int result = Success, j;
|
||||
PanoramiXRes *pict;
|
||||
+ PicturePtr pPicture;
|
||||
+ RegionPtr reg = NULL;
|
||||
|
||||
REQUEST_SIZE_MATCH(xXFixesSetPictureClipRegionReq);
|
||||
|
||||
@@ -896,10 +898,23 @@ PanoramiXFixesSetPictureClipRegion(ClientPtr client)
|
||||
return result;
|
||||
}
|
||||
|
||||
+ VERIFY_PICTURE(pPicture, stuff->picture, client, DixSetAttrAccess);
|
||||
+ if (pPicture->pDrawable && pPicture->pDrawable->type == DRAWABLE_WINDOW)
|
||||
+ VERIFY_REGION_OR_NONE(reg, stuff->region, client, DixReadAccess);
|
||||
+
|
||||
FOR_NSCREENS_BACKWARD(j) {
|
||||
+ ScreenPtr screen = screenInfo.screens[j];
|
||||
stuff->picture = pict->info[j].id;
|
||||
+
|
||||
+ if (reg)
|
||||
+ RegionTranslate(reg, -screen->x, -screen->y);
|
||||
+
|
||||
result =
|
||||
(*PanoramiXSaveXFixesVector[X_XFixesSetPictureClipRegion]) (client);
|
||||
+
|
||||
+ if (reg)
|
||||
+ RegionTranslate(reg, screen->x, screen->y);
|
||||
+
|
||||
if (result != Success)
|
||||
break;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 92b914a0d1df9d53bdb0e69d8acef8b7a6ee969d Mon Sep 17 00:00:00 2001
|
||||
From efa65f0bd25889d34b690b91839a0b36d5864b39 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Tue, 21 Jun 2011 21:28:31 -0400
|
||||
Subject: [PATCH 05/38] os: Add a function to create a client for an fd
|
||||
@ -22,7 +22,7 @@ index b76ab6e..8ad9af0 100644
|
||||
|
||||
#endif /* OPAQUE_H */
|
||||
diff --git a/include/os.h b/include/os.h
|
||||
index 450e1a8..2a24f4b 100644
|
||||
index 9b67294..c36d09a 100644
|
||||
--- a/include/os.h
|
||||
+++ b/include/os.h
|
||||
@@ -166,8 +166,9 @@ extern _X_EXPORT void MakeClientGrabImpervious(ClientPtr /*client */ );
|
||||
@ -116,7 +116,7 @@ index 162e1d9..a95e7da 100644
|
||||
+
|
||||
#endif
|
||||
diff --git a/os/utils.c b/os/utils.c
|
||||
index fb20da7..42aa13b 100644
|
||||
index 608ee6a..a0cf951 100644
|
||||
--- a/os/utils.c
|
||||
+++ b/os/utils.c
|
||||
@@ -805,7 +805,11 @@ ProcessCommandLine(int argc, char *argv[])
|
||||
@ -133,5 +133,5 @@ index fb20da7..42aa13b 100644
|
||||
argv[i]);
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0de4805467ee2491890fd4a0e4261f397eb16584 Mon Sep 17 00:00:00 2001
|
||||
From f5767856b6dc214a7beb7c1f914a2e491da3f0c7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Thu, 21 Jul 2011 09:55:46 -0700
|
||||
Subject: [PATCH 06/38] Export xf86NewInputDevice and xf86AllocateInput
|
||||
@ -40,5 +40,5 @@ index 35c38a5..ff3d894 100644
|
||||
/* xf86Helper.c */
|
||||
extern _X_EXPORT void xf86AddInputDriver(InputDriverPtr driver, pointer module,
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
||||
|
@ -1,50 +0,0 @@
|
||||
From ad2ba329d91157cd5ad09d871d0d5a74998d2518 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Mon, 4 Nov 2013 17:49:34 -0500
|
||||
Subject: [PATCH 6/6] fixes: Fix PanoramiXSetWindowShapeRegion
|
||||
|
||||
Windows in Xinerama are in the coordinate space of their root window
|
||||
pixmap, not in protocol space.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
---
|
||||
xfixes/region.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/xfixes/region.c b/xfixes/region.c
|
||||
index eb4a082..752cef1 100644
|
||||
--- a/xfixes/region.c
|
||||
+++ b/xfixes/region.c
|
||||
@@ -857,6 +857,7 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client)
|
||||
{
|
||||
int result = Success, j;
|
||||
PanoramiXRes *win;
|
||||
+ RegionPtr reg = NULL;
|
||||
|
||||
REQUEST(xXFixesSetWindowShapeRegionReq);
|
||||
|
||||
@@ -869,10 +870,21 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client)
|
||||
return result;
|
||||
}
|
||||
|
||||
+ VERIFY_REGION_OR_NONE(reg, stuff->region, client, DixReadAccess);
|
||||
+
|
||||
FOR_NSCREENS_FORWARD(j) {
|
||||
+ ScreenPtr screen = screenInfo.screens[j];
|
||||
stuff->dest = win->info[j].id;
|
||||
+
|
||||
+ if (reg)
|
||||
+ RegionTranslate(reg, -screen->x, -screen->y);
|
||||
+
|
||||
result =
|
||||
(*PanoramiXSaveXFixesVector[X_XFixesSetWindowShapeRegion]) (client);
|
||||
+
|
||||
+ if (reg)
|
||||
+ RegionTranslate(reg, screen->x, screen->y);
|
||||
+
|
||||
if (result != Success)
|
||||
break;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,41 +0,0 @@
|
||||
From 8ff7e32c3ef7b0c13c4ab9664f651e9782d35a85 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 13 Nov 2013 17:14:11 +1000
|
||||
Subject: [PATCH 6/9] include: export key_is_down and friends
|
||||
|
||||
VNC needs key_is_down to check if a key is processed as down before it
|
||||
simulates various key releases. Make it available, because I seriously can't
|
||||
be bothered thinking about how to rewrite VNC to not need that.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Acked-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
include/input.h | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/input.h b/include/input.h
|
||||
index 350daba..2d5e531 100644
|
||||
--- a/include/input.h
|
||||
+++ b/include/input.h
|
||||
@@ -244,12 +244,12 @@ typedef struct _InputAttributes {
|
||||
#define KEY_POSTED 2
|
||||
#define BUTTON_POSTED 2
|
||||
|
||||
-extern void set_key_down(DeviceIntPtr pDev, int key_code, int type);
|
||||
-extern void set_key_up(DeviceIntPtr pDev, int key_code, int type);
|
||||
-extern int key_is_down(DeviceIntPtr pDev, int key_code, int type);
|
||||
-extern void set_button_down(DeviceIntPtr pDev, int button, int type);
|
||||
-extern void set_button_up(DeviceIntPtr pDev, int button, int type);
|
||||
-extern int button_is_down(DeviceIntPtr pDev, int button, int type);
|
||||
+extern _X_EXPORT void set_key_down(DeviceIntPtr pDev, int key_code, int type);
|
||||
+extern _X_EXPORT void set_key_up(DeviceIntPtr pDev, int key_code, int type);
|
||||
+extern _X_EXPORT int key_is_down(DeviceIntPtr pDev, int key_code, int type);
|
||||
+extern _X_EXPORT void set_button_down(DeviceIntPtr pDev, int button, int type);
|
||||
+extern _X_EXPORT void set_button_up(DeviceIntPtr pDev, int button, int type);
|
||||
+extern _X_EXPORT int button_is_down(DeviceIntPtr pDev, int button, int type);
|
||||
|
||||
extern void InitCoreDevices(void);
|
||||
extern void InitXTestDevices(void);
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 149dba7f44e01b88fd9c2aba1dfc707c6917bae5 Mon Sep 17 00:00:00 2001
|
||||
From 65f033e38116ed4ebf318a7521190536e8fc6b1c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
|
||||
Date: Fri, 18 Sep 2009 22:09:03 -0400
|
||||
Subject: [PATCH 08/38] Add redirect window for input device feature
|
||||
Subject: [PATCH 07/38] Add redirect window for input device feature
|
||||
|
||||
---
|
||||
Xi/exevents.c | 13 +++++++++++++
|
||||
@ -85,5 +85,5 @@ index dc36c5d..09471cf 100644
|
||||
|
||||
typedef struct _KeyClassRec {
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,65 +0,0 @@
|
||||
From 6eb7ab0f4fc69fe1bf8ee0477e8e8b32ede44e43 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
|
||||
Date: Fri, 18 Sep 2009 22:02:43 -0400
|
||||
Subject: [PATCH 07/38] Export CompositeRedirectSubwindows and
|
||||
CompositeUnRedirectSubwindows
|
||||
|
||||
---
|
||||
composite/compalloc.c | 11 +++++++++++
|
||||
composite/compositeext.h | 4 ++++
|
||||
2 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/composite/compalloc.c b/composite/compalloc.c
|
||||
index b7d731e..98b27b1 100644
|
||||
--- a/composite/compalloc.c
|
||||
+++ b/composite/compalloc.c
|
||||
@@ -46,6 +46,7 @@
|
||||
#endif
|
||||
|
||||
#include "compint.h"
|
||||
+#include "compositeext.h"
|
||||
|
||||
static void
|
||||
compScreenUpdate(ScreenPtr pScreen)
|
||||
@@ -411,6 +412,11 @@ compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return Success;
|
||||
}
|
||||
|
||||
+int CompositeRedirectSubwindows (WindowPtr pWin, int update)
|
||||
+{
|
||||
+ return compRedirectSubwindows (serverClient, pWin, update);
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Free one of the per-client per-subwindows resources,
|
||||
* which frees one redirect per subwindow
|
||||
@@ -482,6 +488,11 @@ compUnredirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
+int CompositeUnRedirectSubwindows (WindowPtr pWin, int update)
|
||||
+{
|
||||
+ return compUnredirectSubwindows (serverClient, pWin, update);
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* Add redirection information for one subwindow (during reparent)
|
||||
*/
|
||||
diff --git a/composite/compositeext.h b/composite/compositeext.h
|
||||
index 0b148f0..a072966 100644
|
||||
--- a/composite/compositeext.h
|
||||
+++ b/composite/compositeext.h
|
||||
@@ -34,6 +34,10 @@
|
||||
extern _X_EXPORT Bool CompositeRegisterAlternateVisuals(ScreenPtr pScreen,
|
||||
VisualID * vids,
|
||||
int nVisuals);
|
||||
+extern _X_EXPORT int CompositeRedirectSubwindows(WindowPtr pWin,
|
||||
+ int update);
|
||||
+extern _X_EXPORT int CompositeUnRedirectSubwindows (WindowPtr pWin,
|
||||
+ int update);
|
||||
|
||||
extern _X_EXPORT RESTYPE CompositeClientWindowType;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,36 +0,0 @@
|
||||
From d7ee27e5e415778240919082c83a65226c6f17e6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
|
||||
Date: Tue, 29 Oct 2013 12:09:25 -0400
|
||||
Subject: [PATCH 7/9] test: build the touch test only when building Xorg
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
Signed-off-by: Dan Horák <dan@danny.cz>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
test/Makefile.am | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/Makefile.am b/test/Makefile.am
|
||||
index e59c412..2852bb3 100644
|
||||
--- a/test/Makefile.am
|
||||
+++ b/test/Makefile.am
|
||||
@@ -1,11 +1,11 @@
|
||||
if ENABLE_UNIT_TESTS
|
||||
SUBDIRS= .
|
||||
-noinst_PROGRAMS = list string touch
|
||||
+noinst_PROGRAMS = list string
|
||||
if XORG
|
||||
# Tests that require at least some DDX functions in order to fully link
|
||||
# For now, requires xf86 ddx, could be adjusted to use another
|
||||
SUBDIRS += xi2
|
||||
-noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging
|
||||
+noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch
|
||||
endif
|
||||
check_LTLIBRARIES = libxservertest.la
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9c78591012c5ea0e5cd729b8b20eddce825295ed Mon Sep 17 00:00:00 2001
|
||||
From 39fddd5e087ee7681e7a26182dd7398dd64bc43f Mon Sep 17 00:00:00 2001
|
||||
From: Tiago Vignatti <tiago.vignatti@intel.com>
|
||||
Date: Wed, 21 Aug 2013 21:23:09 -0700
|
||||
Subject: [PATCH 09/38] dri2: Introduce a third version of the AuthMagic
|
||||
Subject: [PATCH 08/38] dri2: Introduce a third version of the AuthMagic
|
||||
function
|
||||
|
||||
This most recent version takes a client pointer to allow xwayland to
|
||||
@ -91,7 +91,7 @@ index 1e7afdd..38b4f58 100644
|
||||
DrawablePtr pDraw,
|
||||
XID id,
|
||||
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
|
||||
index e1decec..4ab0186 100644
|
||||
index ffd66fa..b858213 100644
|
||||
--- a/hw/xfree86/dri2/dri2ext.c
|
||||
+++ b/hw/xfree86/dri2/dri2ext.c
|
||||
@@ -136,11 +136,23 @@ ProcDRI2Connect(ClientPtr client)
|
||||
@ -140,5 +140,5 @@ index e1decec..4ab0186 100644
|
||||
return Success;
|
||||
}
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,32 +0,0 @@
|
||||
From d1440783a7367ff0d0c47d256bbca3b3cf8a5034 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Tue, 29 Oct 2013 12:09:26 -0400
|
||||
Subject: [PATCH 8/9] xfree86: return NULL for compat output if no outputs.
|
||||
|
||||
With outputless GPUs showing up we crash here if there are not outputs
|
||||
try and recover with a bit of grace.
|
||||
|
||||
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
hw/xfree86/modes/xf86Crtc.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
|
||||
index 2a02c85..a441fd1 100644
|
||||
--- a/hw/xfree86/modes/xf86Crtc.c
|
||||
+++ b/hw/xfree86/modes/xf86Crtc.c
|
||||
@@ -1863,6 +1863,9 @@ SetCompatOutput(xf86CrtcConfigPtr config)
|
||||
DisplayModePtr maxmode = NULL, testmode, mode;
|
||||
int o, compat = -1, count, mincount = 0;
|
||||
|
||||
+ if (config->num_output == 0)
|
||||
+ return NULL;
|
||||
+
|
||||
/* Look for one that's definitely connected */
|
||||
for (o = 0; o < config->num_output; o++) {
|
||||
test = config->output[o];
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4a3354179f4e758971667ac6359080a014dcb033 Mon Sep 17 00:00:00 2001
|
||||
From 010bee24b74e4ca0df6c69094b825d5232f85377 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@redhat.com>
|
||||
Date: Fri, 18 Sep 2009 22:08:16 -0400
|
||||
Subject: [PATCH 10/38] Add xwayland module
|
||||
Subject: [PATCH 09/38] Add xwayland module
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -32,11 +32,11 @@ Squashed and rebased from the xwayland-1.12 branch. Contributions from
|
||||
hw/xfree86/xwayland/xwayland-input.c | 610 +++++++++++++++++++++++++++++++++
|
||||
hw/xfree86/xwayland/xwayland-output.c | 309 +++++++++++++++++
|
||||
hw/xfree86/xwayland/xwayland-private.h | 132 +++++++
|
||||
hw/xfree86/xwayland/xwayland-window.c | 316 +++++++++++++++++
|
||||
hw/xfree86/xwayland/xwayland-window.c | 317 +++++++++++++++++
|
||||
hw/xfree86/xwayland/xwayland.c | 392 +++++++++++++++++++++
|
||||
hw/xfree86/xwayland/xwayland.h | 83 +++++
|
||||
include/xorg-server.h.in | 3 +
|
||||
20 files changed, 2594 insertions(+), 10 deletions(-)
|
||||
20 files changed, 2595 insertions(+), 10 deletions(-)
|
||||
create mode 100644 hw/xfree86/xwayland/Makefile.am
|
||||
create mode 100644 hw/xfree86/xwayland/drm.xml
|
||||
create mode 100644 hw/xfree86/xwayland/xserver.xml
|
||||
@ -50,10 +50,10 @@ Squashed and rebased from the xwayland-1.12 branch. Contributions from
|
||||
create mode 100644 hw/xfree86/xwayland/xwayland.h
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1e6f813..ab693e9 100644
|
||||
index 8bedd35..8078846 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -636,6 +636,7 @@ AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg
|
||||
@@ -629,6 +629,7 @@ AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg
|
||||
AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes])
|
||||
AC_ARG_ENABLE(linux_acpi, AC_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes])
|
||||
AC_ARG_ENABLE(linux_apm, AC_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes])
|
||||
@ -61,7 +61,7 @@ index 1e6f813..ab693e9 100644
|
||||
|
||||
dnl DDXes.
|
||||
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
||||
@@ -1024,6 +1025,14 @@ fi
|
||||
@@ -1018,6 +1019,14 @@ fi
|
||||
if test "x$MITSHM" = xauto; then
|
||||
MITSHM="$ac_cv_sysv_ipc"
|
||||
fi
|
||||
@ -76,7 +76,7 @@ index 1e6f813..ab693e9 100644
|
||||
AM_CONDITIONAL(MITSHM, [test "x$MITSHM" = xyes])
|
||||
if test "x$MITSHM" = xyes; then
|
||||
AC_DEFINE(MITSHM, 1, [Support MIT-SHM extension])
|
||||
@@ -1204,12 +1213,13 @@ esac
|
||||
@@ -1241,12 +1250,13 @@ esac
|
||||
|
||||
AM_CONDITIONAL(DRI3, test "x$DRI3" = xyes)
|
||||
|
||||
@ -91,7 +91,7 @@ index 1e6f813..ab693e9 100644
|
||||
|
||||
if test "x$DRI2" = xyes; then
|
||||
save_CFLAGS=$CFLAGS
|
||||
@@ -2399,6 +2409,7 @@ hw/xfree86/dixmods/Makefile
|
||||
@@ -2462,6 +2472,7 @@ hw/xfree86/dixmods/Makefile
|
||||
hw/xfree86/doc/Makefile
|
||||
hw/xfree86/dri/Makefile
|
||||
hw/xfree86/dri2/Makefile
|
||||
@ -130,7 +130,7 @@ index 15670d0..cf60196 100644
|
||||
|
||||
bin_PROGRAMS = Xorg
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 74d5ed3..39cd58c 100644
|
||||
index b5efc02..3b0bb89 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -118,7 +118,8 @@ static ModuleDefault ModuleDefaults[] = {
|
||||
@ -2071,10 +2071,10 @@ index 0000000..e427316
|
||||
+#endif /* _XWAYLAND_PRIVATE_H_ */
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
new file mode 100644
|
||||
index 0000000..925d63c
|
||||
index 0000000..d56e0d0
|
||||
--- /dev/null
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -0,0 +1,316 @@
|
||||
@@ -0,0 +1,317 @@
|
||||
+/*
|
||||
+ * Copyright © 2011 Intel Corporation
|
||||
+ *
|
||||
@ -2317,6 +2317,7 @@ index 0000000..925d63c
|
||||
+ xorg_list_del(&xwl_window->link);
|
||||
+ if (RegionNotEmpty(DamageRegion(xwl_window->damage)))
|
||||
+ xorg_list_del(&xwl_window->link_damage);
|
||||
+ DamageUnregister(&window->drawable, xwl_window->damage);
|
||||
+ DamageDestroy(xwl_window->damage);
|
||||
+ free(xwl_window);
|
||||
+ dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL);
|
||||
@ -2891,5 +2892,5 @@ index 0c651bf..7f6eba2 100644
|
||||
+
|
||||
#endif /* _XORG_SERVER_H_ */
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 0492deb8f8238b7782e5a706ec6219d88aa1091d Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Tue, 29 Oct 2013 12:09:27 -0400
|
||||
Subject: [PATCH 9/9] mieq: Bump default queue size to 512
|
||||
|
||||
Based on some bugzilla scraping I did around November 2012. Of xserver
|
||||
bugs in Red Hat bugzilla with an EQ size message in the log, the
|
||||
distribution looked like:
|
||||
|
||||
String | Matches
|
||||
-------------------------------------
|
||||
Increasing EQ size to 512 | 460
|
||||
Increasing EQ size to 1024 | 52
|
||||
Increasing EQ size to 2048 | 6
|
||||
Increasing EQ size to 4096 | 0
|
||||
|
||||
Most of the "512" ones appear to be mostly harmless, some relatively
|
||||
expensive path in either rendering or resource destruction simply taking
|
||||
too long due to external pressures like paging or CPU contention. So
|
||||
let's raise the initial queue size, both to reduce the number of
|
||||
spurious abrt reports and to drop fewer events in all but the most
|
||||
pathological cases.
|
||||
|
||||
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
---
|
||||
mi/mieq.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mi/mieq.c b/mi/mieq.c
|
||||
index d7d73de..4c07480 100644
|
||||
--- a/mi/mieq.c
|
||||
+++ b/mi/mieq.c
|
||||
@@ -60,7 +60,7 @@ in this Software without prior written authorization from The Open Group.
|
||||
#endif
|
||||
|
||||
/* Maximum size should be initial size multiplied by a power of 2 */
|
||||
-#define QUEUE_INITIAL_SIZE 256
|
||||
+#define QUEUE_INITIAL_SIZE 512
|
||||
#define QUEUE_RESERVED_SIZE 64
|
||||
#define QUEUE_MAXIMUM_SIZE 4096
|
||||
#define QUEUE_DROP_BACKTRACE_FREQUENCY 100
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 201a3ac6c7cca0eb118cdb41f859d553b85204ad Mon Sep 17 00:00:00 2001
|
||||
From b50ab974f639e02f878e608bf7f6097be7fbc60c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Wed, 21 Aug 2013 23:02:58 -0700
|
||||
Subject: [PATCH 11/38] xwayland: Add a HW_WAYLAND flag to let drivers
|
||||
Subject: [PATCH 10/38] xwayland: Add a HW_WAYLAND flag to let drivers
|
||||
explicitly opt-in
|
||||
|
||||
---
|
||||
@ -45,5 +45,5 @@ index 4c2d147..976fa30 100644
|
||||
typedef CARD32 xorgHWFlags;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 17318d4351f4bc3e7c91f89d9c1bb061348fbb1b Mon Sep 17 00:00:00 2001
|
||||
From 341f2f5de09e59c3498d5f4e626b8fd86f4a0dcd Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Wed, 21 Aug 2013 09:53:25 +0200
|
||||
Subject: [PATCH 12/38] xwayland-shm: don't create alpha buffers if the window
|
||||
Subject: [PATCH 11/38] xwayland-shm: don't create alpha buffers if the window
|
||||
doesn't have alpha
|
||||
|
||||
If the window is using a 24 bit visual, we must request a buffer
|
||||
@ -27,5 +27,5 @@ index f59bfe4..880b7ec 100644
|
||||
|
||||
return xwl_window->buffer ? Success : BadDrawable;
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 44131ac8626d8397bf40adf3511bf0b92909f94f Mon Sep 17 00:00:00 2001
|
||||
From 1e37681072a69decce7441e762cb5f4ce1a80d73 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Wed, 21 Aug 2013 09:53:26 +0200
|
||||
Subject: [PATCH 13/38] xwayland: handle global object destruction
|
||||
Subject: [PATCH 12/38] xwayland: handle global object destruction
|
||||
|
||||
Certain global objects, such as outputs, can be destroyed during
|
||||
the session. We must handle that and not crash.
|
||||
@ -230,5 +230,5 @@ index 880b7ec..2047a85 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 0d1ec467dd566895b5a71b02f8851a89f8a7512c Mon Sep 17 00:00:00 2001
|
||||
From c22c7d4062b24f10a1d841629cc1e1822cad1f45 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Thu, 22 Aug 2013 16:23:48 +0200
|
||||
Subject: [PATCH 14/38] xwayland: add support for multiple outputs
|
||||
Subject: [PATCH 13/38] xwayland: add support for multiple outputs
|
||||
|
||||
Drop xf86InitialConfiguration, which just gets in the way
|
||||
of the compositor doing its own output arrangement, and transform
|
||||
@ -211,5 +211,5 @@ index 7005db2..b0b2201 100644
|
||||
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ab2bf3a98241bc7a8e8a3d09b780dd8f975def8d Mon Sep 17 00:00:00 2001
|
||||
From 21d9ed2b2ad45c7c363194a4c4fe2306bb26b130 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Sun, 1 Sep 2013 23:14:43 +0200
|
||||
Subject: [PATCH 15/38] xwayland: Probe outputs on preinit
|
||||
Subject: [PATCH 14/38] xwayland: Probe outputs on preinit
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -30,5 +30,5 @@ index 66c7d48..691b5f0 100644
|
||||
|
||||
xf86SetScrnInfoModes(scrninfo);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2553d412bf0b9c6dbf7a46dd8596ff7b9387e713 Mon Sep 17 00:00:00 2001
|
||||
From 4e8eb23a03e14ce149e302e4dfc6e6af6fa61424 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Fri, 16 Aug 2013 13:21:21 +0100
|
||||
Subject: [PATCH 16/38] XFree86: Load wlshm driver as fallback for Wayland
|
||||
Subject: [PATCH 15/38] XFree86: Load wlshm driver as fallback for Wayland
|
||||
|
||||
Since fbdev or vesa are unlikely to be too useful there ...
|
||||
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
2 files changed, 20 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index 95d58fe..d5a3370 100644
|
||||
index af2b7f8..a3e1fa7 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -283,10 +283,15 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
@@ -275,10 +275,15 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
#if !defined(sun)
|
||||
/* Fallback to platform default frame buffer driver */
|
||||
if (i < (nmatches - 1)) {
|
||||
@ -34,15 +34,15 @@ index 95d58fe..d5a3370 100644
|
||||
}
|
||||
#endif /* !sun */
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index 39cd58c..c65cb80 100644
|
||||
index 3b0bb89..aebfc1b 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -519,7 +519,11 @@ xf86InputDriverlistFromConfig(void)
|
||||
static void
|
||||
fixup_video_driver_list(char **drivers)
|
||||
{
|
||||
- static const char *fallback[4] = { "vesa", "fbdev", "wsfb", NULL };
|
||||
+ static const char *fallback_hw[4] = { "vesa", "fbdev", "wsfb", NULL };
|
||||
- static const char *fallback[4] = { "fbdev", "vesa", "wsfb", NULL };
|
||||
+ static const char *fallback_hw[4] = { "fbdev", "vesa", "wsfb", NULL };
|
||||
+#ifdef XORG_WAYLAND
|
||||
+ static const char *fallback_wayland[2] = { "wlshm", NULL };
|
||||
+#endif
|
||||
@ -69,5 +69,5 @@ index 39cd58c..c65cb80 100644
|
||||
*drv = *end;
|
||||
*end = x;
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c928d93ae7f803f1bda0bc0dca4d1ca3c580d28d Mon Sep 17 00:00:00 2001
|
||||
From 6cfe64769a4f8e9646e4d6766ffdf689a0963ffd Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Wed, 7 Nov 2012 17:22:42 +1100
|
||||
Subject: [PATCH 17/38] XWayland: Don't send out-of-bounds damage co-ordinates
|
||||
Subject: [PATCH 16/38] XWayland: Don't send out-of-bounds damage co-ordinates
|
||||
|
||||
Make sure we don't send damage regions larger than the buffer.
|
||||
|
||||
@ -33,5 +33,5 @@ index 2047a85..6a515f5 100644
|
||||
wl_surface_attach(xwl_window->surface,
|
||||
xwl_window->buffer,
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From d5a81751ea614f75bd4b53fea562667f3fa16c9b Mon Sep 17 00:00:00 2001
|
||||
From 70bf99f09cac43a9016039f762e5186c6ca2b6c6 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Tue, 16 Oct 2012 17:14:01 +1100
|
||||
Subject: [PATCH 18/38] xwayland: Introduce an auto mode for --enable-wayland
|
||||
Subject: [PATCH 17/38] xwayland: Introduce an auto mode for --enable-wayland
|
||||
|
||||
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
---
|
||||
@ -9,10 +9,10 @@ Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ab693e9..3699525 100644
|
||||
index 8078846..c60fd44 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -636,7 +636,7 @@ AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg
|
||||
@@ -629,7 +629,7 @@ AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg
|
||||
AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes])
|
||||
AC_ARG_ENABLE(linux_acpi, AC_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes])
|
||||
AC_ARG_ENABLE(linux_apm, AC_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes])
|
||||
@ -21,7 +21,7 @@ index ab693e9..3699525 100644
|
||||
|
||||
dnl DDXes.
|
||||
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
||||
@@ -1026,12 +1026,16 @@ if test "x$MITSHM" = xauto; then
|
||||
@@ -1020,12 +1020,16 @@ if test "x$MITSHM" = xauto; then
|
||||
MITSHM="$ac_cv_sysv_ipc"
|
||||
fi
|
||||
|
||||
@ -41,5 +41,5 @@ index ab693e9..3699525 100644
|
||||
AM_CONDITIONAL(MITSHM, [test "x$MITSHM" = xyes])
|
||||
if test "x$MITSHM" = xyes; then
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From fe84a03afbc5d5b80735d106f699139d44769af0 Mon Sep 17 00:00:00 2001
|
||||
From c7d56befef2111c82e6720643824b9a46ae36670 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Wed, 7 Nov 2012 17:15:13 +1100
|
||||
Subject: [PATCH 19/38] XWayland: Don't hardcode DRM libs and -lwayland-client
|
||||
Subject: [PATCH 18/38] XWayland: Don't hardcode DRM libs and -lwayland-client
|
||||
|
||||
Take -lwayland-client from configure.ac, and only use DRM if we've
|
||||
actually asked for it.
|
||||
@ -42,5 +42,5 @@ index b739145..22ab154 100644
|
||||
endif
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b69be44270c90b9048505d5b18930c1ac18e9ddc Mon Sep 17 00:00:00 2001
|
||||
From c6da90b55546748d3f4a2f536f94751da3abcd77 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Fri, 16 Aug 2013 13:51:08 +0100
|
||||
Subject: [PATCH 20/38] XWayland: Support 16bpp X surfaces in DRM/SHM
|
||||
Subject: [PATCH 19/38] XWayland: Support 16bpp X surfaces in DRM/SHM
|
||||
|
||||
Properly look at the window's visual to determine which format we should
|
||||
use for allocation.
|
||||
@ -93,5 +93,5 @@ index 6a515f5..36f7cbf 100644
|
||||
|
||||
return xwl_window->buffer ? Success : BadDrawable;
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From fdb47d16148e7cd2a4a7cc1d16fbd4a3b382046e Mon Sep 17 00:00:00 2001
|
||||
From caf0c07852843440139fcd23e621fe2e9522775f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Wed, 11 Sep 2013 11:15:18 -0700
|
||||
Subject: [PATCH 21/38] xwayland: Remove Xdnd selection watching code
|
||||
Subject: [PATCH 20/38] xwayland: Remove Xdnd selection watching code
|
||||
|
||||
We don't need this in the server, the wm can manage dnd proxying.
|
||||
---
|
||||
@ -66,5 +66,5 @@ index 36f7cbf..e8c58fd 100644
|
||||
xorg_list_init(&xwl_screen->seat_list);
|
||||
xorg_list_init(&xwl_screen->damage_window_list);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cbca006b92b1ef56966b07e0573f9f068891cee5 Mon Sep 17 00:00:00 2001
|
||||
From d40219f38a33845d8a9850de47ff5d458a3d8209 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 17:17:16 -0400
|
||||
Subject: [PATCH 22/38] xf86Init: trim out non-wayland capable servers from
|
||||
Subject: [PATCH 21/38] xf86Init: trim out non-wayland capable servers from
|
||||
drive list
|
||||
|
||||
Otherwise they'll cause the server to crash when run in wayland mode.
|
||||
@ -30,5 +30,5 @@ index 2d3bb01..6282252 100644
|
||||
xf86OpenConsole();
|
||||
else
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,30 +1,29 @@
|
||||
From e3fc1ac8cd899868f1679671380a484d61ec4882 Mon Sep 17 00:00:00 2001
|
||||
From a575da27027b91e44df75318f3b570bf8291fe7c Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 15:52:29 +0200
|
||||
Subject: [PATCH 23/38] Add XORG_WAYLAND symbol to xorg-config.h.in
|
||||
Subject: [PATCH 22/38] Add XORG_WAYLAND symbol to xorg-config.h.in
|
||||
|
||||
We manually duplicate symbols that we want in both xorg-server.h and
|
||||
xorg-config.h. XORG_WAYLAND is one such symbol, but it was missing from
|
||||
xorg-config.h.in.
|
||||
---
|
||||
include/xorg-config.h.in | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
include/xorg-config.h.in | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/xorg-config.h.in b/include/xorg-config.h.in
|
||||
index 487d7ad..a35a9b0 100644
|
||||
index 487d7ad..8aec1d8 100644
|
||||
--- a/include/xorg-config.h.in
|
||||
+++ b/include/xorg-config.h.in
|
||||
@@ -145,4 +145,10 @@
|
||||
/* Support APM/ACPI power management in the server */
|
||||
#undef XF86PM
|
||||
@@ -142,7 +142,7 @@
|
||||
/* Define to 1 if you have the `seteuid' function. */
|
||||
#undef HAVE_SETEUID
|
||||
|
||||
+/* Have support for X shared memory fence library (xshmfence) */
|
||||
+#undef HAVE_XSHMFENCE
|
||||
+
|
||||
-/* Support APM/ACPI power management in the server */
|
||||
-#undef XF86PM
|
||||
+/* Building Xorg server. */
|
||||
+#undef XORG_WAYLAND
|
||||
+
|
||||
|
||||
#endif /* _XORG_CONFIG_H_ */
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1df7c26010720e669d416b442e168002d7502d9d Mon Sep 17 00:00:00 2001
|
||||
From 7e1b4d2a4853e7a6c31e0ab0c1fe3405ec61c914 Mon Sep 17 00:00:00 2001
|
||||
From: Giovanni Campagna <gcampagn@redhat.com>
|
||||
Date: Fri, 13 Sep 2013 15:52:30 +0200
|
||||
Subject: [PATCH 24/38] Fix fallback loading of the wayland driver
|
||||
Subject: [PATCH 23/38] Fix fallback loading of the wayland driver
|
||||
|
||||
Fix the array name to actually compile, and fix the driver name
|
||||
with the new upstream.
|
||||
@ -11,10 +11,10 @@ with the new upstream.
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index d5a3370..b35cb96 100644
|
||||
index a3e1fa7..51a7960 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -285,7 +285,7 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
@@ -277,7 +277,7 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
if (i < (nmatches - 1)) {
|
||||
#ifdef XORG_WAYLAND
|
||||
if (xorgWayland)
|
||||
@ -24,12 +24,12 @@ index d5a3370..b35cb96 100644
|
||||
#endif
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
|
||||
index c65cb80..8255d8d 100644
|
||||
index aebfc1b..66f98b2 100644
|
||||
--- a/hw/xfree86/common/xf86Config.c
|
||||
+++ b/hw/xfree86/common/xf86Config.c
|
||||
@@ -521,7 +521,7 @@ fixup_video_driver_list(char **drivers)
|
||||
{
|
||||
static const char *fallback_hw[4] = { "vesa", "fbdev", "wsfb", NULL };
|
||||
static const char *fallback_hw[4] = { "fbdev", "vesa", "wsfb", NULL };
|
||||
#ifdef XORG_WAYLAND
|
||||
- static const char *fallback_wayland[2] = { "wlshm", NULL };
|
||||
+ static const char *fallback_wl[2] = { "wayland", NULL };
|
||||
@ -37,5 +37,5 @@ index c65cb80..8255d8d 100644
|
||||
const char **fallbacks;
|
||||
char **end, **drv;
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 84fe9bdf95a03d7998132892899549a5233f619a Mon Sep 17 00:00:00 2001
|
||||
From b468fcfc1733feb014ef976fef29939f9f1dfc98 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 14:52:13 -0700
|
||||
Subject: [PATCH 25/38] xwayland: Don't include xorg-server.h
|
||||
Subject: [PATCH 24/38] xwayland: Don't include xorg-server.h
|
||||
|
||||
xorg-config.h now has the XORG_WAYLAND define.
|
||||
---
|
||||
@ -36,7 +36,7 @@ index 691b5f0..7004b9b 100644
|
||||
#include <xf86Crtc.h>
|
||||
#include <mipointrst.h>
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index 925d63c..b7677ed 100644
|
||||
index d56e0d0..88f57ce 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -33,7 +33,6 @@
|
||||
@ -60,5 +60,5 @@ index e8c58fd..c70a52d 100644
|
||||
|
||||
#include <xf86Xinput.h>
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e02033116fe579a14e1ca499ff407b99178b1afd Mon Sep 17 00:00:00 2001
|
||||
From 6e6f302a5bfa72b195021c0053aab3286d12f87a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 14:53:16 -0700
|
||||
Subject: [PATCH 26/38] os: Don't include xorg-server.h
|
||||
Subject: [PATCH 25/38] os: Don't include xorg-server.h
|
||||
|
||||
Just always compile in ListenOnOpenFD and AddClientOnOpenFD, they
|
||||
don't depend on anything from Quartz or Wayland.
|
||||
@ -36,5 +36,5 @@ index a95e7da..0a858b7 100644
|
||||
-
|
||||
-#endif
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 7b45766152d2600279129722331df380f70a57ee Mon Sep 17 00:00:00 2001
|
||||
From 7f1df88e3c86e900fa22075aed41c5c3b3f36b75 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 13 Sep 2013 15:16:31 -0700
|
||||
Subject: [PATCH 27/38] os: Also define ListenOnOpenFD and AddClientOnOpenFD
|
||||
Subject: [PATCH 26/38] os: Also define ListenOnOpenFD and AddClientOnOpenFD
|
||||
unconditionally
|
||||
|
||||
Remove the #ifdef from the header file as well.
|
||||
@ -10,7 +10,7 @@ Remove the #ifdef from the header file as well.
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/os.h b/include/os.h
|
||||
index 2a24f4b..542ca64 100644
|
||||
index c36d09a..8deb413 100644
|
||||
--- a/include/os.h
|
||||
+++ b/include/os.h
|
||||
@@ -166,10 +166,9 @@ extern _X_EXPORT void MakeClientGrabImpervious(ClientPtr /*client */ );
|
||||
@ -26,5 +26,5 @@ index 2a24f4b..542ca64 100644
|
||||
extern _X_EXPORT CARD32 GetTimeInMillis(void);
|
||||
extern _X_EXPORT CARD64 GetTimeInMicros(void);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 190d17d13dcb7a784e80edc5564cb80b9ccf3b00 Mon Sep 17 00:00:00 2001
|
||||
From b2520bd345339bbf74ab0ee4e2194206f80f4d2f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Mon, 16 Sep 2013 11:51:57 -0700
|
||||
Subject: [PATCH 28/38] xwayland: Remove unused variables
|
||||
Subject: [PATCH 27/38] xwayland: Remove unused variables
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index b7677ed..3c85630 100644
|
||||
index 88f57ce..20db80c 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -92,9 +92,6 @@ xwl_create_window(WindowPtr window)
|
||||
@ -22,5 +22,5 @@ index b7677ed..3c85630 100644
|
||||
|
||||
xwl_screen = xwl_screen_get(screen);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 7da89f1639cd65a114cfc97e5556a5c238c2cac9 Mon Sep 17 00:00:00 2001
|
||||
From 2890dca70f04c3961578062207c5354d48730da3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Mon, 16 Sep 2013 12:05:19 -0700
|
||||
Subject: [PATCH 29/38] xwayland: Use a per-screen private key for cursor
|
||||
Subject: [PATCH 28/38] xwayland: Use a per-screen private key for cursor
|
||||
privates
|
||||
|
||||
The cursor is a per-display object, so we need to set private data on it
|
||||
@ -81,5 +81,5 @@ index b0b2201..aa9fc03 100644
|
||||
DestroyWindowProcPtr DestroyWindow;
|
||||
RealizeWindowProcPtr RealizeWindow;
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 6ffe400e53f9dc7f66b8f2588cc766f4254a39da Mon Sep 17 00:00:00 2001
|
||||
From 1cac327a6ef9c0ca44ec32c7146da37ecb930dca Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniels@collabora.com>
|
||||
Date: Thu, 12 Sep 2013 16:58:00 -0400
|
||||
Subject: [PATCH 30/38] XWayland: Don't commit empty surfaces
|
||||
Subject: [PATCH 29/38] XWayland: Don't commit empty surfaces
|
||||
|
||||
Instead of attaching, damaging and then committing a new buffer as soon
|
||||
as we allocate a pixmap, just attach and damage the entire buffer. When
|
||||
@ -16,7 +16,7 @@ Signed-off-by: Daniel Stone <daniels@collabora.com>
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index 3c85630..fb9c64a 100644
|
||||
index 20db80c..5045e65 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -80,7 +80,6 @@ xwl_window_attach(struct xwl_window *xwl_window, PixmapPtr pixmap)
|
||||
@ -28,5 +28,5 @@ index 3c85630..fb9c64a 100644
|
||||
callback = wl_display_sync(xwl_screen->display);
|
||||
wl_callback_add_listener(callback, &free_pixmap_listener, pixmap);
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,17 +1,17 @@
|
||||
From 448ecd81741144f039d41feeca0319c70954e847 Mon Sep 17 00:00:00 2001
|
||||
From f3df4c8caf96cce10d7bd646f34df9c3bba4daa9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:14:54 -0700
|
||||
Subject: [PATCH 31/38] xwayland: Also look for wlglamor
|
||||
Subject: [PATCH 30/38] xwayland: Also look for wlglamor
|
||||
|
||||
---
|
||||
hw/xfree86/common/xf86AutoConfig.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index b35cb96..9576b86 100644
|
||||
index 51a7960..523ddb7 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -285,6 +285,7 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
@@ -277,6 +277,7 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
if (i < (nmatches - 1)) {
|
||||
#ifdef XORG_WAYLAND
|
||||
if (xorgWayland)
|
||||
@ -20,5 +20,5 @@ index b35cb96..9576b86 100644
|
||||
else
|
||||
#endif
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b7fccf0d62ecf16ad591270ed5130241f005b635 Mon Sep 17 00:00:00 2001
|
||||
From a7f4b0f1a49abdb79f7a787e582096af152382c2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:29:02 -0700
|
||||
Subject: [PATCH 32/38] xwayland: Add wlglamor the right way
|
||||
Subject: [PATCH 31/38] xwayland: Add wlglamor the right way
|
||||
|
||||
Defeated by #ifdefs.
|
||||
---
|
||||
@ -9,10 +9,10 @@ Defeated by #ifdefs.
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
|
||||
index 9576b86..cc6dcce 100644
|
||||
index 523ddb7..4c5d1d5 100644
|
||||
--- a/hw/xfree86/common/xf86AutoConfig.c
|
||||
+++ b/hw/xfree86/common/xf86AutoConfig.c
|
||||
@@ -282,12 +282,12 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
@@ -274,12 +274,12 @@ listPossibleVideoDrivers(char *matches[], int nmatches)
|
||||
|
||||
#if !defined(sun)
|
||||
/* Fallback to platform default frame buffer driver */
|
||||
@ -29,5 +29,5 @@ index 9576b86..cc6dcce 100644
|
||||
#if !defined(__linux__) && defined(__sparc__)
|
||||
matches[i++] = xnfstrdup("wsfb");
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,14 +1,14 @@
|
||||
From a7ba08d345c1f545f1f8711f5b6ec6b4f13865f5 Mon Sep 17 00:00:00 2001
|
||||
From 067752476a9c2bac9e01c3c923fa94b4bf0ec0c1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 15:41:59 -0700
|
||||
Subject: [PATCH 33/38] xwayland: Don't redirect windows, leave it to the wm
|
||||
Subject: [PATCH 32/38] xwayland: Don't redirect windows, leave it to the wm
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 51 -----------------------------------
|
||||
1 file changed, 51 deletions(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index fb9c64a..0cb4f28 100644
|
||||
index 5045e65..c03855c 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -31,11 +31,9 @@
|
||||
@ -73,7 +73,7 @@ index fb9c64a..0cb4f28 100644
|
||||
static void
|
||||
damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data)
|
||||
{
|
||||
@@ -289,12 +244,6 @@ xwl_screen_init_window(struct xwl_screen *xwl_screen, ScreenPtr screen)
|
||||
@@ -290,12 +245,6 @@ xwl_screen_init_window(struct xwl_screen *xwl_screen, ScreenPtr screen)
|
||||
if (!dixRegisterPrivateKey(&xwl_window_private_key, PRIVATE_WINDOW, 0))
|
||||
return BadAlloc;
|
||||
|
||||
@ -87,5 +87,5 @@ index fb9c64a..0cb4f28 100644
|
||||
screen->RealizeWindow = xwl_realize_window;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b6d7459e27814c23292e9e7172bb6f95b4aadd2b Mon Sep 17 00:00:00 2001
|
||||
From 844a73a64081044710d2f22ba5a52513c2cce708 Mon Sep 17 00:00:00 2001
|
||||
From: Trevor McCort <tjmccort@gmail.com>
|
||||
Date: Tue, 15 Oct 2013 19:41:12 -0500
|
||||
Subject: [PATCH 35/38] xwayland: Fix hidden cursor
|
||||
Subject: [PATCH 33/38] xwayland: Fix hidden cursor
|
||||
|
||||
If a cursor is set when bits->emptyMask is true, the xserver
|
||||
sets a NULL cursor instead.
|
||||
@ -34,5 +34,5 @@ index 2cdd248..2b3cb5e 100644
|
||||
&xwl_seat->xwl_screen->cursor_private_key);
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,68 +0,0 @@
|
||||
From 01ddf1dada61d3939b3b7188d1ddbef83ce2628b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Fri, 11 Oct 2013 16:40:39 -0700
|
||||
Subject: [PATCH 34/38] Revert "Export CompositeRedirectSubwindows and
|
||||
CompositeUnRedirectSubwindows"
|
||||
|
||||
This reverts commit 15a7e62a9848f2089180c49b02887565d29bb896.
|
||||
|
||||
Now that we don't redirect windows on behalf of the wm, we don't need this.
|
||||
---
|
||||
composite/compalloc.c | 11 -----------
|
||||
composite/compositeext.h | 4 ----
|
||||
2 files changed, 15 deletions(-)
|
||||
|
||||
diff --git a/composite/compalloc.c b/composite/compalloc.c
|
||||
index 98b27b1..b7d731e 100644
|
||||
--- a/composite/compalloc.c
|
||||
+++ b/composite/compalloc.c
|
||||
@@ -46,7 +46,6 @@
|
||||
#endif
|
||||
|
||||
#include "compint.h"
|
||||
-#include "compositeext.h"
|
||||
|
||||
static void
|
||||
compScreenUpdate(ScreenPtr pScreen)
|
||||
@@ -412,11 +411,6 @@ compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return Success;
|
||||
}
|
||||
|
||||
-int CompositeRedirectSubwindows (WindowPtr pWin, int update)
|
||||
-{
|
||||
- return compRedirectSubwindows (serverClient, pWin, update);
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Free one of the per-client per-subwindows resources,
|
||||
* which frees one redirect per subwindow
|
||||
@@ -488,11 +482,6 @@ compUnredirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update)
|
||||
return BadValue;
|
||||
}
|
||||
|
||||
-int CompositeUnRedirectSubwindows (WindowPtr pWin, int update)
|
||||
-{
|
||||
- return compUnredirectSubwindows (serverClient, pWin, update);
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Add redirection information for one subwindow (during reparent)
|
||||
*/
|
||||
diff --git a/composite/compositeext.h b/composite/compositeext.h
|
||||
index a072966..0b148f0 100644
|
||||
--- a/composite/compositeext.h
|
||||
+++ b/composite/compositeext.h
|
||||
@@ -34,10 +34,6 @@
|
||||
extern _X_EXPORT Bool CompositeRegisterAlternateVisuals(ScreenPtr pScreen,
|
||||
VisualID * vids,
|
||||
int nVisuals);
|
||||
-extern _X_EXPORT int CompositeRedirectSubwindows(WindowPtr pWin,
|
||||
- int update);
|
||||
-extern _X_EXPORT int CompositeUnRedirectSubwindows (WindowPtr pWin,
|
||||
- int update);
|
||||
|
||||
extern _X_EXPORT RESTYPE CompositeClientWindowType;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1a1c70ed93c53c340c54ee673bc631ea459a4bfa Mon Sep 17 00:00:00 2001
|
||||
From 3c9434f3f70420780e1fc606175a7436f6fdbb15 Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Tue, 22 Oct 2013 16:50:29 +0200
|
||||
Subject: [PATCH 36/38] xkb: Repurpose XkbCopyDeviceKeymap to apply a given
|
||||
Subject: [PATCH 34/38] xkb: Repurpose XkbCopyDeviceKeymap to apply a given
|
||||
keymap to a device
|
||||
|
||||
This will also make it useful for cases when we have a new keymap to
|
||||
@ -95,5 +95,5 @@ index 6c6af60..1f8a839 100644
|
||||
XkbSendNewKeyboardNotify(dst, &nkn);
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a409085a514770bf8316f44af3c0697ba0ed516a Mon Sep 17 00:00:00 2001
|
||||
From 260ca040db20c397af0803da5c1bf15bc3bc08f2 Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Mon, 21 Oct 2013 14:41:53 +0200
|
||||
Subject: [PATCH 37/38] xkb: Factor out a function to copy a keymap's controls
|
||||
Subject: [PATCH 35/38] xkb: Factor out a function to copy a keymap's controls
|
||||
unto another
|
||||
|
||||
---
|
||||
@ -87,5 +87,5 @@ index 1f8a839..6cf6e79 100644
|
||||
+ dst->ctrls->num_groups = nTG;
|
||||
+}
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8263ec0fe27eb573e50485112e97f56f61d443b4 Mon Sep 17 00:00:00 2001
|
||||
From 6240dcadc8f51b00abe7d1fc4e682b442809fb91 Mon Sep 17 00:00:00 2001
|
||||
From: Rui Matos <tiagomatos@gmail.com>
|
||||
Date: Mon, 21 Oct 2013 14:41:54 +0200
|
||||
Subject: [PATCH 38/38] xwayland: Handle keymap changes
|
||||
Subject: [PATCH 36/38] xwayland: Handle keymap changes
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-input.c | 39 +++++++++++++++++++++++++++++++++---
|
||||
@ -83,5 +83,5 @@ index b1cc3ff..6a814c2 100644
|
||||
extern _X_EXPORT int AllocDevicePair(ClientPtr client,
|
||||
const char *name,
|
||||
--
|
||||
1.8.3.1
|
||||
1.8.4.2
|
||||
|
25
0037-xwayland-Fix-re-wrapping-of-RealizeWindow.patch
Normal file
25
0037-xwayland-Fix-re-wrapping-of-RealizeWindow.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 408c17759542df3c906fc6fd0c01a3963ac0f345 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= <krh@bitplanet.net>
|
||||
Date: Wed, 4 Dec 2013 10:27:07 -0800
|
||||
Subject: [PATCH 37/38] xwayland: Fix re-wrapping of RealizeWindow
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index c03855c..ee95371 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -110,7 +110,7 @@ xwl_realize_window(WindowPtr window)
|
||||
|
||||
screen->RealizeWindow = xwl_screen->RealizeWindow;
|
||||
ret = (*screen->RealizeWindow)(window);
|
||||
- xwl_screen->RealizeWindow = xwl_screen->RealizeWindow;
|
||||
+ xwl_screen->RealizeWindow = screen->RealizeWindow;
|
||||
screen->RealizeWindow = xwl_realize_window;
|
||||
|
||||
if (xwl_screen->flags & XWL_FLAGS_ROOTLESS) {
|
||||
--
|
||||
1.8.4.2
|
||||
|
24
0038-xwayland-Adapt-to-1.15-Damage-API.patch
Normal file
24
0038-xwayland-Adapt-to-1.15-Damage-API.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 76e317e6e80465ecdda849931789f1b606ff75ae Mon Sep 17 00:00:00 2001
|
||||
From: Adam Jackson <ajax@redhat.com>
|
||||
Date: Thu, 12 Dec 2013 09:47:12 -0500
|
||||
Subject: [PATCH 38/38] xwayland: Adapt to 1.15 Damage API
|
||||
|
||||
---
|
||||
hw/xfree86/xwayland/xwayland-window.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
|
||||
index ee95371..9a6724e 100644
|
||||
--- a/hw/xfree86/xwayland/xwayland-window.c
|
||||
+++ b/hw/xfree86/xwayland/xwayland-window.c
|
||||
@@ -190,7 +190,6 @@ xwl_unrealize_window(WindowPtr window)
|
||||
xorg_list_del(&xwl_window->link);
|
||||
if (RegionNotEmpty(DamageRegion(xwl_window->damage)))
|
||||
xorg_list_del(&xwl_window->link_damage);
|
||||
- DamageUnregister(&window->drawable, xwl_window->damage);
|
||||
DamageDestroy(xwl_window->damage);
|
||||
free(xwl_window);
|
||||
dixSetPrivate(&window->devPrivates, &xwl_window_private_key, NULL);
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -39,10 +39,10 @@ echo $driverlist $extradrivers | xargs -n1 $pkg co $branch
|
||||
for i in xorg-x11-drv-*/ ; do
|
||||
[ -e $i/dead.package ] && continue
|
||||
pushd $i
|
||||
rpmdev-bumpspec -c "- 1.15RC1 ABI rebuild" *.spec
|
||||
$pkg commit -c -p && $pkg build --nowait
|
||||
#rpmdev-bumpspec -c "- 1.15RC4 ABI rebuild" *.spec
|
||||
#$pkg commit -c -p && $pkg build --nowait
|
||||
#$pkg mockbuild
|
||||
#$pkg srpm
|
||||
$pkg srpm
|
||||
#mockchain -r fedora-20-x86_64 -l $OLDPWD
|
||||
#mockchain -r rhel-7.0-candidate-x86_64 -l $OLDPWD
|
||||
popd
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
57b14ddab3693ce48eafcb9607a87353 xorg-server-1.14.99.902.tar.bz2
|
||||
c2f45a61a3cdf480c59d3f3dcc11bdc7 xorg-server-1.14.99.904.tar.bz2
|
||||
|
@ -8,19 +8,19 @@
|
||||
# format, and add a PatchN: line. If you want to push something upstream,
|
||||
# check out the master branch, pull, cherry-pick, and push.
|
||||
|
||||
%global gitdate 20131118
|
||||
%global stable_abi 0
|
||||
#global gitdate 20131118
|
||||
%global stable_abi 1
|
||||
|
||||
%if !0%{?gitdate} || %{stable_abi}
|
||||
# Released ABI versions. Have to keep these manually in sync with the
|
||||
# source because rpm is a terrible language.
|
||||
%global ansic_major 0
|
||||
%global ansic_minor 4
|
||||
%global videodrv_major 14
|
||||
%global videodrv_minor 1
|
||||
%global xinput_major 19
|
||||
%global xinput_minor 2
|
||||
%global extension_major 7
|
||||
%global videodrv_major 15
|
||||
%global videodrv_minor 0
|
||||
%global xinput_major 20
|
||||
%global xinput_minor 0
|
||||
%global extension_major 8
|
||||
%global extension_minor 0
|
||||
%endif
|
||||
|
||||
@ -41,8 +41,8 @@
|
||||
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.14.99.902
|
||||
Release: 2%{?gitdate:.%{gitdate}}%{dist}
|
||||
Version: 1.14.99.904
|
||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -75,56 +75,51 @@ Source31: xserver-sdk-abi-requires.git
|
||||
Source40: driver-abi-rebuild.sh
|
||||
|
||||
# sync with tip
|
||||
Patch0001: 0001-ephyr-xcb_connect-returns-an-error-not-NULL.patch
|
||||
Patch0002: 0002-kdrive-handle-WxH-as-valid-geometry-spec.patch
|
||||
Patch0003: 0003-kdrive-modify-ephyr-events-to-use-POINTER_DESKTOP-an.patch
|
||||
Patch0004: 0004-kdrive-fix-cursor-jumps-on-CursorOffScreen-behavior.patch
|
||||
Patch0005: 0005-Stop-including-inline-assembly-.il-file-for-Solaris-.patch
|
||||
Patch0006: 0006-include-export-key_is_down-and-friends.patch
|
||||
Patch0007: 0007-test-build-the-touch-test-only-when-building-Xorg.patch
|
||||
Patch0008: 0008-xfree86-return-NULL-for-compat-output-if-no-outputs.patch
|
||||
Patch0009: 0009-mieq-Bump-default-queue-size-to-512.patch
|
||||
Patch0001: 0001-present-recursively-set-window-pixmaps-on-flip.patch
|
||||
|
||||
# submitted
|
||||
Patch0050: 0001-configure-Fix-a-typo-near-dri3-shmfence-detection.patch
|
||||
|
||||
# xwayland. trivial rebase onto master:
|
||||
# http://cgit.freedesktop.org/~ajax/xserver/log/?h=wl-rebase-for-f20
|
||||
# http://cgit.freedesktop.org/~ajax/xserver/log/?h=wayland-f21
|
||||
Patch0101: 0001-dbe-Cleanup-in-CloseScreen-hook-not-ext-CloseDown.patch
|
||||
Patch0102: 0002-xkb-Add-struct-XkbCompContext.patch
|
||||
Patch0103: 0003-xkb-Split-out-code-to-start-and-finish-xkbcomp.patch
|
||||
Patch0104: 0004-xkb-Add-XkbCompileKeymapFromString.patch
|
||||
Patch0105: 0005-os-Add-a-function-to-create-a-client-for-an-fd.patch
|
||||
Patch0106: 0006-Export-xf86NewInputDevice-and-xf86AllocateInput.patch
|
||||
Patch0107: 0007-Export-CompositeRedirectSubwindows-and-CompositeUnRe.patch
|
||||
Patch0108: 0008-Add-redirect-window-for-input-device-feature.patch
|
||||
Patch0109: 0009-dri2-Introduce-a-third-version-of-the-AuthMagic-func.patch
|
||||
Patch0110: 0010-Add-xwayland-module.patch
|
||||
Patch0111: 0011-xwayland-Add-a-HW_WAYLAND-flag-to-let-drivers-explic.patch
|
||||
Patch0112: 0012-xwayland-shm-don-t-create-alpha-buffers-if-the-windo.patch
|
||||
Patch0113: 0013-xwayland-handle-global-object-destruction.patch
|
||||
Patch0114: 0014-xwayland-add-support-for-multiple-outputs.patch
|
||||
Patch0115: 0015-xwayland-Probe-outputs-on-preinit.patch
|
||||
Patch0116: 0016-XFree86-Load-wlshm-driver-as-fallback-for-Wayland.patch
|
||||
Patch0117: 0017-XWayland-Don-t-send-out-of-bounds-damage-co-ordinate.patch
|
||||
Patch0118: 0018-xwayland-Introduce-an-auto-mode-for-enable-wayland.patch
|
||||
Patch0119: 0019-XWayland-Don-t-hardcode-DRM-libs-and-lwayland-client.patch
|
||||
Patch0120: 0020-XWayland-Support-16bpp-X-surfaces-in-DRM-SHM.patch
|
||||
Patch0121: 0021-xwayland-Remove-Xdnd-selection-watching-code.patch
|
||||
Patch0122: 0022-xf86Init-trim-out-non-wayland-capable-servers-from-d.patch
|
||||
Patch0123: 0023-Add-XORG_WAYLAND-symbol-to-xorg-config.h.in.patch
|
||||
Patch0124: 0024-Fix-fallback-loading-of-the-wayland-driver.patch
|
||||
Patch0125: 0025-xwayland-Don-t-include-xorg-server.h.patch
|
||||
Patch0126: 0026-os-Don-t-include-xorg-server.h.patch
|
||||
Patch0127: 0027-os-Also-define-ListenOnOpenFD-and-AddClientOnOpenFD-.patch
|
||||
Patch0128: 0028-xwayland-Remove-unused-variables.patch
|
||||
Patch0129: 0029-xwayland-Use-a-per-screen-private-key-for-cursor-pri.patch
|
||||
Patch0130: 0030-XWayland-Don-t-commit-empty-surfaces.patch
|
||||
Patch0131: 0031-xwayland-Also-look-for-wlglamor.patch
|
||||
Patch0132: 0032-xwayland-Add-wlglamor-the-right-way.patch
|
||||
Patch0133: 0033-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch
|
||||
Patch0134: 0034-Revert-Export-CompositeRedirectSubwindows-and-Compos.patch
|
||||
Patch0135: 0035-xwayland-Fix-hidden-cursor.patch
|
||||
Patch0136: 0036-xkb-Repurpose-XkbCopyDeviceKeymap-to-apply-a-given-k.patch
|
||||
Patch0137: 0037-xkb-Factor-out-a-function-to-copy-a-keymap-s-control.patch
|
||||
Patch0138: 0038-xwayland-Handle-keymap-changes.patch
|
||||
Patch0107: 0007-Add-redirect-window-for-input-device-feature.patch
|
||||
Patch0108: 0008-dri2-Introduce-a-third-version-of-the-AuthMagic-func.patch
|
||||
Patch0109: 0009-Add-xwayland-module.patch
|
||||
Patch0110: 0010-xwayland-Add-a-HW_WAYLAND-flag-to-let-drivers-explic.patch
|
||||
Patch0111: 0011-xwayland-shm-don-t-create-alpha-buffers-if-the-windo.patch
|
||||
Patch0112: 0012-xwayland-handle-global-object-destruction.patch
|
||||
Patch0113: 0013-xwayland-add-support-for-multiple-outputs.patch
|
||||
Patch0114: 0014-xwayland-Probe-outputs-on-preinit.patch
|
||||
Patch0115: 0015-XFree86-Load-wlshm-driver-as-fallback-for-Wayland.patch
|
||||
Patch0116: 0016-XWayland-Don-t-send-out-of-bounds-damage-co-ordinate.patch
|
||||
Patch0117: 0017-xwayland-Introduce-an-auto-mode-for-enable-wayland.patch
|
||||
Patch0118: 0018-XWayland-Don-t-hardcode-DRM-libs-and-lwayland-client.patch
|
||||
Patch0119: 0019-XWayland-Support-16bpp-X-surfaces-in-DRM-SHM.patch
|
||||
Patch0120: 0020-xwayland-Remove-Xdnd-selection-watching-code.patch
|
||||
Patch0121: 0021-xf86Init-trim-out-non-wayland-capable-servers-from-d.patch
|
||||
Patch0122: 0022-Add-XORG_WAYLAND-symbol-to-xorg-config.h.in.patch
|
||||
Patch0123: 0023-Fix-fallback-loading-of-the-wayland-driver.patch
|
||||
Patch0124: 0024-xwayland-Don-t-include-xorg-server.h.patch
|
||||
Patch0125: 0025-os-Don-t-include-xorg-server.h.patch
|
||||
Patch0126: 0026-os-Also-define-ListenOnOpenFD-and-AddClientOnOpenFD-.patch
|
||||
Patch0127: 0027-xwayland-Remove-unused-variables.patch
|
||||
Patch0128: 0028-xwayland-Use-a-per-screen-private-key-for-cursor-pri.patch
|
||||
Patch0129: 0029-XWayland-Don-t-commit-empty-surfaces.patch
|
||||
Patch0130: 0030-xwayland-Also-look-for-wlglamor.patch
|
||||
Patch0131: 0031-xwayland-Add-wlglamor-the-right-way.patch
|
||||
Patch0132: 0032-xwayland-Don-t-redirect-windows-leave-it-to-the-wm.patch
|
||||
Patch0133: 0033-xwayland-Fix-hidden-cursor.patch
|
||||
Patch0134: 0034-xkb-Repurpose-XkbCopyDeviceKeymap-to-apply-a-given-k.patch
|
||||
Patch0135: 0035-xkb-Factor-out-a-function-to-copy-a-keymap-s-control.patch
|
||||
Patch0136: 0036-xwayland-Handle-keymap-changes.patch
|
||||
Patch0137: 0037-xwayland-Fix-re-wrapping-of-RealizeWindow.patch
|
||||
Patch0138: 0038-xwayland-Adapt-to-1.15-Damage-API.patch
|
||||
# restore ABI
|
||||
Patch0200: 0001-mustard-Restore-XkbCopyDeviceKeymap.patch
|
||||
|
||||
@ -136,10 +131,6 @@ Patch5002: xserver-1.4.99-ssh-isnt-local.patch
|
||||
Patch6030: xserver-1.6.99-right-of.patch
|
||||
#Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
|
||||
|
||||
# Fix libselinux-triggered build error
|
||||
# RedHat/Fedora-specific patch
|
||||
Patch7013: xserver-1.12-Xext-fix-selinux-build-failure.patch
|
||||
|
||||
Patch7025: 0001-Always-install-vbe-and-int10-sdk-headers.patch
|
||||
|
||||
# do not upstream - do not even use here yet
|
||||
@ -153,17 +144,6 @@ Patch8041: 0001-pixmap-fix-reverse-optimus-support-with-multiple-hea.patch
|
||||
Patch9001: 0001-xfree86-Only-look-at-wayland-capable-drivers-when-wa.patch
|
||||
Patch9002: 0001-xwayland-Just-send-the-bounding-box-of-the-damage.patch
|
||||
|
||||
# also submitted
|
||||
Patch9011: 0001-xinerama-Export-the-screen-region.patch
|
||||
Patch9012: 0002-dix-Add-PostDispatchCallback.patch
|
||||
Patch9013: 0003-damageext-Xineramify-v6.patch
|
||||
Patch9014: 0004-composite-Fix-COW-creation-for-Xinerama.patch
|
||||
Patch9015: 0005-fixes-Fix-PanoramiXSetPictureClipRegion-for-window-p.patch
|
||||
Patch9016: 0006-fixes-Fix-PanoramiXSetWindowShapeRegion.patch
|
||||
|
||||
# also also submitted, 1030454, 1030695
|
||||
Patch9050: 0001-xfree86-Prefer-fbdev-to-vesa.patch
|
||||
|
||||
%global moduledir %{_libdir}/xorg/modules
|
||||
%global drimoduledir %{_libdir}/dri
|
||||
%global sdkdir %{_includedir}/xorg
|
||||
@ -180,7 +160,7 @@ Patch9050: 0001-xfree86-Prefer-fbdev-to-vesa.patch
|
||||
%global enable_xorg --disable-xorg
|
||||
%endif
|
||||
|
||||
%ifnarch %{ix86} x86_64 %{arm}
|
||||
%ifnarch %{ix86} x86_64
|
||||
%global no_int10 --disable-vbe --disable-int10-module
|
||||
%endif
|
||||
|
||||
@ -192,10 +172,10 @@ BuildRequires: git-core
|
||||
BuildRequires: automake autoconf libtool pkgconfig
|
||||
BuildRequires: xorg-x11-util-macros >= 1.17
|
||||
|
||||
BuildRequires: xorg-x11-proto-devel >= 7.7-6
|
||||
BuildRequires: xorg-x11-proto-devel >= 7.7-8
|
||||
BuildRequires: xorg-x11-font-utils >= 7.2-11
|
||||
|
||||
BuildRequires: xorg-x11-xtrans-devel >= 1.2.7
|
||||
BuildRequires: xorg-x11-xtrans-devel >= 1.3.2
|
||||
BuildRequires: libXfont-devel libXau-devel libxkbfile-devel libXres-devel
|
||||
BuildRequires: libfontenc-devel libXtst-devel libXdmcp-devel
|
||||
BuildRequires: libX11-devel libXext-devel
|
||||
@ -207,6 +187,7 @@ BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel
|
||||
|
||||
%if !0%{?rhel}
|
||||
BuildRequires: wayland-devel pkgconfig(wayland-client)
|
||||
BuildRequires: pkgconfig(xshmfence) >= 1.1
|
||||
%endif
|
||||
BuildRequires: libXv-devel
|
||||
BuildRequires: pixman-devel >= 0.30.0
|
||||
@ -226,8 +207,6 @@ BuildRequires: libunwind-devel
|
||||
|
||||
BuildRequires: pkgconfig(xcb-aux) pkgconfig(xcb-image) pkgconfig(xcb-icccm)
|
||||
BuildRequires: pkgconfig(xcb-keysyms)
|
||||
# blocking on https://bugzilla.redhat.com/show_bug.cgi?id=1027380
|
||||
#BuildRequires: pkgconfig(xshmfence)
|
||||
|
||||
# All server subpackages have a virtual provide for the name of the server
|
||||
# they deliver. The Xorg one is versioned, the others are intentionally
|
||||
@ -298,7 +277,7 @@ Requires: xorg-x11-server-common >= %{version}-%{release}
|
||||
Provides: Xnest
|
||||
|
||||
%description Xnest
|
||||
Xnest is an X server, which has been implemented as an ordinary
|
||||
Xnest is an X server which has been implemented as an ordinary
|
||||
X application. It runs in a window just like other X applications,
|
||||
but it is an X server itself in which you can run other software. It
|
||||
is a very useful tool for developers who wish to test their
|
||||
@ -345,7 +324,7 @@ Requires: xorg-x11-server-common >= %{version}-%{release}
|
||||
Provides: Xephyr
|
||||
|
||||
%description Xephyr
|
||||
Xephyr is an X server, which has been implemented as an ordinary
|
||||
Xephyr is an X server which has been implemented as an ordinary
|
||||
X application. It runs in a window just like other X applications,
|
||||
but it is an X server itself in which you can run other software. It
|
||||
is a very useful tool for developers who wish to test their
|
||||
@ -434,7 +413,7 @@ test `getminor extension` == %{extension_minor}
|
||||
%global default_font_path "catalogue:/etc/X11/fontpath.d,built-ins"
|
||||
|
||||
%if %{with_hw_servers}
|
||||
%global dri_flags --with-dri-driver-path=%{drimoduledir} --enable-dri2
|
||||
%global dri_flags --with-dri-driver-path=%{drimoduledir} --enable-dri2 --enable-dri3
|
||||
%else
|
||||
%global dri_flags --disable-dri
|
||||
%endif
|
||||
@ -452,6 +431,7 @@ sed -i 's/WAYLAND_SCANNER_RULES.*//g' configure.ac
|
||||
# --with-pie ?
|
||||
autoreconf -f -v --install || exit 1
|
||||
# export CFLAGS="${RPM_OPT_FLAGS}"
|
||||
# XXX without dtrace
|
||||
|
||||
%configure --enable-maintainer-mode %{xservers} \
|
||||
--disable-static \
|
||||
@ -462,9 +442,9 @@ autoreconf -f -v --install || exit 1
|
||||
--with-builderstring="Build ID: %{name} %{version}-%{release}" \
|
||||
--with-os-name="$(hostname -s) $(uname -r)" \
|
||||
--with-xkb-output=%{_localstatedir}/lib/xkb \
|
||||
--with-dtrace \
|
||||
--without-dtrace \
|
||||
--disable-linux-acpi --disable-linux-apm \
|
||||
--enable-xselinux --enable-record \
|
||||
--enable-xselinux --enable-record --enable-present \
|
||||
--enable-config-udev \
|
||||
--disable-unit-tests \
|
||||
%{?wayland} \
|
||||
@ -538,7 +518,7 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
||||
rm -rf $RPM_BUILD_ROOT%{_defaultdocdir}/xorg-server
|
||||
%endif
|
||||
# wtf
|
||||
%ifnarch %{ix86} x86_64 %{arm}
|
||||
%ifnarch %{ix86} x86_64
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/lib{int10,vbe}.so
|
||||
%endif
|
||||
}
|
||||
@ -586,7 +566,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_libdir}/xorg/modules/libshadowfb.so
|
||||
%{_libdir}/xorg/modules/libvgahw.so
|
||||
%{_libdir}/xorg/modules/libwfb.so
|
||||
%ifarch %{ix86} x86_64 %{arm}
|
||||
%ifarch %{ix86} x86_64
|
||||
%{_libdir}/xorg/modules/libint10.so
|
||||
%{_libdir}/xorg/modules/libvbe.so
|
||||
%endif
|
||||
@ -643,9 +623,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%if %{with_hw_servers}
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc COPYING
|
||||
%{_docdir}/xorg-server
|
||||
%defattr(-,root,root,-)
|
||||
#{_docdir}/xorg-server
|
||||
%{_bindir}/xserver-sdk-abi-requires
|
||||
%{_libdir}/pkgconfig/xorg-server.pc
|
||||
%dir %{_includedir}/xorg
|
||||
@ -659,6 +639,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Tue Dec 17 2013 Adam Jackson <ajax@redhat.com> 1.14.99.904-1
|
||||
- 1.15RC4
|
||||
- Re-disable int10 on arm
|
||||
|
||||
* Mon Dec 2 2013 Peter Robinson <pbrobinson@fedoraproject.org> 1.14.99.902-2
|
||||
- Add aarch64 to platforms that have libunwind
|
||||
|
||||
|
@ -1,52 +0,0 @@
|
||||
From 5d16c39108c72b08478b6bd548494d6c675495ee Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Wed, 4 Jan 2012 09:31:51 +1000
|
||||
Subject: [PATCH 6/7] Xext: fix selinux build failure
|
||||
|
||||
The server builds with -Werror=missing-braces, causing
|
||||
|
||||
xselinux_hooks.c: In function 'SELinuxFlaskInit':
|
||||
xselinux_hooks.c:851:12: error: missing braces around initializer
|
||||
[-Werror=missing-braces]
|
||||
xselinux_hooks.c:851:12: error: (near initialization for
|
||||
'avc_option.<anonymous>') [-Werror=missing-braces]
|
||||
cc1: some warnings being treated as errors
|
||||
|
||||
Source is libselinux' libselinux-rhat.patch which changes struct selinux_opt
|
||||
from { int, char * } to { int, union { char*, char** }}.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xext/xselinux_hooks.c | 2 +-
|
||||
Xext/xselinux_label.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c
|
||||
index e9c7e93..0302f2f 100644
|
||||
--- a/Xext/xselinux_hooks.c
|
||||
+++ b/Xext/xselinux_hooks.c
|
||||
@@ -851,7 +851,7 @@ SELinuxFlaskReset(void)
|
||||
void
|
||||
SELinuxFlaskInit(void)
|
||||
{
|
||||
- struct selinux_opt avc_option = { AVC_OPT_SETENFORCE, (char *) 0 };
|
||||
+ struct selinux_opt avc_option = { AVC_OPT_SETENFORCE, { (char *) 0 } };
|
||||
security_context_t ctx;
|
||||
int ret = TRUE;
|
||||
|
||||
diff --git a/Xext/xselinux_label.c b/Xext/xselinux_label.c
|
||||
index 2c33d1c..81f2f36 100644
|
||||
--- a/Xext/xselinux_label.c
|
||||
+++ b/Xext/xselinux_label.c
|
||||
@@ -361,7 +361,7 @@ SELinuxDefaultClientLabel(void)
|
||||
void
|
||||
SELinuxLabelInit(void)
|
||||
{
|
||||
- struct selinux_opt selabel_option = { SELABEL_OPT_VALIDATE, (char *) 1 };
|
||||
+ struct selinux_opt selabel_option = { SELABEL_OPT_VALIDATE, { (char *)1 } };
|
||||
|
||||
label_hnd = selabel_open(SELABEL_CTX_X, &selabel_option, 1);
|
||||
if (!label_hnd)
|
||||
--
|
||||
1.7.10.1
|
||||
|
Loading…
Reference in New Issue
Block a user