From 86450998da616e3d00d4d6293acc35eccc2061e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?=
Date: Thu, 7 Sep 2006 15:35:16 -0400
Subject: [PATCH 01/18] Fix AIGLX VT switching.
See https://bugs.freedesktop.org/show_bug.cgi?id=7916
There may be a simpler, less intrusive fix that involves just rearranging
DRI locking between 2D and 3D drivers around VT switch.
---
GL/glx/glxdri.c | 36 +++++++++++++++++--
GL/glx/glxext.c | 90 ++++++++++++++++++++++++++++++++++------------
GL/glx/glxserver.h | 5 +--
3 files changed, 104 insertions(+), 27 deletions(-)
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 41e49e225..b5723049d 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -73,6 +73,9 @@ struct __GLXDRIscreen {
__DRIscreen driScreen;
void *driver;
+ xf86EnterVTProc *enterVT;
+ xf86LeaveVTProc *leaveVT;
+
unsigned char glx_enable_bits[__GLX_EXT_BYTES];
};
@@ -622,8 +625,7 @@ static __DRIfuncPtr getProcAddress(const char *proc_name)
static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn)
{
- __GLXDRIscreen *screen =
- (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
return &screen->driScreen;
}
@@ -817,6 +819,30 @@ static const __DRIinterfaceMethods interface_methods = {
static const char dri_driver_path[] = DRI_DRIVER_PATH;
+static Bool
+glxDRIEnterVT (int index, int flags)
+{
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+ LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
+
+ glxResumeClients();
+
+ return (*screen->enterVT) (index, flags);
+}
+
+static void
+glxDRILeaveVT (int index, int flags)
+{
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+ LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
+
+ glxSuspendClients();
+
+ return (*screen->leaveVT) (index, flags);
+}
+
static __GLXscreen *
__glXDRIscreenProbe(ScreenPtr pScreen)
{
@@ -842,6 +868,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
char filename[128];
Bool isCapable;
size_t buffer_size;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) {
LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n");
@@ -1029,6 +1056,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
__glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer);
+ screen->enterVT = pScrn->EnterVT;
+ pScrn->EnterVT = glxDRIEnterVT;
+ screen->leaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = glxDRILeaveVT;
+
LogMessage(X_INFO,
"AIGLX: Loaded and initialized %s\n", filename);
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index fdb8ea262..11fb7fcaf 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -59,10 +59,7 @@ xGLXSingleReply __glXReply;
** A set of state for each client. The 0th one is unused because client
** indices start at 1, not 0.
*/
-__GLXclientState *__glXClients[MAXCLIENTS+1];
-
-
-static Bool inDispatch;
+static __GLXclientState *__glXClients[MAXCLIENTS + 1];
/*
** Forward declarations.
@@ -219,6 +216,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
return True;
}
+static __GLXcontext *glxPendingDestroyContexts;
+static int glxServerLeaveCount;
+static int glxBlockClients;
+
/*
** Free a context.
*/
@@ -236,13 +237,14 @@ GLboolean __glXFreeContext(__GLXcontext *cx)
* __glXDispatch() or as a callback from the resource manager. In
* the latter case we need to lift the DRI lock manually. */
- if (!inDispatch)
- __glXleaveServer();
-
- cx->destroy(cx);
-
- if (!inDispatch)
- __glXenterServer();
+ if (glxBlockClients) {
+ __glXleaveServer();
+ cx->destroy(cx);
+ __glXenterServer();
+ } else {
+ cx->next = glxPendingDestroyContexts;
+ glxPendingDestroyContexts = cx;
+ }
return GL_TRUE;
}
@@ -338,7 +340,7 @@ void GlxExtensionInit(void)
/*
** Initialize table of client state. There is never a client 0.
*/
- for (i=1; i <= MAXCLIENTS; i++) {
+ for (i = 1; i <= MAXCLIENTS; i++) {
__glXClients[i] = 0;
}
@@ -409,11 +411,43 @@ __GLXcontext *__glXForceCurrent(__GLXclientState *cl, GLXContextTag tag,
/************************************************************************/
-/*
-** Top level dispatcher; all commands are executed from here down.
-*/
+void glxSuspendClients(void)
+{
+ int i;
-/* I cried when I wrote this. Damn you XAA! */
+ for (i = 1; i <= MAXCLIENTS; i++) {
+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+ continue;
+
+ IgnoreClient(__glXClients[i]->client);
+ }
+
+ glxBlockClients = TRUE;
+}
+
+void glxResumeClients(void)
+{
+ __GLXcontext *cx, *next;
+ int i;
+
+ glxBlockClients = FALSE;
+
+ for (i = 1; i <= MAXCLIENTS; i++) {
+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+ continue;
+
+ AttendClient(__glXClients[i]->client);
+ }
+
+ __glXleaveServer();
+ for (cx = glxPendingDestroyContexts; cx != NULL; cx = next) {
+ next = cx->next;
+
+ cx->destroy(cx);
+ }
+ glxPendingDestroyContexts = NULL;
+ __glXenterServer();
+}
static void
__glXnopEnterServer(void)
@@ -438,14 +472,19 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void)
{
- (*__glXenterServerFunc)();
+ glxServerLeaveCount--;
+
+ if (glxServerLeaveCount == 0)
+ (*__glXenterServerFunc)();
}
void __glXleaveServer(void)
{
- (*__glXleaveServerFunc)();
-}
+ if (glxServerLeaveCount == 0)
+ (*__glXleaveServerFunc)();
+ glxServerLeaveCount++;
+}
/*
** Top level dispatcher; all commands are executed from here down.
@@ -491,6 +530,15 @@ static int __glXDispatch(ClientPtr client)
return __glXError(GLXBadLargeRequest);
}
+ /* If we're currently blocking GLX clients, just put this guy to
+ * sleep, reset the request and return. */
+ if (glxBlockClients) {
+ ResetCurrentRequest(client);
+ client->sequence--;
+ IgnoreClient(client);
+ return(client->noClientException);
+ }
+
/*
** Use the opcode to index into the procedure table.
*/
@@ -500,12 +548,8 @@ static int __glXDispatch(ClientPtr client)
if (proc != NULL) {
__glXleaveServer();
- inDispatch = True;
-
retval = (*proc)(cl, (GLbyte *) stuff);
- inDispatch = False;
-
__glXenterServer();
}
else {
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 838973731..49cad7328 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -136,6 +136,9 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void);
void __glXleaveServer(void);
+void glxSuspendClients(void);
+void glxResumeClients(void);
+
/*
** State kept per client.
*/
@@ -176,8 +179,6 @@ struct __GLXclientStateRec {
char *GLClientextensions;
};
-extern __GLXclientState *__glXClients[];
-
/************************************************************************/
/*
From 65256109bb8f5a26704ed960e1dd113981df5787 Mon Sep 17 00:00:00 2001
From: Drew Parsons
Date: Sun, 10 Sep 2006 17:40:37 +1000
Subject: [PATCH 02/18] * Define XPSERVERLIST with `/etc/init.d/xprint
get_xpserverlist` instead of `/bin/sh /etc/init.d/xprint get_xpserverlist`
- allows the initscript to set its own different shell under #! -
allows disabling of XPSERVERLIST by making the script non-executable * Allow
files to be installed by using dist_*_DATA instead of EXTRA_DIST. Also, use
dist_*_SCRIPTS to install scripts. * Fix minor typos in man pages.
---
.../config/C/print/models/PS2PDFspooldir-GS/Makefile.am | 3 ++-
hw/xprint/config/C/print/models/PSspooldir/Makefile.am | 3 ++-
hw/xprint/config/Makefile.am | 2 +-
hw/xprint/doc/Xprt.html | 6 +++---
hw/xprint/doc/Xprt.man.pre | 6 +++---
hw/xprint/doc/Xprt.sgml | 6 +++---
hw/xprint/etc/Xsession.d/Makefile.am | 3 ++-
hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh | 4 ++--
8 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
index 37b57d7bb..2b73b9dad 100644
--- a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
+++ b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
@@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PS2PDFspooldir-GS
-dist_xpc_DATA = model-config ps2pdf_spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = ps2pdf_spooltodir.sh
diff --git a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
index 52313aa23..717cd2c36 100644
--- a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
+++ b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
@@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PSspooldir
-dist_xpc_DATA = model-config spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = spooltodir.sh
diff --git a/hw/xprint/config/Makefile.am b/hw/xprint/config/Makefile.am
index a5ea214c4..197d19de0 100644
--- a/hw/xprint/config/Makefile.am
+++ b/hw/xprint/config/Makefile.am
@@ -709,4 +709,4 @@ install-data-local: remove-links
uninstall-hook: remove-links
-EXTRA_DIST = README
+dist_xpconfig_DATA = README
diff --git a/hw/xprint/doc/Xprt.html b/hw/xprint/doc/Xprt.html
index f84a3c134..2aa0c9e3c 100644
--- a/hw/xprint/doc/Xprt.html
+++ b/hw/xprint/doc/Xprt.html
@@ -4,7 +4,7 @@
applications to use devices like printers, FAX or create
documents in formats like PostScript, PCL or PDF. It may be used by
clients such as mozilla.
-
Xprint is a very flexible, extensible, scaleable, client/server
+
Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11
rendering protocol.
Using Xprint an application can search, query and use devices like
@@ -44,11 +44,11 @@
font databases.
-pn
permits the server to continue running if it fails to
establish all of its well-known sockets (connection
points for clients), but establishes at least
- one.
-XpFile file
Sets an altername Xprinters file (see section FILES).
-XpSpoolerType spoolername
+ one.
-XpFile file
Sets an alternate Xprinters file (see section FILES).
-XpSpoolerType spoolername
Defines the spooler system to be used for print job spooling.
Supported values in xprint.mozdev.org release 009 are:
aix
aix4
bsd
osf
solaris
sysv
uxp
cups
lprng
other
none
- (multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+ (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via
Xprt -h
.
ENVIRONMENT
diff --git a/hw/xprint/doc/Xprt.man.pre b/hw/xprint/doc/Xprt.man.pre
index 7599a1344..837619cb2 100644
--- a/hw/xprint/doc/Xprt.man.pre
+++ b/hw/xprint/doc/Xprt.man.pre
@@ -20,7 +20,7 @@ applications to use devices like printers, FAX or create
documents in formats like PostScript, PCL or PDF. It may be used by
clients such as mozilla.
.PP
-Xprint is a very flexible, extensible, scaleable, client/server
+Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11
rendering protocol.
Using Xprint an application can search, query and use devices like
@@ -85,7 +85,7 @@ points for clients), but establishes at least
one.
.TP
\fB\-XpFile \fIfile\fB\fR
-Sets an altername Xprinters file (see section FILES).
+Sets an alternate Xprinters file (see section FILES).
.TP
\fB\-XpSpoolerType \fIspoolername\fB\fR
Defines the spooler system to be used for print job spooling.
@@ -113,7 +113,7 @@ other
none
-(multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+(multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via
.nf
diff --git a/hw/xprint/doc/Xprt.sgml b/hw/xprint/doc/Xprt.sgml
index 0ffa39fcb..a62499263 100644
--- a/hw/xprint/doc/Xprt.sgml
+++ b/hw/xprint/doc/Xprt.sgml
@@ -55,7 +55,7 @@ HTML generation can be done like this:
clients such as mozilla.
- Xprint is a very flexible, extensible, scaleable, client/server
+ Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11
rendering protocol.
Using Xprint an application can search, query and use devices like
@@ -155,7 +155,7 @@ HTML generation can be done like this:
- Sets an altername Xprinters file (see section FILES).
+ Sets an alternate Xprinters file (see section FILES).
@@ -178,7 +178,7 @@ HTML generation can be done like this:
othernone
- (multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+ (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via
Xprt -h.
diff --git a/hw/xprint/etc/Xsession.d/Makefile.am b/hw/xprint/etc/Xsession.d/Makefile.am
index e0277d9d4..3ef8e0596 100644
--- a/hw/xprint/etc/Xsession.d/Makefile.am
+++ b/hw/xprint/etc/Xsession.d/Makefile.am
@@ -1 +1,2 @@
-EXTRA_DIST = cde_xsessiond_xprint.sh
+xpcdir = /etc/X11/Xsession.d
+dist_xpc_DATA = cde_xsessiond_xprint.sh
diff --git a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh b/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
index 3fb6bba7c..54c431d5c 100644
--- a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
+++ b/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
@@ -22,8 +22,8 @@
# Obtain list of Xprint servers
#
-if [ -f "/etc/init.d/xprint" ] ; then
- XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"
+if [ -x "/etc/init.d/xprint" ] ; then
+ XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"
export XPSERVERLIST
fi
From b3a3020fd018df8bc5a8193d36e1a1c7ae8af8ba Mon Sep 17 00:00:00 2001
From: Jesse Barnes
Date: Sun, 10 Sep 2006 11:13:18 -0700
Subject: [PATCH 03/18] the new PCI mapping routines are broken on sparc64 (in
fact they look broken for any 32 bit X server running on a 64 bit kernel) so
#ifdef them out for now. the PCI rework tree will make all this crap go
away, so I think we can tolerate the extra #ifdef for the next release.
---
hw/xfree86/os-support/bus/linuxPci.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index a3c07f330..a97e6f0c9 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -83,7 +83,13 @@ static pciBusFuncs_t linuxFuncs0 = {
/* pciAddrBusToHost */ linuxPpcBusAddrToHostAddr,
#else
/* pciAddrHostToBus */ pciAddrNOOP,
+/* linuxTransAddrBusToHost is busted on sparc64 but the PCI rework tree
+ * makes it all moot, so we kludge it for now */
+#if defined(__sparc64__)
+/* pciAddrBusToHost */ pciAddrNOOP,
+#else
/* pciAddrBusToHost */ linuxTransAddrBusToHost,
+#endif /* __sparc64__ */
#endif
/* pciControlBridge */ NULL,
From 2b357e9a2f9038cf9cd07da908e3103a3d0965c9 Mon Sep 17 00:00:00 2001
From: Donnie Berkholz
Date: Sun, 10 Sep 2006 22:17:20 -0700
Subject: [PATCH 04/18] If we're installing libxf86config, install headers
needed to build against it.
---
hw/xfree86/parser/Makefile.am | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
index acda83d27..46ef79060 100644
--- a/hw/xfree86/parser/Makefile.am
+++ b/hw/xfree86/parser/Makefile.am
@@ -1,5 +1,8 @@
if INSTALL_LIBXF86CONFIG
lib_LIBRARIES = libxf86config.a
+LIBHEADERS = \
+ xf86Optrec.h \
+ xf86Parser.h
else
noinst_LIBRARIES = libxf86config.a
endif
@@ -32,3 +35,6 @@ EXTRA_DIST = \
xf86Parser.h \
xf86tokens.h \
cpconfig.c
+
+sdk_HEADERS = \
+ $(LIBHEADERS)
From fc30370d14125f86ee1192890a184881fa139546 Mon Sep 17 00:00:00 2001
From: Tilman Sauerbeck
Date: Mon, 11 Sep 2006 19:43:09 +0200
Subject: [PATCH 05/18] Bug #8226: Fixed SetPictureTransform()'s handling of
the argument matrix.
It now recognizes scaled variants of the identity matrix, too.
---
render/picture.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/render/picture.c b/render/picture.c
index 566d91e09..a9910ab27 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1459,18 +1459,24 @@ SetPictureClipRegion (PicturePtr pPicture,
return result;
}
+static Bool
+transformIsIdentity(PictTransform *t)
+{
+ return ((t->matrix[0][0] == t->matrix[1][1]) &&
+ (t->matrix[0][0] == t->matrix[2][2]) &&
+ (t->matrix[0][1] == 0) &&
+ (t->matrix[0][2] == 0) &&
+ (t->matrix[1][0] == 0) &&
+ (t->matrix[1][2] == 0) &&
+ (t->matrix[2][0] == 0) &&
+ (t->matrix[2][1] == 0));
+}
int
SetPictureTransform (PicturePtr pPicture,
PictTransform *transform)
{
- static const PictTransform identity = { {
- { xFixed1, 0x00000, 0x00000 },
- { 0x00000, xFixed1, 0x00000 },
- { 0x00000, 0x00000, xFixed1 },
- } };
-
- if (transform && memcmp (transform, &identity, sizeof (PictTransform)) == 0)
+ if (transform && transformIsIdentity (transform))
transform = 0;
if (transform)
From 594d4019c613b0f4bf8f48cc074ecc3c8366f1d7 Mon Sep 17 00:00:00 2001
From: Tilman Sauerbeck
Date: Tue, 12 Sep 2006 01:15:40 +0200
Subject: [PATCH 06/18] transformIsIdentity() now doesn't accept a zero matrix
as the identity.
Added a non-zero test for one of the diagonal values.
---
render/picture.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/render/picture.c b/render/picture.c
index a9910ab27..a3443c20e 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1464,6 +1464,7 @@ transformIsIdentity(PictTransform *t)
{
return ((t->matrix[0][0] == t->matrix[1][1]) &&
(t->matrix[0][0] == t->matrix[2][2]) &&
+ (t->matrix[0][0] != 0) &&
(t->matrix[0][1] == 0) &&
(t->matrix[0][2] == 0) &&
(t->matrix[1][0] == 0) &&
From 182e5e0f4ba4c98a34bc52bdf4032ba315fe80ad Mon Sep 17 00:00:00 2001
From: Drew Parsons
Date: Tue, 12 Sep 2006 14:30:46 +1000
Subject: [PATCH 07/18] Xprint: revert installation of
/etc/X11/Xsession.d/cde_xsessiond_xprint.sh pending resolution of #8232.
---
hw/xprint/etc/Xsession.d/Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/xprint/etc/Xsession.d/Makefile.am b/hw/xprint/etc/Xsession.d/Makefile.am
index 3ef8e0596..e0277d9d4 100644
--- a/hw/xprint/etc/Xsession.d/Makefile.am
+++ b/hw/xprint/etc/Xsession.d/Makefile.am
@@ -1,2 +1 @@
-xpcdir = /etc/X11/Xsession.d
-dist_xpc_DATA = cde_xsessiond_xprint.sh
+EXTRA_DIST = cde_xsessiond_xprint.sh
From 0a62840e2ce25e5c2554e7e5ab4c9c5b96899e2d Mon Sep 17 00:00:00 2001
From: Bill Nottingham
Date: Wed, 13 Sep 2006 15:40:23 -0700
Subject: [PATCH 08/18] Bug 7641: fix comment written to Xorg.conf
(s/VertSync/VertRefresh/)
X.Org Bugzilla #7641
Patch #6349
---
hw/xfree86/parser/Monitor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c
index 4a8575049..9dd0b1b1c 100644
--- a/hw/xfree86/parser/Monitor.c
+++ b/hw/xfree86/parser/Monitor.c
@@ -675,7 +675,7 @@ xf86printMonitorSection (FILE * cf, XF86ConfMonitorPtr ptr)
ptr->mon_width,
ptr->mon_height);
if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh )
- fprintf(cf," ### Comment all HorizSync and VertSync values to use DDC:\n");
+ fprintf(cf," ### Comment all HorizSync and VertRefresh values to use DDC:\n");
for (i = 0; i < ptr->mon_n_hsync; i++)
{
fprintf (cf, "\tHorizSync %2.1f - %2.1f\n",
From 05231e336db8f959c15dda518641976f061df1a6 Mon Sep 17 00:00:00 2001
From: Ian Romanick
Date: Thu, 14 Sep 2006 14:13:39 -0700
Subject: [PATCH 09/18] Use correct opcodes for GLX_EXT_texture_from_pixmap.
Regenerate from glX_API.xml 1.3 from Mesa. The glproto package and libGL
(from Mesa) must also be updated.
---
GL/glx/indirect_table.c | 353 +++++++++++++++++++++-------------------
1 file changed, 183 insertions(+), 170 deletions(-)
diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index d13e4f8df..57712f4f5 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -1232,12 +1232,12 @@ const struct __glXDispatchInfo Render_dispatch_info = {
/*****************************************************************/
/* tree depth = 13 */
-static const int_fast16_t VendorPriv_dispatch_tree[155] = {
+static const int_fast16_t VendorPriv_dispatch_tree[158] = {
/* [0] -> opcode range [0, 131072], node depth 1 */
2,
5,
EMPTY_LEAF,
- 119,
+ 122,
EMPTY_LEAF,
/* [5] -> opcode range [0, 32768], node depth 2 */
@@ -1254,7 +1254,7 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
2,
16,
EMPTY_LEAF,
- 78,
+ 81,
EMPTY_LEAF,
/* [16] -> opcode range [0, 2048], node depth 5 */
@@ -1299,7 +1299,7 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
44,
EMPTY_LEAF,
56,
- 67,
+ 70,
/* [44] -> opcode range [1024, 1152], node depth 7 */
1,
@@ -1327,164 +1327,169 @@ static const int_fast16_t VendorPriv_dispatch_tree[155] = {
EMPTY_LEAF,
/* [59] -> opcode range [1280, 1344], node depth 8 */
- 1,
- 62,
- EMPTY_LEAF,
-
- /* [62] -> opcode range [1280, 1312], node depth 9 */
2,
- EMPTY_LEAF,
+ 64,
LEAF(16),
- LEAF(24),
+ EMPTY_LEAF,
+ 67,
+
+ /* [64] -> opcode range [1280, 1296], node depth 9 */
+ 1,
+ EMPTY_LEAF,
LEAF(32),
- /* [67] -> opcode range [1408, 1536], node depth 7 */
+ /* [67] -> opcode range [1328, 1344], node depth 9 */
1,
- 70,
+ LEAF(40),
EMPTY_LEAF,
- /* [70] -> opcode range [1408, 1472], node depth 8 */
+ /* [70] -> opcode range [1408, 1536], node depth 7 */
1,
73,
EMPTY_LEAF,
- /* [73] -> opcode range [1408, 1440], node depth 9 */
- 2,
- EMPTY_LEAF,
- LEAF(40),
- LEAF(48),
- EMPTY_LEAF,
-
- /* [78] -> opcode range [4096, 6144], node depth 5 */
- 2,
- 83,
- EMPTY_LEAF,
- 101,
- EMPTY_LEAF,
-
- /* [83] -> opcode range [4096, 4608], node depth 6 */
+ /* [73] -> opcode range [1408, 1472], node depth 8 */
1,
+ 76,
+ EMPTY_LEAF,
+
+ /* [76] -> opcode range [1408, 1440], node depth 9 */
+ 2,
+ EMPTY_LEAF,
+ LEAF(48),
+ LEAF(56),
+ EMPTY_LEAF,
+
+ /* [81] -> opcode range [4096, 6144], node depth 5 */
+ 2,
86,
EMPTY_LEAF,
+ 104,
+ EMPTY_LEAF,
- /* [86] -> opcode range [4096, 4352], node depth 7 */
+ /* [86] -> opcode range [4096, 4608], node depth 6 */
1,
89,
EMPTY_LEAF,
- /* [89] -> opcode range [4096, 4224], node depth 8 */
+ /* [89] -> opcode range [4096, 4352], node depth 7 */
1,
92,
EMPTY_LEAF,
- /* [92] -> opcode range [4096, 4160], node depth 9 */
+ /* [92] -> opcode range [4096, 4224], node depth 8 */
1,
95,
EMPTY_LEAF,
- /* [95] -> opcode range [4096, 4128], node depth 10 */
+ /* [95] -> opcode range [4096, 4160], node depth 9 */
1,
98,
EMPTY_LEAF,
- /* [98] -> opcode range [4096, 4112], node depth 11 */
+ /* [98] -> opcode range [4096, 4128], node depth 10 */
1,
- LEAF(56),
+ 101,
EMPTY_LEAF,
- /* [101] -> opcode range [5120, 5632], node depth 6 */
- 1,
- 104,
- EMPTY_LEAF,
-
- /* [104] -> opcode range [5120, 5376], node depth 7 */
- 1,
- 107,
- EMPTY_LEAF,
-
- /* [107] -> opcode range [5120, 5248], node depth 8 */
- 1,
- 110,
- EMPTY_LEAF,
-
- /* [110] -> opcode range [5120, 5184], node depth 9 */
- 1,
- EMPTY_LEAF,
- 113,
-
- /* [113] -> opcode range [5152, 5184], node depth 10 */
- 1,
- 116,
- EMPTY_LEAF,
-
- /* [116] -> opcode range [5152, 5168], node depth 11 */
+ /* [101] -> opcode range [4096, 4112], node depth 11 */
1,
LEAF(64),
EMPTY_LEAF,
- /* [119] -> opcode range [65536, 98304], node depth 2 */
+ /* [104] -> opcode range [5120, 5632], node depth 6 */
1,
- 122,
+ 107,
EMPTY_LEAF,
- /* [122] -> opcode range [65536, 81920], node depth 3 */
+ /* [107] -> opcode range [5120, 5376], node depth 7 */
1,
- 125,
+ 110,
EMPTY_LEAF,
- /* [125] -> opcode range [65536, 73728], node depth 4 */
+ /* [110] -> opcode range [5120, 5248], node depth 8 */
1,
- 128,
+ 113,
EMPTY_LEAF,
- /* [128] -> opcode range [65536, 69632], node depth 5 */
+ /* [113] -> opcode range [5120, 5184], node depth 9 */
1,
- 131,
+ EMPTY_LEAF,
+ 116,
+
+ /* [116] -> opcode range [5152, 5184], node depth 10 */
+ 1,
+ 119,
EMPTY_LEAF,
- /* [131] -> opcode range [65536, 67584], node depth 6 */
- 1,
- 134,
- EMPTY_LEAF,
-
- /* [134] -> opcode range [65536, 66560], node depth 7 */
- 1,
- 137,
- EMPTY_LEAF,
-
- /* [137] -> opcode range [65536, 66048], node depth 8 */
- 1,
- 140,
- EMPTY_LEAF,
-
- /* [140] -> opcode range [65536, 65792], node depth 9 */
- 1,
- 143,
- EMPTY_LEAF,
-
- /* [143] -> opcode range [65536, 65664], node depth 10 */
- 1,
- 146,
- EMPTY_LEAF,
-
- /* [146] -> opcode range [65536, 65600], node depth 11 */
- 1,
- 149,
- EMPTY_LEAF,
-
- /* [149] -> opcode range [65536, 65568], node depth 12 */
- 1,
- 152,
- EMPTY_LEAF,
-
- /* [152] -> opcode range [65536, 65552], node depth 13 */
+ /* [119] -> opcode range [5152, 5168], node depth 11 */
1,
LEAF(72),
EMPTY_LEAF,
+ /* [122] -> opcode range [65536, 98304], node depth 2 */
+ 1,
+ 125,
+ EMPTY_LEAF,
+
+ /* [125] -> opcode range [65536, 81920], node depth 3 */
+ 1,
+ 128,
+ EMPTY_LEAF,
+
+ /* [128] -> opcode range [65536, 73728], node depth 4 */
+ 1,
+ 131,
+ EMPTY_LEAF,
+
+ /* [131] -> opcode range [65536, 69632], node depth 5 */
+ 1,
+ 134,
+ EMPTY_LEAF,
+
+ /* [134] -> opcode range [65536, 67584], node depth 6 */
+ 1,
+ 137,
+ EMPTY_LEAF,
+
+ /* [137] -> opcode range [65536, 66560], node depth 7 */
+ 1,
+ 140,
+ EMPTY_LEAF,
+
+ /* [140] -> opcode range [65536, 66048], node depth 8 */
+ 1,
+ 143,
+ EMPTY_LEAF,
+
+ /* [143] -> opcode range [65536, 65792], node depth 9 */
+ 1,
+ 146,
+ EMPTY_LEAF,
+
+ /* [146] -> opcode range [65536, 65664], node depth 10 */
+ 1,
+ 149,
+ EMPTY_LEAF,
+
+ /* [149] -> opcode range [65536, 65600], node depth 11 */
+ 1,
+ 152,
+ EMPTY_LEAF,
+
+ /* [152] -> opcode range [65536, 65568], node depth 12 */
+ 1,
+ 155,
+ EMPTY_LEAF,
+
+ /* [155] -> opcode range [65536, 65552], node depth 13 */
+ 1,
+ LEAF(80),
+ EMPTY_LEAF,
+
};
-static const void *VendorPriv_function_table[80][2] = {
+static const void *VendorPriv_function_table[88][2] = {
/* [ 0] = 8 */ {NULL, NULL},
/* [ 1] = 9 */ {NULL, NULL},
/* [ 2] = 10 */ {NULL, NULL},
@@ -1501,70 +1506,78 @@ static const void *VendorPriv_function_table[80][2] = {
/* [ 13] = 1029 */ {NULL, NULL},
/* [ 14] = 1030 */ {NULL, NULL},
/* [ 15] = 1031 */ {NULL, NULL},
- /* [ 16] = 1288 */ {NULL, NULL},
- /* [ 17] = 1289 */ {NULL, NULL},
- /* [ 18] = 1290 */ {NULL, NULL},
- /* [ 19] = 1291 */ {NULL, NULL},
- /* [ 20] = 1292 */ {NULL, NULL},
- /* [ 21] = 1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
- /* [ 22] = 1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
- /* [ 23] = 1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
- /* [ 24] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
- /* [ 25] = 1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
- /* [ 26] = 1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
- /* [ 27] = 1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
- /* [ 28] = 1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
- /* [ 29] = 1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
- /* [ 30] = 1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
- /* [ 31] = 1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
- /* [ 32] = 1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
- /* [ 33] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
- /* [ 34] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
- /* [ 35] = 1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
- /* [ 36] = 1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
- /* [ 37] = 1309 */ {NULL, NULL},
- /* [ 38] = 1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
- /* [ 39] = 1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
- /* [ 40] = 1416 */ {NULL, NULL},
- /* [ 41] = 1417 */ {NULL, NULL},
- /* [ 42] = 1418 */ {NULL, NULL},
- /* [ 43] = 1419 */ {NULL, NULL},
- /* [ 44] = 1420 */ {NULL, NULL},
- /* [ 45] = 1421 */ {NULL, NULL},
- /* [ 46] = 1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
- /* [ 47] = 1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
- /* [ 48] = 1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
- /* [ 49] = 1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
- /* [ 50] = 1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
- /* [ 51] = 1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
- /* [ 52] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
- /* [ 53] = 1429 */ {NULL, NULL},
- /* [ 54] = 1430 */ {NULL, NULL},
- /* [ 55] = 1431 */ {NULL, NULL},
- /* [ 56] = 4096 */ {NULL, NULL},
- /* [ 57] = 4097 */ {NULL, NULL},
- /* [ 58] = 4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
- /* [ 59] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
- /* [ 60] = 4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
- /* [ 61] = 4101 */ {NULL, NULL},
- /* [ 62] = 4102 */ {NULL, NULL},
- /* [ 63] = 4103 */ {NULL, NULL},
- /* [ 64] = 5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
- /* [ 65] = 5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
- /* [ 66] = 5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
- /* [ 67] = 5155 */ {NULL, NULL},
- /* [ 68] = 5156 */ {NULL, NULL},
- /* [ 69] = 5157 */ {NULL, NULL},
- /* [ 70] = 5158 */ {NULL, NULL},
- /* [ 71] = 5159 */ {NULL, NULL},
- /* [ 72] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
- /* [ 73] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
- /* [ 74] = 65538 */ {NULL, NULL},
- /* [ 75] = 65539 */ {NULL, NULL},
- /* [ 76] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
- /* [ 77] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
- /* [ 78] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
- /* [ 79] = 65543 */ {NULL, NULL},
+ /* [ 16] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
+ /* [ 17] = 1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
+ /* [ 18] = 1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
+ /* [ 19] = 1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
+ /* [ 20] = 1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
+ /* [ 21] = 1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
+ /* [ 22] = 1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
+ /* [ 23] = 1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
+ /* [ 24] = 1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
+ /* [ 25] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
+ /* [ 26] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
+ /* [ 27] = 1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
+ /* [ 28] = 1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
+ /* [ 29] = 1309 */ {NULL, NULL},
+ /* [ 30] = 1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
+ /* [ 31] = 1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
+ /* [ 32] = 1288 */ {NULL, NULL},
+ /* [ 33] = 1289 */ {NULL, NULL},
+ /* [ 34] = 1290 */ {NULL, NULL},
+ /* [ 35] = 1291 */ {NULL, NULL},
+ /* [ 36] = 1292 */ {NULL, NULL},
+ /* [ 37] = 1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
+ /* [ 38] = 1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
+ /* [ 39] = 1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
+ /* [ 40] = 1328 */ {NULL, NULL},
+ /* [ 41] = 1329 */ {NULL, NULL},
+ /* [ 42] = 1330 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
+ /* [ 43] = 1331 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
+ /* [ 44] = 1332 */ {NULL, NULL},
+ /* [ 45] = 1333 */ {NULL, NULL},
+ /* [ 46] = 1334 */ {NULL, NULL},
+ /* [ 47] = 1335 */ {NULL, NULL},
+ /* [ 48] = 1416 */ {NULL, NULL},
+ /* [ 49] = 1417 */ {NULL, NULL},
+ /* [ 50] = 1418 */ {NULL, NULL},
+ /* [ 51] = 1419 */ {NULL, NULL},
+ /* [ 52] = 1420 */ {NULL, NULL},
+ /* [ 53] = 1421 */ {NULL, NULL},
+ /* [ 54] = 1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
+ /* [ 55] = 1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
+ /* [ 56] = 1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
+ /* [ 57] = 1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
+ /* [ 58] = 1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
+ /* [ 59] = 1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
+ /* [ 60] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
+ /* [ 61] = 1429 */ {NULL, NULL},
+ /* [ 62] = 1430 */ {NULL, NULL},
+ /* [ 63] = 1431 */ {NULL, NULL},
+ /* [ 64] = 4096 */ {NULL, NULL},
+ /* [ 65] = 4097 */ {NULL, NULL},
+ /* [ 66] = 4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
+ /* [ 67] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
+ /* [ 68] = 4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
+ /* [ 69] = 4101 */ {NULL, NULL},
+ /* [ 70] = 4102 */ {NULL, NULL},
+ /* [ 71] = 4103 */ {NULL, NULL},
+ /* [ 72] = 5152 */ {NULL, NULL},
+ /* [ 73] = 5153 */ {NULL, NULL},
+ /* [ 74] = 5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
+ /* [ 75] = 5155 */ {NULL, NULL},
+ /* [ 76] = 5156 */ {NULL, NULL},
+ /* [ 77] = 5157 */ {NULL, NULL},
+ /* [ 78] = 5158 */ {NULL, NULL},
+ /* [ 79] = 5159 */ {NULL, NULL},
+ /* [ 80] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
+ /* [ 81] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
+ /* [ 82] = 65538 */ {NULL, NULL},
+ /* [ 83] = 65539 */ {NULL, NULL},
+ /* [ 84] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
+ /* [ 85] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
+ /* [ 86] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
+ /* [ 87] = 65543 */ {NULL, NULL},
};
const struct __glXDispatchInfo VendorPriv_dispatch_info = {
From f057de4f73fa593fa3fc5f05f65b89e76273b158 Mon Sep 17 00:00:00 2001
From: Adam Jackson
Date: Sat, 16 Sep 2006 03:49:11 -0400
Subject: [PATCH 10/18] Don't install librac.a.
Thanks, automake.
---
hw/xfree86/rac/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/xfree86/rac/Makefile.am b/hw/xfree86/rac/Makefile.am
index 328ed197d..2d8d87975 100644
--- a/hw/xfree86/rac/Makefile.am
+++ b/hw/xfree86/rac/Makefile.am
@@ -1,4 +1,4 @@
-module_LIBRARIES = librac.a
+noinst_LIBRARIES = librac.a
librac_a_SOURCES = xf86RAC.c
sdk_HEADERS = xf86RAC.h
From d812f486a01a6276aed7b4ebd3cd8eb8ddfe10d3 Mon Sep 17 00:00:00 2001
From: Donnie Berkholz
Date: Wed, 20 Sep 2006 15:39:39 -0700
Subject: [PATCH 11/18] Really fix sparc on 64-bit kernel/32-bit userland.
Commit b3a3020fd018df8bc5a8193d36e1a1c7ae8af8ba used a sparc64 ifdef instead of
sparc. But for 32-bit userland, __sparc64__ is not defined so the wrong code is
used.
---
hw/xfree86/os-support/bus/linuxPci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index a97e6f0c9..c6dad1faa 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -85,7 +85,7 @@ static pciBusFuncs_t linuxFuncs0 = {
/* pciAddrHostToBus */ pciAddrNOOP,
/* linuxTransAddrBusToHost is busted on sparc64 but the PCI rework tree
* makes it all moot, so we kludge it for now */
-#if defined(__sparc64__)
+#if defined(__sparc__)
/* pciAddrBusToHost */ pciAddrNOOP,
#else
/* pciAddrBusToHost */ linuxTransAddrBusToHost,
From 8b4ed47c5d39f219866e3c72fa973c6fc4c70f18 Mon Sep 17 00:00:00 2001
From: Drew Parsons
Date: Thu, 21 Sep 2006 22:19:44 +1000
Subject: [PATCH 12/18] * Install Xprint's Xsession script to
$(sysconfdir)/X11/Xsession.d * Removing outdated references to CDE and dt,
rename script to 92xprint-xpserverlist.
---
.../{cde_xsessiond_xprint.sh => 92xprint-xpserverlist} | 8 ++++----
hw/xprint/etc/Xsession.d/Makefile.am | 3 ++-
2 files changed, 6 insertions(+), 5 deletions(-)
rename hw/xprint/etc/Xsession.d/{cde_xsessiond_xprint.sh => 92xprint-xpserverlist} (76%)
diff --git a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh b/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
similarity index 76%
rename from hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
rename to hw/xprint/etc/Xsession.d/92xprint-xpserverlist
index 54c431d5c..60d964a34 100644
--- a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
+++ b/hw/xprint/etc/Xsession.d/92xprint-xpserverlist
@@ -1,19 +1,19 @@
#!/bin/sh
#####################################################################
-### File: 0018.xprint
+### File: 92xprint-xpserverlist
###
-### Default Location: /usr/dt/config/Xsession.d/
+### Default Location: /etc/X11/Xsession.d/
###
### Purpose: Setup Xprint env vars
###
### Description: This script is invoked by means of the Xsession file
### at user login.
###
-### Invoked by: /usr/dt/bin/Xsession
+### Invoked by: /etc/X11/Xsession
###
### (c) Copyright 2003-2004 Roland Mainz
###
-### please send bugfixes or comments to http://xprint.mozdev.org/
+### please send bugfixes or comments to https://bugs.freedesktop.org
###
#####################################################################
diff --git a/hw/xprint/etc/Xsession.d/Makefile.am b/hw/xprint/etc/Xsession.d/Makefile.am
index e0277d9d4..96a5ee73b 100644
--- a/hw/xprint/etc/Xsession.d/Makefile.am
+++ b/hw/xprint/etc/Xsession.d/Makefile.am
@@ -1 +1,2 @@
-EXTRA_DIST = cde_xsessiond_xprint.sh
+xpcdir = $(sysconfdir)/X11/Xsession.d
+dist_xpc_DATA = 92xprint-xpserverlist
From c1655f0fd457f9bdf0857c5e0904639925bb01f1 Mon Sep 17 00:00:00 2001
From: Aaron Plattner
Date: Thu, 21 Sep 2006 14:45:17 -0700
Subject: [PATCH 13/18] Bug 8386: Grow parser buffers to fit an entire line if
it's longer than CONFIG_BUF_LEN.
---
hw/xfree86/parser/scan.c | 123 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 121 insertions(+), 2 deletions(-)
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 5b29ab855..f81c45afe 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -157,9 +157,128 @@ xf86strToUL (char *str)
return (tot);
}
+/*
+ * xf86getNextLine --
+ *
+ * read from the configFile FILE stream until we encounter a new
+ * line; this is effectively just a big wrapper for fgets(3).
+ *
+ * xf86getToken() assumes that we will read up to the next
+ * newline; we need to grow configBuf and configRBuf as needed to
+ * support that.
+ */
+
+static char*
+xf86getNextLine(void)
+{
+ static int configBufLen = CONFIG_BUF_LEN;
+ char *tmpConfigBuf, *tmpConfigRBuf;
+ int c, i, pos = 0, eolFound = 0;
+ char *ret = NULL;
+
+ /*
+ * reallocate the string if it was grown last time (i.e., is no
+ * longer CONFIG_BUF_LEN); we malloc the new strings first, so
+ * that if either of the mallocs fail, we can fall back on the
+ * existing buffer allocations
+ */
+
+ if (configBufLen != CONFIG_BUF_LEN) {
+
+ tmpConfigBuf = xf86confmalloc(CONFIG_BUF_LEN);
+ tmpConfigRBuf = xf86confmalloc(CONFIG_BUF_LEN);
+
+ if (!tmpConfigBuf || !tmpConfigRBuf) {
+
+ /*
+ * at least one of the mallocs failed; keep the old buffers
+ * and free any partial allocations
+ */
+
+ xf86conffree(tmpConfigBuf);
+ xf86conffree(tmpConfigRBuf);
+
+ } else {
+
+ /*
+ * malloc succeeded; free the old buffers and use the new
+ * buffers
+ */
+
+ configBufLen = CONFIG_BUF_LEN;
+
+ xf86conffree(configBuf);
+ xf86conffree(configRBuf);
+
+ configBuf = tmpConfigBuf;
+ configRBuf = tmpConfigRBuf;
+ }
+ }
+
+ /* read in another block of chars */
+
+ do {
+ ret = fgets(configBuf + pos, configBufLen - pos - 1, configFile);
+
+ if (!ret) break;
+
+ /* search for EOL in the new block of chars */
+
+ for (i = pos; i < (configBufLen - 1); i++) {
+ c = configBuf[i];
+
+ if (c == '\0') break;
+
+ if ((c == '\n') || (c == '\r')) {
+ eolFound = 1;
+ break;
+ }
+ }
+
+ /*
+ * if we didn't find EOL, then grow the string and
+ * read in more
+ */
+
+ if (!eolFound) {
+
+ tmpConfigBuf = xf86confrealloc(configBuf, configBufLen + CONFIG_BUF_LEN);
+ tmpConfigRBuf = xf86confrealloc(configRBuf, configBufLen + CONFIG_BUF_LEN);
+
+ if (!tmpConfigBuf || !tmpConfigRBuf) {
+
+ /*
+ * at least one of the reallocations failed; use the
+ * new allocation that succeeded, but we have to
+ * fallback to the previous configBufLen size and use
+ * the string we have, even though we don't have an
+ * EOL
+ */
+
+ if (tmpConfigBuf) configBuf = tmpConfigBuf;
+ if (tmpConfigRBuf) configRBuf = tmpConfigRBuf;
+
+ break;
+
+ } else {
+
+ /* reallocation succeeded */
+
+ configBuf = tmpConfigBuf;
+ configRBuf = tmpConfigRBuf;
+ pos = i;
+ configBufLen += CONFIG_BUF_LEN;
+ }
+ }
+
+ } while (!eolFound);
+
+ return (ret);
+}
+
/*
* xf86getToken --
- * Read next Token form the config file. Handle the global variable
+ * Read next Token from the config file. Handle the global variable
* pushToken.
*/
int
@@ -193,7 +312,7 @@ again:
{
char *ret;
if (configFile)
- ret = fgets (configBuf, CONFIG_BUF_LEN - 1, configFile);
+ ret = xf86getNextLine();
else {
if (builtinConfig[builtinIndex] == NULL)
ret = NULL;
From ce78b0cd2b1c35d60eb5683a1d00222aa4797c79 Mon Sep 17 00:00:00 2001
From: Adam Jackson
Date: Thu, 21 Sep 2006 20:42:47 -0400
Subject: [PATCH 14/18] Close with Pclose() that which we open with Popen().
---
xkb/ddxList.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xkb/ddxList.c b/xkb/ddxList.c
index f94a869ae..034f694ed 100644
--- a/xkb/ddxList.c
+++ b/xkb/ddxList.c
@@ -269,7 +269,7 @@ char tmpname[PATH_MAX];
#ifndef WIN32
if (haveDir)
fclose(in);
- else if ((rval=pclose(in))!=0) {
+ else if ((rval=Pclose(in))!=0) {
if (xkbDebugFlags)
ErrorF("xkbcomp returned exit code %d\n",rval);
}
From a10039a100dfe5f87e29e9cc4fa656176e0890f9 Mon Sep 17 00:00:00 2001
From: David Nusinow
Date: Thu, 21 Sep 2006 23:58:32 -0400
Subject: [PATCH 15/18] Allow the xfree86 ddx utils to be optionally built.
Patch by Eugene Konev.
---
configure.ac | 3 +++
hw/xfree86/Makefile.am | 6 +++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 798c8f0da..76f5e04c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -426,6 +426,7 @@ AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extensi
AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
+AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
dnl DDXes.
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
@@ -735,6 +736,8 @@ if test "x$XINPUT" = xyes; then
XI_INC='-I$(top_srcdir)/Xi'
fi
+AM_CONDITIONAL(XF86UTILS, test "x$XF86UTILS" = xyes)
+
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
AC_DEFINE(XKB, 1, [Build XKB])
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index 67bfd80d9..5cce11d27 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -2,12 +2,16 @@ if DRI
DRI_SUBDIR = dri
endif
+if XF86UTILS
+XF86UTILS_SUBDIR = utils
+endif
+
DOC_SUBDIR = doc
SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \
ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp xf8_16bpp \
xf8_32bpp loader scanpci dixmods exa \
- $(DRI_SUBDIR) utils $(DOC_SUBDIR)
+ $(DRI_SUBDIR) $(XF86UTILS_SUBDIR) $(DOC_SUBDIR)
DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \
parser rac ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp \
From 891e9c3e6cbd0869a57395b96c8e18ff522c2bb4 Mon Sep 17 00:00:00 2001
From: Brian
Date: Sat, 23 Sep 2006 10:28:24 -0600
Subject: [PATCH 16/18] Replace broken DMXDBG3() with DMXDBG2()
---
hw/dmx/dmxcursor.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/dmx/dmxcursor.c b/hw/dmx/dmxcursor.c
index a49fc9f43..e74a05215 100644
--- a/hw/dmx/dmxcursor.c
+++ b/hw/dmx/dmxcursor.c
@@ -664,8 +664,8 @@ static Bool _dmxUnrealizeCursor(ScreenPtr pScreen, CursorPtr pCursor)
{
DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
- DMXDBG3("_dmxUnrealizeCursor(%d,%p) %p\n",
- pScreen->myNum, pCursor, pCursorPriv);
+ DMXDBG2("_dmxUnrealizeCursor(%d,%p)\n",
+ pScreen->myNum, pCursor);
if (dmxScreen->beDisplay) {
if (dmxBEFreeCursor(pScreen, pCursor))
From 945b7c63946f5257d0f9b0dcf2f8f4882fb2c6f8 Mon Sep 17 00:00:00 2001
From: Brian
Date: Sat, 23 Sep 2006 10:35:25 -0600
Subject: [PATCH 17/18] The fbcmap.c file used by Xdmx _must_ be compiled with
XFree86Server defined. Otherwise, Xdmx generates a slew of protocol errors.
---
hw/dmx/Makefile.am | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/dmx/Makefile.am b/hw/dmx/Makefile.am
index d36647b54..89136b904 100644
--- a/hw/dmx/Makefile.am
+++ b/hw/dmx/Makefile.am
@@ -16,6 +16,9 @@ GLX_INCS = -I$(top_srcdir)/hw/xfree86/dixmods/extmod \
GLX_DEFS = @GL_CFLAGS@
endif
+# It's essential that fbcmap.c be compiled with this flag for DMX to work!!
+DMX_CFLAGS = -DXFree86Server=1
+
if BUILDDOCS
SUBDIRS += doc
endif
@@ -86,6 +89,7 @@ Xdmx_CFLAGS = \
$(DIX_CFLAGS) \
$(GLX_INCS) \
$(GLX_DEFS) \
+ $(DMX_CFLAGS) \
@DMXMODULES_CFLAGS@
# Man page
From f7c1d942416db8d0d4c5a21f5ece1ccacb926b69 Mon Sep 17 00:00:00 2001
From: Brian
Date: Sat, 23 Sep 2006 10:38:10 -0600
Subject: [PATCH 18/18] Check for visual==NULL in dmxBECreateColormap() before
calling XCreateColormap() to prevent potential segfault.
---
hw/dmx/dmxcmap.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/hw/dmx/dmxcmap.c b/hw/dmx/dmxcmap.c
index b4279e7ce..9a9781f53 100644
--- a/hw/dmx/dmxcmap.c
+++ b/hw/dmx/dmxcmap.c
@@ -40,6 +40,7 @@
#endif
#include "dmx.h"
+#include "dmxlog.h"
#include "dmxsync.h"
#include "dmxcmap.h"
#include "dmxvisual.h"
@@ -83,12 +84,18 @@ Bool dmxBECreateColormap(ColormapPtr pColormap)
VisualPtr pVisual = pColormap->pVisual;
Visual *visual = dmxLookupVisual(pScreen, pVisual);
- pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay,
- dmxScreen->scrnWin,
- visual,
- (pVisual->class & DynamicClass ?
- AllocAll : AllocNone));
- return (pCmapPriv->cmap != 0);
+ if (visual) {
+ pCmapPriv->cmap = XCreateColormap(dmxScreen->beDisplay,
+ dmxScreen->scrnWin,
+ visual,
+ (pVisual->class & DynamicClass ?
+ AllocAll : AllocNone));
+ return (pCmapPriv->cmap != 0);
+ }
+ else {
+ dmxLog(dmxWarning, "dmxBECreateColormap: No visual found\n");
+ return 0;
+ }
}
/** Create colormap on back-end server associated with \a pColormap's