diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 6585080a9..66d4c7e16 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -586,10 +586,10 @@ DoMakeCurrent(__GLXclientState *cl, /* ** Flush the previous context if needed. */ - if (__GLX_HAS_UNFLUSHED_CMDS(prevglxc)) { + if (prevglxc->hasUnflushedCommands) { if (__glXForceCurrent(cl, tag, (int *)&error)) { CALL_Flush( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(prevglxc); + prevglxc->hasUnflushedCommands = GL_FALSE; } else { return error; } @@ -855,7 +855,7 @@ int __glXDisp_CopyContext(__GLXclientState *cl, GLbyte *pc) ** in both streams are completed before the copy is executed. */ CALL_Finish( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(tagcx); + tagcx->hasUnflushedCommands = GL_FALSE; } else { return error; } @@ -1566,7 +1566,7 @@ int __glXDisp_SwapBuffers(__GLXclientState *cl, GLbyte *pc) ** in both streams are completed before the swap is executed. */ CALL_Finish( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(glxc); + glxc->hasUnflushedCommands = GL_FALSE; } else { return error; } @@ -1765,7 +1765,7 @@ int __glXDisp_CopySubBufferMESA(__GLXclientState *cl, GLbyte *pc) ** in both streams are completed before the swap is executed. */ CALL_Finish( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(glxc); + glxc->hasUnflushedCommands = GL_FALSE; } else { return error; } @@ -1952,7 +1952,7 @@ int __glXDisp_Render(__GLXclientState *cl, GLbyte *pc) left -= cmdlen; commandsDone++; } - __GLX_NOTE_UNFLUSHED_CMDS(glxc); + glxc->hasUnflushedCommands = GL_TRUE; return Success; } @@ -2149,7 +2149,7 @@ int __glXDisp_RenderLarge(__GLXclientState *cl, GLbyte *pc) ** Skip over the header and execute the command. */ (*proc)(cl->largeCmdBuf + __GLX_RENDER_LARGE_HDR_SIZE); - __GLX_NOTE_UNFLUSHED_CMDS(glxc); + glxc->hasUnflushedCommands = GL_TRUE; /* ** Reset for the next RenderLarge series. diff --git a/glx/glxserver.h b/glx/glxserver.h index f10c8fe12..e95112606 100644 --- a/glx/glxserver.h +++ b/glx/glxserver.h @@ -100,14 +100,6 @@ extern ClientPtr __pGlxClient; int __glXError(int error); -/* -** Macros to set, unset, and retrieve the flag that says whether a context -** has unflushed commands. -*/ -#define __GLX_NOTE_UNFLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_TRUE -#define __GLX_NOTE_FLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_FALSE -#define __GLX_HAS_UNFLUSHED_CMDS(glxc) (glxc->hasUnflushedCommands) - /************************************************************************/ typedef struct __GLXprovider __GLXprovider; diff --git a/glx/single2.c b/glx/single2.c index 07b89a823..9884f400f 100644 --- a/glx/single2.c +++ b/glx/single2.c @@ -72,7 +72,7 @@ int __glXDisp_FeedbackBuffer(__GLXclientState *cl, GLbyte *pc) cx->feedbackBufSize = size; } CALL_FeedbackBuffer( GET_DISPATCH(), (size, type, cx->feedbackBuf) ); - __GLX_NOTE_UNFLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -100,7 +100,7 @@ int __glXDisp_SelectBuffer(__GLXclientState *cl, GLbyte *pc) cx->selectBufSize = size; } CALL_SelectBuffer( GET_DISPATCH(), (size, cx->selectBuf) ); - __GLX_NOTE_UNFLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -213,7 +213,7 @@ int __glXDisp_Flush(__GLXclientState *cl, GLbyte *pc) } CALL_Flush( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; return Success; } @@ -230,7 +230,7 @@ int __glXDisp_Finish(__GLXclientState *cl, GLbyte *pc) /* Do a local glFinish */ CALL_Finish( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; /* Send empty reply packet to indicate finish is finished */ client = cl->client; diff --git a/glx/single2swap.c b/glx/single2swap.c index 04e50b407..e3afcabbc 100644 --- a/glx/single2swap.c +++ b/glx/single2swap.c @@ -72,7 +72,7 @@ int __glXDispSwap_FeedbackBuffer(__GLXclientState *cl, GLbyte *pc) cx->feedbackBufSize = size; } CALL_FeedbackBuffer( GET_DISPATCH(), (size, type, cx->feedbackBuf) ); - __GLX_NOTE_UNFLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -103,7 +103,7 @@ int __glXDispSwap_SelectBuffer(__GLXclientState *cl, GLbyte *pc) cx->selectBufSize = size; } CALL_SelectBuffer( GET_DISPATCH(), (size, cx->selectBuf) ); - __GLX_NOTE_UNFLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -229,7 +229,7 @@ int __glXDispSwap_Flush(__GLXclientState *cl, GLbyte *pc) } CALL_Flush( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; return Success; } @@ -248,7 +248,7 @@ int __glXDispSwap_Finish(__GLXclientState *cl, GLbyte *pc) /* Do a local glFinish */ CALL_Finish( GET_DISPATCH(), () ); - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; /* Send empty reply packet to indicate finish is finished */ client = cl->client; diff --git a/glx/singlepix.c b/glx/singlepix.c index a0a6a7918..85fc4860d 100644 --- a/glx/singlepix.c +++ b/glx/singlepix.c @@ -91,7 +91,7 @@ int __glXDisp_ReadPixels(__GLXclientState *cl, GLbyte *pc) __GLX_SEND_HEADER(); __GLX_SEND_VOID_ARRAY(compsize); } - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; return Success; } diff --git a/glx/singlepixswap.c b/glx/singlepixswap.c index a7febc9a6..bef99f606 100644 --- a/glx/singlepixswap.c +++ b/glx/singlepixswap.c @@ -102,7 +102,7 @@ int __glXDispSwap_ReadPixels(__GLXclientState *cl, GLbyte *pc) __GLX_SEND_HEADER(); __GLX_SEND_VOID_ARRAY(compsize); } - __GLX_NOTE_FLUSHED_CMDS(cx); + cx->hasUnflushedCommands = GL_FALSE; return Success; } diff --git a/hw/dmx/glxProxy/glxserver.h b/hw/dmx/glxProxy/glxserver.h index 17adce46a..cd833f853 100644 --- a/hw/dmx/glxProxy/glxserver.h +++ b/hw/dmx/glxProxy/glxserver.h @@ -92,14 +92,6 @@ extern GLint __glXNumActiveScreens; extern __GLXcontext *__glXLastContext; extern __GLXcontext *__glXForceCurrent(__GLXclientState*, GLXContextTag, int*); -/* -** Macros to set, unset, and retrieve the flag that says whether a context -** has unflushed commands. -*/ -#define __GLX_NOTE_UNFLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_TRUE -#define __GLX_NOTE_FLUSHED_CMDS(glxc) glxc->hasUnflushedCommands = GL_FALSE -#define __GLX_HAS_UNFLUSHED_CMDS(glxc) (glxc->hasUnflushedCommands) - /************************************************************************/ typedef struct { diff --git a/hw/xwin/glx/indirect.c b/hw/xwin/glx/indirect.c index e32ac5102..bd2a1ad30 100644 --- a/hw/xwin/glx/indirect.c +++ b/hw/xwin/glx/indirect.c @@ -859,7 +859,7 @@ glxWinDrawableDestroy(__GLXdrawable *base) // on the next context change) // (GLX core considers it an error when we try to select a new current context if the old one // has unflushed commands, but the window has disappeared..) - __GLX_NOTE_FLUSHED_CMDS(__glXLastContext); + __glXLastContext->hasUnflushedCommands = FALSE; __glXLastContext = NULL; }