diff --git a/src/library_list_32.h b/src/library_list_32.h index d4f938c82..c80da9506 100644 --- a/src/library_list_32.h +++ b/src/library_list_32.h @@ -19,6 +19,7 @@ GO("ld-linux.so.2", ldlinux) GO("libGL.so", libgl) GO("libGL.so.1", libgl) +GO("libGLX_nvidia.so.0", libgl) GO("libGLU.so.1", libglu) GO("libSDL-1.2.so.0", sdl1) GO("libSDL2-2.0.so.0", sdl2) diff --git a/src/wrapped32/wrappedlibgl.c b/src/wrapped32/wrappedlibgl.c index d520a6a8a..25d9ac000 100644 --- a/src/wrapped32/wrappedlibgl.c +++ b/src/wrapped32/wrappedlibgl.c @@ -889,7 +889,14 @@ static void* find_glVDPAUUnmapSurfacesNV_Fct(void* fct) #undef SUPER -#define PRE_INIT if(box64_libGL) {lib->w.lib = dlopen(box64_libGL, RTLD_LAZY | RTLD_GLOBAL); lib->path = strdup(box64_libGL);} else +#define PRE_INIT \ + if(box64_libGL) { \ + lib->w.lib = dlopen(box64_libGL, RTLD_LAZY | RTLD_GLOBAL); \ + lib->path = strdup(box64_libGL); \ + } else if(strstr(lib->name, "libGLX_nvidia.so.0")) { \ + lib->w.lib = dlopen("libGLX_nvidia.so.0", RTLD_LAZY | RTLD_GLOBAL); \ + if(lib->w.lib) lib->path = strdup("libGLX_nvidia.so.0"); \ + } #define CUSTOM_INIT \ my_lib = lib; \ lib->w.priv = dlsym(lib->w.lib, "glXGetProcAddress"); \