summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch13
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch21
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch2
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch50
-rwxr-xr-xmeta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch12
-rwxr-xr-xmeta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch23
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch156
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch179
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch38
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch105
-rw-r--r--meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb21
15 files changed, 15 insertions, 624 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
index b121bba655..6b1b40f62e 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/cache-xkbcomp-output-for-fast-start-up.patch
@@ -7,6 +7,8 @@ Organization: Intel
7xkbcomp outputs will be cached in files with hashed keymap as 7xkbcomp outputs will be cached in files with hashed keymap as
8names. This saves boot time for around 1s on commodity netbooks. 8names. This saves boot time for around 1s on commodity netbooks.
9 9
10Upstream-Status: Pending
11
10Signed-off-by: Yan Li <yan.i.li@intel.com> 12Signed-off-by: Yan Li <yan.i.li@intel.com>
11--- 13---
12 configure.ac | 6 +- 14 configure.ac | 6 +-
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
index 8b82de2223..2f98bb8c89 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/crosscompile.patch
@@ -1,3 +1,5 @@
1Upstream-Status: Inappropriate [configuration]
2
1diff --git a/configure.ac b/configure.ac 3diff --git a/configure.ac b/configure.ac
2index b3b752c..600500b 100644 4index b3b752c..600500b 100644
3--- a/configure.ac 5--- a/configure.ac
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
deleted file mode 100644
index 092a712903..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/doublefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: xorg-server-1.6.0/hw/xfree86/common/Makefile.am
2===================================================================
3--- xorg-server-1.6.0.orig/hw/xfree86/common/Makefile.am 2010-02-01 14:04:53.247789918 +0000
4+++ xorg-server-1.6.0/hw/xfree86/common/Makefile.am 2010-02-01 14:05:27.787817002 +0000
5@@ -46,7 +46,7 @@
6 sdk_HEADERS = compiler.h fourcc.h xf86.h xf86Module.h xf86Opt.h \
7 xf86PciInfo.h xf86Priv.h xf86Privstr.h xf86Resources.h \
8 xf86cmap.h xf86fbman.h xf86str.h xf86RAC.h xf86Xinput.h xisb.h \
9- $(XVSDKINCS) xorgVersion.h \
10+ xorgVersion.h \
11 xf86sbusBus.h xf86xv.h xf86xvmc.h xf86xvpriv.h
12
13 DISTCLEANFILES = xf86Build.h
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
deleted file mode 100644
index a62a767f23..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
1Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am
2===================================================================
3--- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am 2007-08-23 21:04:53.000000000 +0200
4+++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am 2008-03-13 18:27:23.000000000 +0100
5@@ -41,7 +41,7 @@
6
7 AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES)
8
9-INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack
10+INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS)
11
12 # FIXME: These need to be added to the build
13 LNX_EXTRA_SRCS = \
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
deleted file mode 100644
index eed491b4d9..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1We need to insert the sysroot path into compiler commandlines for this
2kind of variable use, otherwise we're looking into /usr/include/.
3
4RP - 26/11/09
5
6Index: git/xorg-server.m4
7===================================================================
8--- git.orig/xorg-server.m4 2009-11-10 12:04:34.000000000 +0000
9+++ git/xorg-server.m4 2009-11-27 00:05:02.000000000 +0000
10@@ -28,9 +28,10 @@
11 # Checks for the $1 define in xorg-server.h (from the sdk). If it
12 # is defined, then add $1 to $REQUIRED_MODULES.
13
14+m4_pattern_allow([^PKG_CONFIG_SYSROOT_DIR$])
15 AC_DEFUN([XORG_DRIVER_CHECK_EXT],[
16 SAVE_CFLAGS="$CFLAGS"
17- CFLAGS="$CFLAGS -I`pkg-config --variable=sdkdir xorg-server`"
18+ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`pkg-config --variable=sdkdir xorg-server`"
19 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
20 #include "xorg-server.h"
21 #if !defined $1
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
index 94852f0dea..b2c8d58f52 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_macros1.patch
@@ -3,6 +3,8 @@ kind of variable use, otherwise we're looking into /usr/include/.
3 3
4RP - 26/11/09 4RP - 26/11/09
5 5
6Upstream-Status: Pending
7
6Index: git/xorg-server.m4 8Index: git/xorg-server.m4
7=================================================================== 9===================================================================
8--- git.orig/xorg-server.m4 2010-02-05 10:00:55.000000000 +0000 10--- git.orig/xorg-server.m4 2010-02-05 10:00:55.000000000 +0000
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
index 565832eed8..9c33072c5d 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/fix_open_max_preprocessor_error.patch
@@ -1,3 +1,5 @@
1Upstream-Status: Inappropriate [embedded specific]
2
1Index: git/os/osdep.h 3Index: git/os/osdep.h
2=================================================================== 4===================================================================
3--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100 5--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
deleted file mode 100644
index db29da93ca..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/libdri-xinerama-symbol.patch
+++ /dev/null
@@ -1,50 +0,0 @@
1Index: xorg-server-1.5.0/hw/xfree86/dri/dri.c
2===================================================================
3--- xorg-server-1.5.0.orig/hw/xfree86/dri/dri.c 2008-09-24 17:43:04.000000000 +0100
4+++ xorg-server-1.5.0/hw/xfree86/dri/dri.c 2008-09-24 17:46:38.000000000 +0100
5@@ -73,10 +73,6 @@
6
7 #define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu)
8
9-#if !defined(PANORAMIX)
10-extern Bool noPanoramiXExtension;
11-#endif
12-
13 static int DRIEntPrivIndex = -1;
14 static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey;
15 static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey;
16@@ -307,7 +303,6 @@
17 drm_context_t * reserved;
18 int reserved_count;
19 int i;
20- Bool xineramaInCore = FALSE;
21 DRIEntPrivPtr pDRIEntPriv;
22 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
23 DRIContextFlags flags = 0;
24@@ -320,20 +315,13 @@
25 return FALSE;
26 }
27
28- /*
29- * If Xinerama is on, don't allow DRI to initialise. It won't be usable
30- * anyway.
31- */
32- if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
33- xineramaInCore = TRUE;
34-
35- if (xineramaInCore) {
36- if (!noPanoramiXExtension) {
37- DRIDrvMsg(pScreen->myNum, X_WARNING,
38- "Direct rendering is not supported when Xinerama is enabled\n");
39- return FALSE;
40- }
41+#if defined(PANORAMIX)
42+ if (!noPanoramiXExtension) {
43+ DRIDrvMsg(pScreen->myNum, X_WARNING,
44+ "Direct rendering is not supported when Xinerama is enabled\n");
45+ return FALSE;
46 }
47+#endif
48
49 if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize,
50 pDRIInfo->busIdString,
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
deleted file mode 100755
index 3d2fa1669a..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-disable-dri_sarea.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1diff -urN xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c
2--- xorg-server-1.5.99.1/hw/xfree86/dri2/dri2.c 2008-09-01 03:26:37.000000000 +0800
3+++ xorg-server-1.5.99.1.new/hw/xfree86/dri2/dri2.c 2008-09-18 00:28:16.000000000 +0800
4@@ -39,7 +39,7 @@
5 #include "scrnintstr.h"
6 #include "windowstr.h"
7 #include "dri2.h"
8-#include <GL/internal/dri_sarea.h>
9+//#include <GL/internal/dri_sarea.h>
10
11 #include "xf86.h"
12
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
deleted file mode 100755
index 7ff3658d0c..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xorg-server-enable-dri2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
1commit 67b9b3a77a8b86eef03af36a0f4be3a07411efee
2Author: Eric Anholt <eric@anholt.net>
3Date: Thu Sep 11 16:18:17 2008 -0700
4
5 Enable DRI2 build.
6
7diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
8index eff2c31..98d7ec8 100644
9--- a/hw/xfree86/Makefile.am
10+++ b/hw/xfree86/Makefile.am
11@@ -4,9 +4,9 @@ if DRI
12 DRI_SUBDIR = dri
13 endif
14
15-#if DRI2
16-#DRI2_SUBDIR = dri2
17-#endif
18+if DRI2
19+DRI2_SUBDIR = dri2
20+endif
21
22 if XF86UTILS
23 XF86UTILS_SUBDIR = utils
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
deleted file mode 100644
index ef53689bd0..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-1.5.0-bg-none-root.patch
+++ /dev/null
@@ -1,156 +0,0 @@
1From a3e15680da24cb8259f6a83dee0c930dab024290 Mon Sep 17 00:00:00 2001
2From: Kristian <krh@redhat.com>
3Date: Fri, 15 Aug 2008 15:15:14 +1000
4Subject: [PATCH] Add nr for background=none root
5
6---
7 dix/globals.c | 1 +
8 dix/window.c | 22 ++++++++++++----------
9 hw/xfree86/common/xf86Init.c | 11 +++++++++++
10 hw/xfree86/common/xf86str.h | 5 ++++-
11 include/opaque.h | 1 +
12 os/utils.c | 3 +++
13 6 files changed, 32 insertions(+), 11 deletions(-)
14
15diff --git a/dix/globals.c b/dix/globals.c
16index 973dc43..dbd76bb 100644
17--- a/dix/globals.c
18+++ b/dix/globals.c
19@@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in
20 CursorPtr rootCursor;
21 Bool party_like_its_1989 = FALSE;
22 Bool whiteRoot = FALSE;
23+Bool bgNoneRoot = FALSE;
24
25 int cursorScreenDevPriv[MAXSCREENS];
26
27diff --git a/dix/window.c b/dix/window.c
28index c31fa87..8bb178d 100644
29--- a/dix/window.c
30+++ b/dix/window.c
31@@ -482,23 +482,24 @@ InitRootWindow(WindowPtr pWin)
32 pWin->cursorIsNone = FALSE;
33 pWin->optional->cursor = rootCursor;
34 rootCursor->refcnt++;
35-
36+ pWin->backingStore = defaultBackingStore;
37+ pWin->forcedBS = (defaultBackingStore != NotUseful);
38
39 if (party_like_its_1989) {
40 MakeRootTile(pWin);
41 backFlag |= CWBackPixmap;
42+ pScreen->ChangeWindowAttributes(pWin, backFlag);
43+ } else if (bgNoneRoot) {
44+ /* nothing, handled in xf86CreateRootWindow */
45 } else {
46 if (whiteRoot)
47 pWin->background.pixel = pScreen->whitePixel;
48 else
49 pWin->background.pixel = pScreen->blackPixel;
50 backFlag |= CWBackPixel;
51- }
52
53- pWin->backingStore = defaultBackingStore;
54- pWin->forcedBS = (defaultBackingStore != NotUseful);
55- /* We SHOULD check for an error value here XXX */
56- (*pScreen->ChangeWindowAttributes)(pWin, backFlag);
57+ pScreen->ChangeWindowAttributes(pWin, backFlag);
58+ }
59
60 MapWindow(pWin, serverClient);
61 }
62diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
63index 236c00b..083a6ac 100644
64--- a/hw/xfree86/common/xf86Init.c
65+++ b/hw/xfree86/common/xf86Init.c
66@@ -79,6 +79,7 @@
67 #ifdef RENDER
68 #include "picturestr.h"
69 #endif
70+#include "xace.h"
71
72 #include "globals.h"
73
74@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin)
75 int ret = TRUE;
76 int err = Success;
77 ScreenPtr pScreen = pWin->drawable.pScreen;
78+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
79 RootWinPropPtr pProp;
80 CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
81 dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
82@@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin)
83 }
84 }
85
86+ if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) {
87+ pWin->backgroundState = XaceBackgroundNoneState(pWin);
88+ pWin->background.pixel = pScreen->whitePixel;
89+ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore);
90+ } else {
91+ pWin->background.pixel = pScreen->blackPixel;
92+ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore);
93+ }
94+
95 #ifdef DEBUG
96 ErrorF("xf86CreateRootWindow() returns %d\n", ret);
97 #endif
98diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h
99index 904c369..8c38f69 100644
100--- a/hw/xfree86/common/xf86str.h
101+++ b/hw/xfree86/common/xf86str.h
102@@ -531,7 +531,7 @@ typedef struct _confdrirec {
103 } confDRIRec, *confDRIPtr;
104
105 /* These values should be adjusted when new fields are added to ScrnInfoRec */
106-#define NUM_RESERVED_INTS 16
107+#define NUM_RESERVED_INTS 15
108 #define NUM_RESERVED_POINTERS 15
109 #define NUM_RESERVED_FUNCS 11
110
111@@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec {
112 ClockRangesPtr clockRanges;
113 int adjustFlags;
114
115+ /* -nr support */
116+ int canDoBGNoneRoot;
117+
118 /*
119 * These can be used when the minor ABI version is incremented.
120 * The NUM_* parameters must be reduced appropriately to keep the
121diff --git a/include/opaque.h b/include/opaque.h
122index 07a0715..be1577b 100644
123--- a/include/opaque.h
124+++ b/include/opaque.h
125@@ -71,6 +71,7 @@ extern Bool defeatAccessControl;
126 extern long maxBigRequestSize;
127 extern Bool party_like_its_1989;
128 extern Bool whiteRoot;
129+extern Bool bgNoneRoot;
130
131 extern Bool CoreDump;
132
133diff --git a/os/utils.c b/os/utils.c
134index b100949..c41b45b 100644
135--- a/os/utils.c
136+++ b/os/utils.c
137@@ -515,6 +515,7 @@ void UseMsg(void)
138 #endif
139 ErrorF("-nolisten string don't listen on protocol\n");
140 ErrorF("-noreset don't reset after last client exists\n");
141+ ErrorF("-nr create root window with no background\n");
142 ErrorF("-reset reset after last client exists\n");
143 ErrorF("-p # screen-saver pattern duration (minutes)\n");
144 ErrorF("-pn accept failure to listen on all ports\n");
145@@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[])
146 defaultBackingStore = WhenMapped;
147 else if ( strcmp( argv[i], "-wr") == 0)
148 whiteRoot = TRUE;
149+ else if ( strcmp( argv[i], "-nr") == 0)
150+ bgNoneRoot = TRUE;
151 else if ( strcmp( argv[i], "-maxbigreqsize") == 0) {
152 if(++i < argc) {
153 long reqSizeArg = atol(argv[i]);
154--
1551.5.3.4
156
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
deleted file mode 100644
index 2754170d2f..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-DRI2Swapbuffer.patch
+++ /dev/null
@@ -1,179 +0,0 @@
1diff --git a/glx/glxdri2.c b/glx/glxdri2.c
2index 146ea82..3b5338b 100644
3--- a/glx/glxdri2.c
4+++ b/glx/glxdri2.c
5@@ -70,6 +70,7 @@ struct __GLXDRIscreen {
6
7 const __DRIcoreExtension *core;
8 const __DRIdri2Extension *dri2;
9+ const __DRI2flushExtension *flush;
10 const __DRIcopySubBufferExtension *copySubBuffer;
11 const __DRIswapControlExtension *swapControl;
12 const __DRItexBufferExtension *texBuffer;
13@@ -135,10 +136,14 @@ __glXDRIdrawableCopySubBuffer(__GLXdrawable *drawable,
14 static GLboolean
15 __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable)
16 {
17- __GLXDRIdrawable *private = (__GLXDRIdrawable *) drawable;
18+ __GLXDRIdrawable *priv = (__GLXDRIdrawable *) drawable;
19+ __GLXDRIscreen *screen = priv->screen;
20+
21+ if (!DRI2SwapBuffers(drawable->pDraw))
22+ return FALSE;
23
24- __glXDRIdrawableCopySubBuffer(drawable, 0, 0,
25- private->width, private->height);
26+ if (screen->flush->flushInvalidate)
27+ (*screen->flush->flushInvalidate)(priv->driDrawable);
28
29 return TRUE;
30 }
31diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
32index 580383d..23e6467 100644
33--- a/hw/xfree86/dri2/dri2.c
34+++ b/hw/xfree86/dri2/dri2.c
35@@ -70,6 +70,7 @@ typedef struct _DRI2Screen {
36 DRI2CreateBufferProcPtr CreateBuffer;
37 DRI2DestroyBufferProcPtr DestroyBuffer;
38 DRI2CopyRegionProcPtr CopyRegion;
39+ DRI2SwapBuffersProcPtr SwapBuffers;
40
41 HandleExposuresProcPtr HandleExposures;
42 } DRI2ScreenRec, *DRI2ScreenPtr;
43@@ -422,6 +423,49 @@ DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
44 return Success;
45 }
46
47+Bool
48+DRI2SwapBuffers(DrawablePtr pDraw)
49+{
50+ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen);
51+ DRI2DrawablePtr pPriv;
52+ DRI2BufferPtr pDestBuffer, pSrcBuffer;
53+ int i;
54+
55+ pPriv = DRI2GetDrawable(pDraw);
56+ if (pPriv == NULL)
57+ return FALSE;
58+
59+ pDestBuffer = NULL;
60+ pSrcBuffer = NULL;
61+ for (i = 0; i < pPriv->bufferCount; i++)
62+ {
63+ if (pPriv->buffers[i]->attachment == DRI2BufferFrontLeft)
64+ pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i];
65+ if (pPriv->buffers[i]->attachment == DRI2BufferBackLeft)
66+ pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i];
67+ }
68+ if (pSrcBuffer == NULL || pDestBuffer == NULL)
69+ return FALSE;
70+
71+ if (ds->SwapBuffers) {
72+ if ((*ds->SwapBuffers)(pDraw, pDestBuffer, pSrcBuffer))
73+ return TRUE;
74+ }
75+
76+ BoxRec box;
77+ RegionRec region;
78+
79+ box.x1 = 0;
80+ box.y1 = 0;
81+ box.x2 = pDraw->width;
82+ box.y2 = pDraw->height;
83+ REGION_INIT(drawable->pDraw->pScreen, &region, &box, 0);
84+ if (DRI2CopyRegion(pDraw, &region, DRI2BufferFrontLeft, DRI2BufferBackLeft) != Success)
85+ return FALSE;
86+
87+ return TRUE;
88+}
89+
90 void
91 DRI2DestroyDrawable(DrawablePtr pDraw)
92 {
93@@ -538,6 +582,9 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
94 }
95 ds->CopyRegion = info->CopyRegion;
96
97+ if (info->version >= 3)
98+ ds->SwapBuffers = info->SwapBuffers;
99+
100 dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds);
101
102 xf86DrvMsg(pScreen->myNum, X_INFO, "[DRI2] Setup complete\n");
103diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
104index f369267..e2784dd 100644
105--- a/hw/xfree86/dri2/dri2.h
106+++ b/hw/xfree86/dri2/dri2.h
107@@ -67,6 +67,10 @@ typedef void (*DRI2CopyRegionProcPtr)(DrawablePtr pDraw,
108 DRI2BufferPtr pDestBuffer,
109 DRI2BufferPtr pSrcBuffer);
110
111+typedef Bool (*DRI2SwapBuffersProcPtr)(DrawablePtr pDraw,
112+ DRI2BufferPtr pFrontBuffer,
113+ DRI2BufferPtr pBackBuffer);
114+
115 typedef void (*DRI2WaitProcPtr)(WindowPtr pWin,
116 unsigned int sequence);
117
118@@ -90,6 +94,7 @@ typedef struct {
119 DRI2CreateBuffersProcPtr CreateBuffers;
120 DRI2DestroyBuffersProcPtr DestroyBuffers;
121 DRI2CopyRegionProcPtr CopyRegion;
122+ DRI2SwapBuffersProcPtr SwapBuffers;
123 DRI2WaitProcPtr Wait;
124
125 /**
126@@ -153,4 +158,6 @@ extern _X_EXPORT DRI2Buffer2Ptr *DRI2GetBuffersWithFormat(DrawablePtr pDraw,
127 int *width, int *height, unsigned int *attachments, int count,
128 int *out_count);
129
130+extern _X_EXPORT Bool DRI2SwapBuffers(DrawablePtr pDraw);
131+
132 #endif
133diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
134index 3c06174..67b419b 100644
135--- a/hw/xfree86/dri2/dri2ext.c
136+++ b/hw/xfree86/dri2/dri2ext.c
137@@ -81,7 +81,7 @@ ProcDRI2QueryVersion(ClientPtr client)
138 rep.length = 0;
139 rep.sequenceNumber = client->sequence;
140 rep.majorVersion = 1;
141- rep.minorVersion = 1;
142+ rep.minorVersion = 2;
143
144 if (client->swapped) {
145 swaps(&rep.sequenceNumber, n);
146@@ -323,6 +323,24 @@ ProcDRI2CopyRegion(ClientPtr client)
147 }
148
149 static int
150+ProcDRI2SwapBuffers(ClientPtr client)
151+{
152+ REQUEST(xDRI2SwapBuffersReq);
153+ DrawablePtr pDrawable;
154+ int status;
155+
156+ REQUEST_SIZE_MATCH(xDRI2SwapBuffersReq);
157+
158+ if (!validDrawable(client, stuff->drawable, &pDrawable, &status))
159+ return status;
160+
161+ if (!DRI2SwapBuffers(pDrawable))
162+ return BadAlloc;
163+
164+ return client->noClientException;
165+}
166+
167+static int
168 ProcDRI2Dispatch (ClientPtr client)
169 {
170 REQUEST(xReq);
171@@ -350,6 +368,8 @@ ProcDRI2Dispatch (ClientPtr client)
172 return ProcDRI2CopyRegion(client);
173 case X_DRI2GetBuffersWithFormat:
174 return ProcDRI2GetBuffersWithFormat(client);
175+ case X_DRI2SwapBuffers:
176+ return ProcDRI2SwapBuffers(client);
177 default:
178 return BadRequest;
179 }
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
deleted file mode 100644
index efc85a42ab..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-boottime.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1diff --git a/os/log.c b/os/log.c
2index 0860847..2c46f1a 100644
3--- a/os/log.c
4+++ b/os/log.c
5@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_list args)
6 static char tmpBuffer[1024];
7 int len = 0;
8
9+ struct timeval time;
10+ time_t tv_sec;
11+ suseconds_t tv_usec;
12+ static Bool first = TRUE;
13+ static time_t start_tv_sec;
14+ static suseconds_t start_usec;
15+ int diff_sec, diff_usec;
16+
17+ gettimeofday(&time, NULL);
18+ tv_sec = time.tv_sec;
19+ tv_usec = time.tv_usec;
20+ if (first == TRUE) {
21+ start_tv_sec = tv_sec;
22+ start_usec = tv_usec;
23+ first = FALSE;
24+ }
25+ diff_sec = (int)difftime(tv_sec, start_tv_sec);
26+ diff_usec = (tv_usec - start_usec);
27+ if (diff_usec < 0) {
28+ diff_sec--;
29+ diff_usec += 1000000;
30+ }
31+ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec);
32+ len = strlen(tmpBuffer);
33+ if (logFile)
34+ fwrite(tmpBuffer, len, 1, logFile);
35+
36 /*
37 * Since a va_list can only be processed once, write the string to a
38 * buffer, and then write the buffer out to the appropriate output
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
deleted file mode 100644
index afc94dcc5c..0000000000
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite/xserver-no-root-2.patch
+++ /dev/null
@@ -1,105 +0,0 @@
1diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
2index 7f40857..cf58c01 100644
3--- a/hw/xfree86/os-support/linux/lnx_init.c
4+++ b/hw/xfree86/os-support/linux/lnx_init.c
5@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE;
6 static int VTnum = -1;
7 static Bool VTSwitch = TRUE;
8 static Bool ShareVTs = FALSE;
9+Bool NoHwAccess = FALSE;
10 static int activeVT = -1;
11
12 static int vtPermSave[4];
13@@ -80,9 +81,11 @@ saveVtPerms(void)
14 static void
15 restoreVtPerms(void)
16 {
17- /* Set the terminal permissions back to before we started. */
18- chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
19- chown(vtname, vtPermSave[2], vtPermSave[3]);
20+ if (geteuid() == 0) {
21+ /* Set the terminal permissions back to before we started. */
22+ (void)chown("/dev/tty0", vtPermSave[0], vtPermSave[1]);
23+ (void)chown(vtname, vtPermSave[2], vtPermSave[3]);
24+ }
25 }
26
27 static void *console_handler;
28@@ -210,20 +213,22 @@ xf86OpenConsole(void)
29 xf86Msg(X_WARNING,
30 "xf86OpenConsole: Could not save ownership of VT\n");
31
32- /* change ownership of the vt */
33- if (chown(vtname, getuid(), getgid()) < 0)
34- xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
35- vtname, strerror(errno));
36-
37- /*
38- * the current VT device we're running on is not "console", we want
39- * to grab all consoles too
40- *
41- * Why is this needed??
42- */
43- if (chown("/dev/tty0", getuid(), getgid()) < 0)
44- xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
45- strerror(errno));
46+ if (geteuid() == 0) {
47+ /* change ownership of the vt */
48+ if (chown(vtname, getuid(), getgid()) < 0)
49+ xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n",
50+ vtname, strerror(errno));
51+
52+ /*
53+ * the current VT device we're running on is not
54+ * "console", we want to grab all consoles too
55+ *
56+ * Why is this needed??
57+ */
58+ if (chown("/dev/tty0", getuid(), getgid()) < 0)
59+ xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n",
60+ strerror(errno));
61+ }
62 }
63
64 /*
65@@ -433,6 +438,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
66 ShareVTs = TRUE;
67 return(1);
68 }
69+ if (!strcmp(argv[i], "-nohwaccess"))
70+ {
71+ NoHwAccess = TRUE;
72+ return(1);
73+ }
74 if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
75 {
76 if (sscanf(argv[i], "vt%2d", &VTnum) == 0)
77@@ -454,5 +464,6 @@ xf86UseMsg()
78 ErrorF("don't detach controlling tty (for debugging only)\n");
79 ErrorF("-novtswitch don't immediately switch to new VT\n");
80 ErrorF("-sharevts share VTs with another X server\n");
81+ ErrorF("-nohwaccess don't access hardware ports directly\n");
82 return;
83 }
84diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
85index 688106a..34a845b 100644
86--- a/hw/xfree86/os-support/linux/lnx_video.c
87+++ b/hw/xfree86/os-support/linux/lnx_video.c
88@@ -51,6 +51,7 @@
89 #define MAP_FAILED ((void *)-1)
90 #endif
91
92+extern Bool NoHwAccess;
93 static Bool ExtendedEnabled = FALSE;
94
95 #ifdef __ia64__
96@@ -509,6 +510,9 @@ xf86EnableIO(void)
97 int fd;
98 unsigned int ioBase_phys;
99 #endif
100+ /* Fake it... */
101+ if (NoHwAccess)
102+ return TRUE;
103
104 if (ExtendedEnabled)
105 return TRUE;
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb
index 850db4966f..adefcdbca5 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-dri-lite_git.bb
@@ -1,9 +1,11 @@
1require xserver-xf86-dri-lite.inc 1require xserver-xf86-dri-lite.inc
2 2
3SRCREV = "251d0d8090322b2c9dc0c8b7bef001f338d19433" 3LIC_FILES_CHKSUM = "file://COPYING;md5=74df27b6254cc88d2799b5f4f5949c00"
4
5SRCREV = "6689e8add183835274a70ee013e5d3bc8023681f"
4PE = "1" 6PE = "1"
5PR = "r0" 7PR = "r0"
6PV = "1.7.99+git${SRCPV}" 8PV = "1.10+git${SRCPV}"
7 9
8PROTO_DEPS += "xf86driproto dri2proto" 10PROTO_DEPS += "xf86driproto dri2proto"
9 11
@@ -11,21 +13,12 @@ DEPENDS += "font-util"
11 13
12RDEPENDS_${PN} += "xkeyboard-config" 14RDEPENDS_${PN} += "xkeyboard-config"
13 15
14# file://cache-xkbcomp-output-for-fast-start-up.patch;patch=1
15# file://xserver-1.5.0-bg-none-root.patch;patch=1
16# file://xserver-no-root-2.patch;patch=1
17# file://xserver-boottime.patch;patch=1
18# file://xserver-DRI2Swapbuffer.patch;patch=1
19
20
21SRC_URI = "git://anongit.freedesktop.org/git/xorg/xserver;protocol=git;branch=master \ 16SRC_URI = "git://anongit.freedesktop.org/git/xorg/xserver;protocol=git;branch=master \
22 file://nodolt.patch;patch=1 \ 17 file://crosscompile.patch; \
23 file://crosscompile.patch;patch=1 \ 18 file://fix_macros1.patch;"
24 file://fix_macros1.patch;patch=1"
25# file://libdri-xinerama-symbol.patch;patch=1
26 19
27# Misc build failure for master HEAD 20# Misc build failure for master HEAD
28SRC_URI += "file://fix_open_max_preprocessor_error.patch;patch=1" 21SRC_URI += "file://fix_open_max_preprocessor_error.patch;"
29 22
30EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga" 23EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga"
31 24