On 09/14/2016 11:06 AM, Adam Jackson wrote: > As this array was not actually sorted, FindGLXFunction's binary search > would only sometimes work.
Ugh... could these tables be generated by something that would sort them automatically? Alternately, could we have a 'make check' test that verifies the sorting? Without that, history has taught us every change will break the sorting. > Signed-off-by: Adam Jackson <a...@redhat.com> > --- > src/glx/g_glxglvnddispatchfuncs.c | 254 > ++++++++++++++++++------------------ > src/glx/g_glxglvnddispatchindices.h | 36 ++--- > 2 files changed, 144 insertions(+), 146 deletions(-) > > diff --git a/src/glx/g_glxglvnddispatchfuncs.c > b/src/glx/g_glxglvnddispatchfuncs.c > index e6b9c0b..b5e3398 100644 > --- a/src/glx/g_glxglvnddispatchfuncs.c > +++ b/src/glx/g_glxglvnddispatchfuncs.c > @@ -17,16 +17,19 @@ const char * const > __glXDispatchTableStrings[DI_LAST_INDEX] = { > #define __ATTRIB(field) \ > [DI_##field] = "glX"#field > > + __ATTRIB(BindSwapBarrierSGIX), > __ATTRIB(BindTexImageEXT), > // glXChooseFBConfig implemented by libglvnd > __ATTRIB(ChooseFBConfigSGIX), > // glXChooseVisual implemented by libglvnd > // glXCopyContext implemented by libglvnd > + __ATTRIB(CopySubBufferMESA), > // glXCreateContext implemented by libglvnd > __ATTRIB(CreateContextAttribsARB), > __ATTRIB(CreateContextWithConfigSGIX), > __ATTRIB(CreateGLXPbufferSGIX), > // glXCreateGLXPixmap implemented by libglvnd > + __ATTRIB(CreateGLXPixmapMESA), > __ATTRIB(CreateGLXPixmapWithConfigSGIX), > // glXCreateNewContext implemented by libglvnd > // glXCreatePbuffer implemented by libglvnd > @@ -51,54 +54,50 @@ const char * const > __glXDispatchTableStrings[DI_LAST_INDEX] = { > __ATTRIB(GetFBConfigAttribSGIX), > __ATTRIB(GetFBConfigFromVisualSGIX), > // glXGetFBConfigs implemented by libglvnd > + __ATTRIB(GetMscRateOML), > // glXGetProcAddress implemented by libglvnd > // glXGetProcAddressARB implemented by libglvnd > + __ATTRIB(GetScreenDriver), > // glXGetSelectedEvent implemented by libglvnd > __ATTRIB(GetSelectedEventSGIX), > + __ATTRIB(GetSwapIntervalMESA), > + __ATTRIB(GetSyncValuesOML), > __ATTRIB(GetVideoSyncSGI), > // glXGetVisualFromFBConfig implemented by libglvnd > __ATTRIB(GetVisualFromFBConfigSGIX), > // glXImportContextEXT implemented by libglvnd > // glXIsDirect implemented by libglvnd > + __ATTRIB(JoinSwapGroupSGIX), > // glXMakeContextCurrent implemented by libglvnd > // glXMakeCurrent implemented by libglvnd > // glXQueryContext implemented by libglvnd > __ATTRIB(QueryContextInfoEXT), > + __ATTRIB(QueryCurrentRendererIntegerMESA), > + __ATTRIB(QueryCurrentRendererStringMESA), > // glXQueryDrawable implemented by libglvnd > // glXQueryExtension implemented by libglvnd > // glXQueryExtensionsString implemented by libglvnd > __ATTRIB(QueryGLXPbufferSGIX), > + __ATTRIB(QueryMaxSwapBarriersSGIX), > + __ATTRIB(QueryRendererIntegerMESA), > + __ATTRIB(QueryRendererStringMESA), > // glXQueryServerString implemented by libglvnd > // glXQueryVersion implemented by libglvnd > + __ATTRIB(ReleaseBuffersMESA), > __ATTRIB(ReleaseTexImageEXT), > // glXSelectEvent implemented by libglvnd > __ATTRIB(SelectEventSGIX), > // glXSwapBuffers implemented by libglvnd > + __ATTRIB(SwapBuffersMscOML), > + __ATTRIB(SwapIntervalMESA), > __ATTRIB(SwapIntervalSGI), > // glXUseXFont implemented by libglvnd > + __ATTRIB(WaitForMscOML), > + __ATTRIB(WaitForSbcOML), > // glXWaitGL implemented by libglvnd > __ATTRIB(WaitVideoSyncSGI), > // glXWaitX implemented by libglvnd > > - __ATTRIB(glXBindSwapBarrierSGIX), > - __ATTRIB(glXCopySubBufferMESA), > - __ATTRIB(glXCreateGLXPixmapMESA), > - __ATTRIB(glXGetMscRateOML), > - __ATTRIB(glXGetScreenDriver), > - __ATTRIB(glXGetSwapIntervalMESA), > - __ATTRIB(glXGetSyncValuesOML), > - __ATTRIB(glXJoinSwapGroupSGIX), > - __ATTRIB(glXQueryCurrentRendererIntegerMESA), > - __ATTRIB(glXQueryCurrentRendererStringMESA), > - __ATTRIB(glXQueryMaxSwapBarriersSGIX), > - __ATTRIB(glXQueryRendererIntegerMESA), > - __ATTRIB(glXQueryRendererStringMESA), > - __ATTRIB(glXReleaseBuffersMESA), > - __ATTRIB(glXSwapBuffersMscOML), > - __ATTRIB(glXSwapIntervalMESA), > - __ATTRIB(glXWaitForMscOML), > - __ATTRIB(glXWaitForSbcOML), > - > #undef __ATTRIB > }; > > @@ -557,49 +556,49 @@ static int dispatch_WaitVideoSyncSGI(int divisor, int > remainder, > > > > -static void dispatch_glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable > drawable, > +static void dispatch_BindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, > int barrier) > { > - PFNGLXBINDSWAPBARRIERSGIXPROC pglXBindSwapBarrierSGIX; > + PFNGLXBINDSWAPBARRIERSGIXPROC pBindSwapBarrierSGIX; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return; > > - __FETCH_FUNCTION_PTR(glXBindSwapBarrierSGIX); > - if (pglXBindSwapBarrierSGIX == NULL) > + __FETCH_FUNCTION_PTR(BindSwapBarrierSGIX); > + if (pBindSwapBarrierSGIX == NULL) > return; > > - (*pglXBindSwapBarrierSGIX)(dpy, drawable, barrier); > + (*pBindSwapBarrierSGIX)(dpy, drawable, barrier); > } > > > > -static void dispatch_glXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, > +static void dispatch_CopySubBufferMESA(Display *dpy, GLXDrawable drawable, > int x, int y, int width, int > height) > { > - PFNGLXCOPYSUBBUFFERMESAPROC pglXCopySubBufferMESA; > + PFNGLXCOPYSUBBUFFERMESAPROC pCopySubBufferMESA; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return; > > - __FETCH_FUNCTION_PTR(glXCopySubBufferMESA); > - if (pglXCopySubBufferMESA == NULL) > + __FETCH_FUNCTION_PTR(CopySubBufferMESA); > + if (pCopySubBufferMESA == NULL) > return; > > - (*pglXCopySubBufferMESA)(dpy, drawable, x, y, width, height); > + (*pCopySubBufferMESA)(dpy, drawable, x, y, width, height); > } > > > > -static GLXPixmap dispatch_glXCreateGLXPixmapMESA(Display *dpy, > +static GLXPixmap dispatch_CreateGLXPixmapMESA(Display *dpy, > XVisualInfo *visinfo, > Pixmap pixmap, Colormap > cmap) > { > - PFNGLXCREATEGLXPIXMAPMESAPROC pglXCreateGLXPixmapMESA; > + PFNGLXCREATEGLXPIXMAPMESAPROC pCreateGLXPixmapMESA; > __GLXvendorInfo *dd; > GLXPixmap ret; > > @@ -607,11 +606,11 @@ static GLXPixmap > dispatch_glXCreateGLXPixmapMESA(Display *dpy, > if (dd == NULL) > return None; > > - __FETCH_FUNCTION_PTR(glXCreateGLXPixmapMESA); > - if (pglXCreateGLXPixmapMESA == NULL) > + __FETCH_FUNCTION_PTR(CreateGLXPixmapMESA); > + if (pCreateGLXPixmapMESA == NULL) > return None; > > - ret = (*pglXCreateGLXPixmapMESA)(dpy, visinfo, pixmap, cmap); > + ret = (*pCreateGLXPixmapMESA)(dpy, visinfo, pixmap, cmap); > if (AddDrawableMapping(dpy, ret, dd)) { > /* XXX: Call glXDestroyGLXPixmap which lives in libglvnd. If we're > not > * allowed to call it from here, should we extend > __glXDispatchTableIndices ? > @@ -624,47 +623,47 @@ static GLXPixmap > dispatch_glXCreateGLXPixmapMESA(Display *dpy, > > > > -static GLboolean dispatch_glXGetMscRateOML(Display *dpy, GLXDrawable > drawable, > +static GLboolean dispatch_GetMscRateOML(Display *dpy, GLXDrawable drawable, > int32_t *numerator, int32_t > *denominator) > { > - PFNGLXGETMSCRATEOMLPROC pglXGetMscRateOML; > + PFNGLXGETMSCRATEOMLPROC pGetMscRateOML; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return GL_FALSE; > > - __FETCH_FUNCTION_PTR(glXGetMscRateOML); > - if (pglXGetMscRateOML == NULL) > + __FETCH_FUNCTION_PTR(GetMscRateOML); > + if (pGetMscRateOML == NULL) > return GL_FALSE; > > - return (*pglXGetMscRateOML)(dpy, drawable, numerator, denominator); > + return (*pGetMscRateOML)(dpy, drawable, numerator, denominator); > } > > > > -static const char *dispatch_glXGetScreenDriver(Display *dpy, int scrNum) > +static const char *dispatch_GetScreenDriver(Display *dpy, int scrNum) > { > typedef const char *(*fn_glXGetScreenDriver_ptr)(Display *dpy, int > scrNum); > - fn_glXGetScreenDriver_ptr pglXGetScreenDriver; > + fn_glXGetScreenDriver_ptr pGetScreenDriver; > __GLXvendorInfo *dd; > > dd = __VND->getDynDispatch(dpy, scrNum); > if (dd == NULL) > return NULL; > > - __FETCH_FUNCTION_PTR(glXGetScreenDriver); > - if (pglXGetScreenDriver == NULL) > + __FETCH_FUNCTION_PTR(GetScreenDriver); > + if (pGetScreenDriver == NULL) > return NULL; > > - return (*pglXGetScreenDriver)(dpy, scrNum); > + return (*pGetScreenDriver)(dpy, scrNum); > } > > > > -static int dispatch_glXGetSwapIntervalMESA(void) > +static int dispatch_GetSwapIntervalMESA(void) > { > - PFNGLXGETSWAPINTERVALMESAPROC pglXGetSwapIntervalMESA; > + PFNGLXGETSWAPINTERVALMESAPROC pGetSwapIntervalMESA; > __GLXvendorInfo *dd; > > if (!__VND->getCurrentContext()) > @@ -674,57 +673,57 @@ static int dispatch_glXGetSwapIntervalMESA(void) > if (dd == NULL) > return 0; > > - __FETCH_FUNCTION_PTR(glXGetSwapIntervalMESA); > - if (pglXGetSwapIntervalMESA == NULL) > + __FETCH_FUNCTION_PTR(GetSwapIntervalMESA); > + if (pGetSwapIntervalMESA == NULL) > return 0; > > - return (*pglXGetSwapIntervalMESA)(); > + return (*pGetSwapIntervalMESA)(); > } > > > > -static Bool dispatch_glXGetSyncValuesOML(Display *dpy, GLXDrawable drawable, > +static Bool dispatch_GetSyncValuesOML(Display *dpy, GLXDrawable drawable, > int64_t *ust, int64_t *msc, int64_t > *sbc) > { > - PFNGLXGETSYNCVALUESOMLPROC pglXGetSyncValuesOML; > + PFNGLXGETSYNCVALUESOMLPROC pGetSyncValuesOML; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXGetSyncValuesOML); > - if (pglXGetSyncValuesOML == NULL) > + __FETCH_FUNCTION_PTR(GetSyncValuesOML); > + if (pGetSyncValuesOML == NULL) > return False; > > - return (*pglXGetSyncValuesOML)(dpy, drawable, ust, msc, sbc); > + return (*pGetSyncValuesOML)(dpy, drawable, ust, msc, sbc); > } > > > > -static void dispatch_glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, > +static void dispatch_JoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, > GLXDrawable member) > { > - PFNGLXJOINSWAPGROUPSGIXPROC pglXJoinSwapGroupSGIX; > + PFNGLXJOINSWAPGROUPSGIXPROC pJoinSwapGroupSGIX; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return; > > - __FETCH_FUNCTION_PTR(glXJoinSwapGroupSGIX); > - if (pglXJoinSwapGroupSGIX == NULL) > + __FETCH_FUNCTION_PTR(JoinSwapGroupSGIX); > + if (pJoinSwapGroupSGIX == NULL) > return; > > - (*pglXJoinSwapGroupSGIX)(dpy, drawable, member); > + (*pJoinSwapGroupSGIX)(dpy, drawable, member); > } > > > > -static Bool dispatch_glXQueryCurrentRendererIntegerMESA(int attribute, > +static Bool dispatch_QueryCurrentRendererIntegerMESA(int attribute, > unsigned int *value) > { > - PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC > pglXQueryCurrentRendererIntegerMESA; > + PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC > pQueryCurrentRendererIntegerMESA; > __GLXvendorInfo *dd; > > if (!__VND->getCurrentContext()) > @@ -734,18 +733,18 @@ static Bool > dispatch_glXQueryCurrentRendererIntegerMESA(int attribute, > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXQueryCurrentRendererIntegerMESA); > - if (pglXQueryCurrentRendererIntegerMESA == NULL) > + __FETCH_FUNCTION_PTR(QueryCurrentRendererIntegerMESA); > + if (pQueryCurrentRendererIntegerMESA == NULL) > return False; > > - return (*pglXQueryCurrentRendererIntegerMESA)(attribute, value); > + return (*pQueryCurrentRendererIntegerMESA)(attribute, value); > } > > > > -static const char *dispatch_glXQueryCurrentRendererStringMESA(int attribute) > +static const char *dispatch_QueryCurrentRendererStringMESA(int attribute) > { > - PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC > pglXQueryCurrentRendererStringMESA; > + PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC pQueryCurrentRendererStringMESA; > __GLXvendorInfo *dd; > > if (!__VND->getCurrentContext()) > @@ -755,114 +754,114 @@ static const char > *dispatch_glXQueryCurrentRendererStringMESA(int attribute) > if (dd == NULL) > return NULL; > > - __FETCH_FUNCTION_PTR(glXQueryCurrentRendererStringMESA); > - if (pglXQueryCurrentRendererStringMESA == NULL) > + __FETCH_FUNCTION_PTR(QueryCurrentRendererStringMESA); > + if (pQueryCurrentRendererStringMESA == NULL) > return NULL; > > - return (*pglXQueryCurrentRendererStringMESA)(attribute); > + return (*pQueryCurrentRendererStringMESA)(attribute); > } > > > > -static Bool dispatch_glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, > +static Bool dispatch_QueryMaxSwapBarriersSGIX(Display *dpy, int screen, > int *max) > { > - PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC pglXQueryMaxSwapBarriersSGIX; > + PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC pQueryMaxSwapBarriersSGIX; > __GLXvendorInfo *dd; > > dd = __VND->getDynDispatch(dpy, screen); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXQueryMaxSwapBarriersSGIX); > - if (pglXQueryMaxSwapBarriersSGIX == NULL) > + __FETCH_FUNCTION_PTR(QueryMaxSwapBarriersSGIX); > + if (pQueryMaxSwapBarriersSGIX == NULL) > return False; > > - return (*pglXQueryMaxSwapBarriersSGIX)(dpy, screen, max); > + return (*pQueryMaxSwapBarriersSGIX)(dpy, screen, max); > } > > > > -static Bool dispatch_glXQueryRendererIntegerMESA(Display *dpy, int screen, > +static Bool dispatch_QueryRendererIntegerMESA(Display *dpy, int screen, > int renderer, int attribute, > unsigned int *value) > { > - PFNGLXQUERYRENDERERINTEGERMESAPROC pglXQueryRendererIntegerMESA; > + PFNGLXQUERYRENDERERINTEGERMESAPROC pQueryRendererIntegerMESA; > __GLXvendorInfo *dd; > > dd = __VND->getDynDispatch(dpy, screen); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXQueryRendererIntegerMESA); > - if (pglXQueryRendererIntegerMESA == NULL) > + __FETCH_FUNCTION_PTR(QueryRendererIntegerMESA); > + if (pQueryRendererIntegerMESA == NULL) > return False; > > - return (*pglXQueryRendererIntegerMESA)(dpy, screen, renderer, attribute, > value); > + return (*pQueryRendererIntegerMESA)(dpy, screen, renderer, attribute, > value); > } > > > > -static const char *dispatch_glXQueryRendererStringMESA(Display *dpy, int > screen, > +static const char *dispatch_QueryRendererStringMESA(Display *dpy, int screen, > int renderer, int > attribute) > { > - PFNGLXQUERYRENDERERSTRINGMESAPROC pglXQueryRendererStringMESA; > + PFNGLXQUERYRENDERERSTRINGMESAPROC pQueryRendererStringMESA; > __GLXvendorInfo *dd = NULL; > > dd = __VND->getDynDispatch(dpy, screen); > if (dd == NULL) > return NULL; > > - __FETCH_FUNCTION_PTR(glXQueryRendererStringMESA); > - if (pglXQueryRendererStringMESA == NULL) > + __FETCH_FUNCTION_PTR(QueryRendererStringMESA); > + if (pQueryRendererStringMESA == NULL) > return NULL; > > - return (*pglXQueryRendererStringMESA)(dpy, screen, renderer, attribute); > + return (*pQueryRendererStringMESA)(dpy, screen, renderer, attribute); > } > > > > -static Bool dispatch_glXReleaseBuffersMESA(Display *dpy, GLXDrawable d) > +static Bool dispatch_ReleaseBuffersMESA(Display *dpy, GLXDrawable d) > { > - PFNGLXRELEASEBUFFERSMESAPROC pglXReleaseBuffersMESA; > + PFNGLXRELEASEBUFFERSMESAPROC pReleaseBuffersMESA; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, d); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXReleaseBuffersMESA); > - if (pglXReleaseBuffersMESA == NULL) > + __FETCH_FUNCTION_PTR(ReleaseBuffersMESA); > + if (pReleaseBuffersMESA == NULL) > return False; > > - return (*pglXReleaseBuffersMESA)(dpy, d); > + return (*pReleaseBuffersMESA)(dpy, d); > } > > > > -static int64_t dispatch_glXSwapBuffersMscOML(Display *dpy, GLXDrawable > drawable, > +static int64_t dispatch_SwapBuffersMscOML(Display *dpy, GLXDrawable drawable, > int64_t target_msc, int64_t > divisor, > int64_t remainder) > { > - PFNGLXSWAPBUFFERSMSCOMLPROC pglXSwapBuffersMscOML; > + PFNGLXSWAPBUFFERSMSCOMLPROC pSwapBuffersMscOML; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return 0; > > - __FETCH_FUNCTION_PTR(glXSwapBuffersMscOML); > - if (pglXSwapBuffersMscOML == NULL) > + __FETCH_FUNCTION_PTR(SwapBuffersMscOML); > + if (pSwapBuffersMscOML == NULL) > return 0; > > - return (*pglXSwapBuffersMscOML)(dpy, drawable, target_msc, divisor, > remainder); > + return (*pSwapBuffersMscOML)(dpy, drawable, target_msc, divisor, > remainder); > } > > > > -static int dispatch_glXSwapIntervalMESA(unsigned int interval) > +static int dispatch_SwapIntervalMESA(unsigned int interval) > { > - PFNGLXSWAPINTERVALMESAPROC pglXSwapIntervalMESA; > + PFNGLXSWAPINTERVALMESAPROC pSwapIntervalMESA; > __GLXvendorInfo *dd; > > if (!__VND->getCurrentContext()) > @@ -872,52 +871,52 @@ static int dispatch_glXSwapIntervalMESA(unsigned int > interval) > if (dd == NULL) > return 0; > > - __FETCH_FUNCTION_PTR(glXSwapIntervalMESA); > - if (pglXSwapIntervalMESA == NULL) > + __FETCH_FUNCTION_PTR(SwapIntervalMESA); > + if (pSwapIntervalMESA == NULL) > return 0; > > - return (*pglXSwapIntervalMESA)(interval); > + return (*pSwapIntervalMESA)(interval); > } > > > > -static Bool dispatch_glXWaitForMscOML(Display *dpy, GLXDrawable drawable, > +static Bool dispatch_WaitForMscOML(Display *dpy, GLXDrawable drawable, > int64_t target_msc, int64_t divisor, > int64_t remainder, int64_t *ust, > int64_t *msc, int64_t *sbc) > { > - PFNGLXWAITFORMSCOMLPROC pglXWaitForMscOML; > + PFNGLXWAITFORMSCOMLPROC pWaitForMscOML; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXWaitForMscOML); > - if (pglXWaitForMscOML == NULL) > + __FETCH_FUNCTION_PTR(WaitForMscOML); > + if (pWaitForMscOML == NULL) > return False; > > - return (*pglXWaitForMscOML)(dpy, drawable, target_msc, divisor, > remainder, ust, msc, sbc); > + return (*pWaitForMscOML)(dpy, drawable, target_msc, divisor, remainder, > ust, msc, sbc); > } > > > > -static Bool dispatch_glXWaitForSbcOML(Display *dpy, GLXDrawable drawable, > +static Bool dispatch_WaitForSbcOML(Display *dpy, GLXDrawable drawable, > int64_t target_sbc, int64_t *ust, > int64_t *msc, int64_t *sbc) > { > - PFNGLXWAITFORSBCOMLPROC pglXWaitForSbcOML; > + PFNGLXWAITFORSBCOMLPROC pWaitForSbcOML; > __GLXvendorInfo *dd; > > dd = GetDispatchFromDrawable(dpy, drawable); > if (dd == NULL) > return False; > > - __FETCH_FUNCTION_PTR(glXWaitForSbcOML); > - if (pglXWaitForSbcOML == NULL) > + __FETCH_FUNCTION_PTR(WaitForSbcOML); > + if (pWaitForSbcOML == NULL) > return False; > > - return (*pglXWaitForSbcOML)(dpy, drawable, target_sbc, ust, msc, sbc); > + return (*pWaitForSbcOML)(dpy, drawable, target_sbc, ust, msc, sbc); > } > > #undef __FETCH_FUNCTION_PTR > @@ -928,45 +927,44 @@ const void * const __glXDispatchFunctions[DI_LAST_INDEX > + 1] = { > #define __ATTRIB(field) \ > [DI_##field] = (void *)dispatch_##field > > - __ATTRIB(BindTexImageEXT), > + __ATTRIB(BindSwapBarrierSGIX), > __ATTRIB(BindTexImageEXT), > __ATTRIB(ChooseFBConfigSGIX), > + __ATTRIB(CopySubBufferMESA), > __ATTRIB(CreateContextAttribsARB), > __ATTRIB(CreateContextWithConfigSGIX), > __ATTRIB(CreateGLXPbufferSGIX), > + __ATTRIB(CreateGLXPixmapMESA), > __ATTRIB(CreateGLXPixmapWithConfigSGIX), > __ATTRIB(DestroyGLXPbufferSGIX), > __ATTRIB(GetContextIDEXT), > __ATTRIB(GetCurrentDisplayEXT), > __ATTRIB(GetFBConfigAttribSGIX), > __ATTRIB(GetFBConfigFromVisualSGIX), > + __ATTRIB(GetMscRateOML), > + __ATTRIB(GetScreenDriver), > __ATTRIB(GetSelectedEventSGIX), > + __ATTRIB(GetSwapIntervalMESA), > + __ATTRIB(GetSyncValuesOML), > __ATTRIB(GetVideoSyncSGI), > __ATTRIB(GetVisualFromFBConfigSGIX), > + __ATTRIB(JoinSwapGroupSGIX), > __ATTRIB(QueryContextInfoEXT), > + __ATTRIB(QueryCurrentRendererIntegerMESA), > + __ATTRIB(QueryCurrentRendererStringMESA), > __ATTRIB(QueryGLXPbufferSGIX), > + __ATTRIB(QueryMaxSwapBarriersSGIX), > + __ATTRIB(QueryRendererIntegerMESA), > + __ATTRIB(QueryRendererStringMESA), > + __ATTRIB(ReleaseBuffersMESA), > __ATTRIB(ReleaseTexImageEXT), > __ATTRIB(SelectEventSGIX), > + __ATTRIB(SwapBuffersMscOML), > + __ATTRIB(SwapIntervalMESA), > __ATTRIB(SwapIntervalSGI), > + __ATTRIB(WaitForMscOML), > + __ATTRIB(WaitForSbcOML), > __ATTRIB(WaitVideoSyncSGI), > - __ATTRIB(glXBindSwapBarrierSGIX), > - __ATTRIB(glXCopySubBufferMESA), > - __ATTRIB(glXCreateGLXPixmapMESA), > - __ATTRIB(glXGetMscRateOML), > - __ATTRIB(glXGetScreenDriver), > - __ATTRIB(glXGetSwapIntervalMESA), > - __ATTRIB(glXGetSyncValuesOML), > - __ATTRIB(glXJoinSwapGroupSGIX), > - __ATTRIB(glXQueryCurrentRendererIntegerMESA), > - __ATTRIB(glXQueryCurrentRendererStringMESA), > - __ATTRIB(glXQueryMaxSwapBarriersSGIX), > - __ATTRIB(glXQueryRendererIntegerMESA), > - __ATTRIB(glXQueryRendererStringMESA), > - __ATTRIB(glXReleaseBuffersMESA), > - __ATTRIB(glXSwapBuffersMscOML), > - __ATTRIB(glXSwapIntervalMESA), > - __ATTRIB(glXWaitForMscOML), > - __ATTRIB(glXWaitForSbcOML), > > [DI_LAST_INDEX] = NULL, > #undef __ATTRIB > diff --git a/src/glx/g_glxglvnddispatchindices.h > b/src/glx/g_glxglvnddispatchindices.h > index fd2156e..0891654 100644 > --- a/src/glx/g_glxglvnddispatchindices.h > +++ b/src/glx/g_glxglvnddispatchindices.h > @@ -6,16 +6,19 @@ > #define __glxlibglvnd_dispatchindex_h__ > > typedef enum __GLXdispatchIndex { > + DI_BindSwapBarrierSGIX, > DI_BindTexImageEXT, > // ChooseFBConfig implemented by libglvnd > DI_ChooseFBConfigSGIX, > // ChooseVisual implemented by libglvnd > // CopyContext implemented by libglvnd > + DI_CopySubBufferMESA, > // CreateContext implemented by libglvnd > DI_CreateContextAttribsARB, > DI_CreateContextWithConfigSGIX, > DI_CreateGLXPbufferSGIX, > // CreateGLXPixmap implemented by libglvnd > + DI_CreateGLXPixmapMESA, > DI_CreateGLXPixmapWithConfigSGIX, > // CreateNewContext implemented by libglvnd > // CreatePbuffer implemented by libglvnd > @@ -40,6 +43,7 @@ typedef enum __GLXdispatchIndex { > DI_GetFBConfigAttribSGIX, > DI_GetFBConfigFromVisualSGIX, > // GetFBConfigs implemented by libglvnd > + DI_GetMscRateOML, > // GetProcAddress implemented by libglvnd > // GetProcAddressARB implemented by libglvnd > // GetSelectedEvent implemented by libglvnd > @@ -47,45 +51,41 @@ typedef enum __GLXdispatchIndex { > DI_GetVideoSyncSGI, > // GetVisualFromFBConfig implemented by libglvnd > DI_GetVisualFromFBConfigSGIX, > + DI_GetScreenDriver, > + DI_GetSwapIntervalMESA, > + DI_GetSyncValuesOML, > // ImportContextEXT implemented by libglvnd > // IsDirect implemented by libglvnd > + DI_JoinSwapGroupSGIX, > // MakeContextCurrent implemented by libglvnd > // MakeCurrent implemented by libglvnd > // QueryContext implemented by libglvnd > DI_QueryContextInfoEXT, > + DI_QueryCurrentRendererIntegerMESA, > + DI_QueryCurrentRendererStringMESA, > // QueryDrawable implemented by libglvnd > // QueryExtension implemented by libglvnd > // QueryExtensionsString implemented by libglvnd > DI_QueryGLXPbufferSGIX, > + DI_QueryMaxSwapBarriersSGIX, > + DI_QueryRendererIntegerMESA, > + DI_QueryRendererStringMESA, > // QueryServerString implemented by libglvnd > // QueryVersion implemented by libglvnd > + DI_ReleaseBuffersMESA, > DI_ReleaseTexImageEXT, > // SelectEvent implemented by libglvnd > DI_SelectEventSGIX, > // SwapBuffers implemented by libglvnd > + DI_SwapBuffersMscOML, > + DI_SwapIntervalMESA, > DI_SwapIntervalSGI, > // UseXFont implemented by libglvnd > // WaitGL implemented by libglvnd > + DI_WaitForMscOML, > + DI_WaitForSbcOML, > DI_WaitVideoSyncSGI, > // WaitX implemented by libglvnd > - DI_glXBindSwapBarrierSGIX, > - DI_glXCopySubBufferMESA, > - DI_glXCreateGLXPixmapMESA, > - DI_glXGetMscRateOML, > - DI_glXGetScreenDriver, > - DI_glXGetSwapIntervalMESA, > - DI_glXGetSyncValuesOML, > - DI_glXJoinSwapGroupSGIX, > - DI_glXQueryCurrentRendererIntegerMESA, > - DI_glXQueryCurrentRendererStringMESA, > - DI_glXQueryMaxSwapBarriersSGIX, > - DI_glXQueryRendererIntegerMESA, > - DI_glXQueryRendererStringMESA, > - DI_glXReleaseBuffersMESA, > - DI_glXSwapBuffersMscOML, > - DI_glXSwapIntervalMESA, > - DI_glXWaitForMscOML, > - DI_glXWaitForSbcOML, > DI_LAST_INDEX > } __GLXdispatchIndex; > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev