diff --git a/renderdoc/driver/gl/glx_hooks.cpp b/renderdoc/driver/gl/glx_hooks.cpp index 1f1fb63b2..b836e6248 100644 --- a/renderdoc/driver/gl/glx_hooks.cpp +++ b/renderdoc/driver/gl/glx_hooks.cpp @@ -673,6 +673,7 @@ void GLXHook::RegisterHooks() // register library hooks LibraryHooks::RegisterLibraryHook("libGL.so", &GLXHooked); LibraryHooks::RegisterLibraryHook("libGL.so.1", &GLXHooked); + LibraryHooks::RegisterLibraryHook("libGLX.so.0", &GLXHooked); // register EGL hooks #define GLX_REGISTER(func) \ diff --git a/renderdoc/driver/gl/glx_platform.cpp b/renderdoc/driver/gl/glx_platform.cpp index 60aa2ffdd..8b597b3ab 100644 --- a/renderdoc/driver/gl/glx_platform.cpp +++ b/renderdoc/driver/gl/glx_platform.cpp @@ -42,6 +42,9 @@ void *GetGLHandle() if(!handle) handle = Process::LoadModule("libGL.so"); + if(!handle) + handle = Process::LoadModule("libGLX.so.0"); + return handle; } @@ -279,6 +282,14 @@ class GLXPlatform : public GLPlatform if(!ret) ret = Process::GetFunctionAddress(GetGLHandle(), funcname); + if(!ret) + { + // last ditch attempt, try the libOpenGL version + static void *OpenGLhandle = Process::LoadModule("libOpenGL.so.0"); + if(OpenGLhandle) + ret = Process::GetFunctionAddress(OpenGLhandle, funcname); + } + return ret; }