Index: /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp	(revision 76246)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp	(revision 76247)
@@ -109,5 +109,12 @@
     if (s_glXGetProcAddress)
     {
-        return glXGetProcAddress((const GLubyte *)pszSymbol);
+        void *p = glXGetProcAddress((const GLubyte *)pszSymbol);
+        if (RT_VALID_PTR(p))
+            return p;
+
+        /* Might be an exported symbol. */
+        rc = RTLdrGetSymbol(s_hGL, pszSymbol, (void **)&p);
+        if (RT_SUCCESS(rc))
+            return p;
     }
 
@@ -189,4 +196,16 @@
     pfn_glVertexPointer = 0;
     pfn_glViewport = 0;
+#ifdef RT_OS_WINDOWS
+    pfn_wglCreateContext = 0;
+    pfn_wglDeleteContext = 0;
+    pfn_wglMakeCurrent = 0;
+    pfn_wglShareLists = 0;
+#elif defined(RT_OS_LINUX)
+    pfn_glXQueryVersion = 0;
+    pfn_glXChooseVisual = 0;
+    pfn_glXCreateContext = 0;
+    pfn_glXMakeCurrent = 0;
+    pfn_glXDestroyContext = 0;
+#endif
 
     GLGETPROC_(glAlphaFunc, "");
@@ -258,4 +277,10 @@
     GLGETPROC_(wglMakeCurrent, "");
     GLGETPROC_(wglShareLists, "");
+#elif defined(RT_OS_LINUX)
+    GLGETPROC_(glXQueryVersion, "");
+    GLGETPROC_(glXChooseVisual, "");
+    GLGETPROC_(glXCreateContext, "");
+    GLGETPROC_(glXMakeCurrent, "");
+    GLGETPROC_(glXDestroyContext, "");
 #endif
     return VINF_SUCCESS;
Index: /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h	(revision 76246)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.h	(revision 76247)
@@ -306,5 +306,25 @@
 GLPFN BOOL (WINAPI *pfn_wglShareLists)(HGLRC, HGLRC);
 #define wglShareLists pfn_wglShareLists
-#endif
-
-#endif
+
+#elif defined(RT_OS_LINUX)
+/*
+ * GLX
+ */
+GLPFN Bool (* pfn_glXQueryVersion)(Display * dpy,  int * major,  int * minor);
+#define glXQueryVersion pfn_glXQueryVersion
+
+GLPFN XVisualInfo* (* pfn_glXChooseVisual)(Display * dpy,  int screen,  int * attribList);
+#define glXChooseVisual pfn_glXChooseVisual
+
+GLPFN GLXContext (* pfn_glXCreateContext)(Display * dpy,  XVisualInfo * vis,  GLXContext shareList,  Bool direct);
+#define glXCreateContext pfn_glXCreateContext
+
+GLPFN Bool (* pfn_glXMakeCurrent)(Display * dpy,  GLXDrawable drawable,  GLXContext ctx);
+#define glXMakeCurrent pfn_glXMakeCurrent
+
+GLPFN void (* pfn_glXDestroyContext)(Display * dpy,  GLXContext ctx);
+#define glXDestroyContext pfn_glXDestroyContext
+
+#endif
+
+#endif
