- Re-disable int10 on arm
This commit is contained in:
Adam Jackson 2013-12-17 10:17:41 -05:00
parent bcd21a0039
commit 48dc8f4c68
62 changed files with 385 additions and 1806 deletions

View 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

View File

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

View File

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

View 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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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

View 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

View File

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

View File

@ -1 +1 @@
57b14ddab3693ce48eafcb9607a87353 xorg-server-1.14.99.902.tar.bz2
c2f45a61a3cdf480c59d3f3dcc11bdc7 xorg-server-1.14.99.904.tar.bz2

View File

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

View File

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