xserver: Branch 'server-1_1-branch' - 3 commits
Adam Jackson
ajax at kemper.freedesktop.org
Fri Jul 7 00:32:40 EEST 2006
GL/glx/indirect_util.c | 4 ++--
hw/xfree86/common/xf86Events.c | 11 -----------
hw/xfree86/dri/xf86dri.c | 37 ++++++++++++++++++++++++++++++-------
3 files changed, 32 insertions(+), 20 deletions(-)
New commits:
diff-tree f54b21cc67b588984c1d05c471f56b0f758d86f7 (from a185d70f723c26ce6250f0a9d6d9c0dd7053ad67)
Author: Adam Jackson <ajax at benzedrine.nwnk.net>
Date: Thu Jul 6 17:31:24 2006 -0400
Delete a (now misleading) message from the crash handler.
(cherry picked from d00aa6b8559d3e5f70c6558ce0abd12f7d758491 commit)
diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index 44ac688..2be314f 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -1,4 +1,3 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.159 2003/11/22 04:22:11 dawes Exp $ */
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -48,9 +47,6 @@
* authorization from the copyright holder(s) and author(s).
*/
-/* $XConsortium: xf86Events.c /main/46 1996/10/25 11:36:30 kaleb $ */
-/* $XdotOrg: xserver/xorg/hw/xfree86/common/xf86Events.c,v 1.21 2005/11/08 06:33:28 jkj Exp $ */
-
/* [JCH-96/01/21] Extended std reverse map to four buttons. */
#ifdef HAVE_XORG_CONFIG_H
@@ -1482,13 +1478,6 @@ xf86SigHandler(int signo)
#ifdef XF86BIGFONT
XF86BigfontCleanup();
#endif
-#if defined(XFree86LOADER)
- if (xf86Initialising)
- LoaderCheckUnresolved(LD_RESOLV_IFDONE);
- ErrorF("\n"
- " *** If unresolved symbols were reported above, they might not\n"
- " *** be the reason for the server aborting.\n");
-#endif
xorg_backtrace();
diff-tree a185d70f723c26ce6250f0a9d6d9c0dd7053ad67 (from c73edbe0bc30f57c664a3a021950721cf22f2faf)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Sat Jun 24 15:02:56 2006 +0200
Bug #7213: Fix the XFree86-DRI extension for byte-swapped clients.
These clients are by definition non-local and thus not direct rendering
capable, but they still need the QueryVersion and QueryDirectRenderingCapable
requests to find out cleanly.
(cherry picked from 4426215a6e99f84550aaac23ac9c2018668bfbc1 commit)
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
index 4b0e354..5e46036 100644
--- a/hw/xfree86/dri/xf86dri.c
+++ b/hw/xfree86/dri/xf86dri.c
@@ -81,6 +81,7 @@ static DISPATCH_PROC(ProcXF86DRIDispatch
static DISPATCH_PROC(ProcXF86DRIAuthConnection);
static DISPATCH_PROC(SProcXF86DRIQueryVersion);
+static DISPATCH_PROC(SProcXF86DRIQueryDirectRenderingCapable);
static DISPATCH_PROC(SProcXF86DRIDispatch);
static void XF86DRIResetProc(ExtensionEntry* extEntry);
@@ -142,6 +143,9 @@ ProcXF86DRIQueryVersion(
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
+ swaps(&rep.majorVersion, n);
+ swaps(&rep.minorVersion, n);
+ swapl(&rep.patchVersion, n);
}
WriteToClient(client, sizeof(xXF86DRIQueryVersionReply), (char *)&rep);
return (client->noClientException);
@@ -154,6 +158,7 @@ ProcXF86DRIQueryDirectRenderingCapable(
{
xXF86DRIQueryDirectRenderingCapableReply rep;
Bool isCapable;
+ register int n;
REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
REQUEST_SIZE_MATCH(xXF86DRIQueryDirectRenderingCapableReq);
@@ -172,9 +177,14 @@ ProcXF86DRIQueryDirectRenderingCapable(
}
rep.isCapable = isCapable;
- if (!LocalClient(client))
+ if (!LocalClient(client) || client->swapped)
rep.isCapable = 0;
+ if (client->swapped) {
+ swaps(&rep.sequenceNumber, n);
+ swapl(&rep.length, n);
+ }
+
WriteToClient(client,
sizeof(xXF86DRIQueryDirectRenderingCapableReply), (char *)&rep);
return (client->noClientException);
@@ -627,22 +637,35 @@ SProcXF86DRIQueryVersion(
}
static int
+SProcXF86DRIQueryDirectRenderingCapable(
+ register ClientPtr client
+)
+{
+ register int n;
+ REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
+ swaps(&stuff->length, n);
+ swapl(&stuff->screen, n);
+ return ProcXF86DRIQueryDirectRenderingCapable(client);
+}
+
+static int
SProcXF86DRIDispatch (
register ClientPtr client
)
{
REQUEST(xReq);
- /* It is bound to be non-local when there is byte swapping */
- if (!LocalClient(client))
- return DRIErrorBase + XF86DRIClientNotLocal;
-
- /* only local clients are allowed DRI access */
+ /*
+ * Only local clients are allowed DRI access, but remote clients still need
+ * these requests to find out cleanly.
+ */
switch (stuff->data)
{
case X_XF86DRIQueryVersion:
return SProcXF86DRIQueryVersion(client);
+ case X_XF86DRIQueryDirectRenderingCapable:
+ return SProcXF86DRIQueryDirectRenderingCapable(client);
default:
- return BadRequest;
+ return DRIErrorBase + XF86DRIClientNotLocal;
}
}
diff-tree c73edbe0bc30f57c664a3a021950721cf22f2faf (from 7c0b0372ad5901ea46ff9eab1d0e36698c663196)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date: Sat Jun 24 14:54:52 2006 +0200
Fix byte swapping in some GLX requests.
(cherry picked from a195a3debca02572d9f7d7a9976b5bf67acc5d08 commit)
diff --git a/GL/glx/indirect_util.c b/GL/glx/indirect_util.c
index c9d8600..bab0226 100644
--- a/GL/glx/indirect_util.c
+++ b/GL/glx/indirect_util.c
@@ -185,8 +185,8 @@ __glXSendReplySwap( ClientPtr client, co
}
__glXReply.length = bswap_32( reply_ints );
- __glXReply.type = bswap_32( X_Reply );
- __glXReply.sequenceNumber = bswap_32( client->sequence );
+ __glXReply.type = X_Reply;
+ __glXReply.sequenceNumber = bswap_16( client->sequence );
__glXReply.size = bswap_32( elements );
__glXReply.retval = bswap_32( retval );
More information about the xorg-commit
mailing list