From b0378e9858c3f21bb0df09db505ff2f90cb9d26b Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 12 Jul 2018 15:30:16 +0100 Subject: [PATCH] Don't try and fetch fbconfig for NULL context in glXMakeCurrent --- renderdoc/driver/gl/glx_hooks.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/renderdoc/driver/gl/glx_hooks.cpp b/renderdoc/driver/gl/glx_hooks.cpp index 7ef0c794d..1cfe05a13 100644 --- a/renderdoc/driver/gl/glx_hooks.cpp +++ b/renderdoc/driver/gl/glx_hooks.cpp @@ -300,19 +300,25 @@ HOOK_EXPORT Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext c data.dpy = dpy; data.wnd = drawable; data.ctx = ctx; + data.cfg = NULL; - int fbconfigid = -1; - GLX.glXQueryContext(dpy, ctx, GLX_FBCONFIG_ID, &fbconfigid); + GLXFBConfig *config = NULL; - int attribs[] = {GLX_FBCONFIG_ID, fbconfigid, 0}; + if(ctx) + { + int fbconfigid = -1; + GLX.glXQueryContext(dpy, ctx, GLX_FBCONFIG_ID, &fbconfigid); - int numElems = 0; - GLXFBConfig *config = GLX.glXChooseFBConfig(dpy, DefaultScreen(dpy), attribs, &numElems); + int attribs[] = {GLX_FBCONFIG_ID, fbconfigid, 0}; - if(config) - data.cfg = GLX.glXGetVisualFromFBConfig(dpy, *config); - else - data.cfg = NULL; + int numElems = 0; + config = GLX.glXChooseFBConfig(dpy, DefaultScreen(dpy), attribs, &numElems); + + if(config) + data.cfg = GLX.glXGetVisualFromFBConfig(dpy, *config); + else + data.cfg = NULL; + } glxhook.driver.ActivateContext(data);