Index: /trunk/src/VBox/Additions/common/crOpenGL/fakedri_drv.c
===================================================================
--- /trunk/src/VBox/Additions/common/crOpenGL/fakedri_drv.c	(revision 35262)
+++ /trunk/src/VBox/Additions/common/crOpenGL/fakedri_drv.c	(revision 35263)
@@ -105,5 +105,12 @@
 extern const __DRIextension * __driDriverExtensions[];
 
-#define GLAPI_ENTRY(Func) SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("gl"#Func), cr_gl##Func);
+#define VBOX_SET_MESA_FUNC(table, name, func) \
+    if (_glapi_get_proc_offset(name)>=0) SET_by_offset(table, _glapi_get_proc_offset(name), func); \
+    else crWarning("%s not found in mesa table", name)
+
+#define GLAPI_ENTRY(Func) VBOX_SET_MESA_FUNC(vbox_glapi_table, "gl"#Func, cr_gl##Func);
+
+static void
+vboxPatchMesaExport(const char* psFuncName, const void *pStart, const void *pEnd);
 
 static void
@@ -122,23 +129,23 @@
     #include "fakedri_glfuncsList.h"
 
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glBlendEquationSeparateEXT"), cr_glBlendEquationSeparate);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glSampleMaskSGIS"), cr_glSampleMaskEXT);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glSamplePatternSGIS"), cr_glSamplePatternEXT);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2dMESA"), cr_glWindowPos2d);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2dvMESA"), cr_glWindowPos2dv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2fMESA"), cr_glWindowPos2f);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2fvMESA"), cr_glWindowPos2fv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2iMESA"), cr_glWindowPos2i);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2ivMESA"), cr_glWindowPos2iv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2sMESA"), cr_glWindowPos2s);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos2svMESA"), cr_glWindowPos2sv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3dMESA"), cr_glWindowPos3d);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3dvMESA"), cr_glWindowPos3dv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3fMESA"), cr_glWindowPos3f);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3fvMESA"), cr_glWindowPos3fv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3iMESA"), cr_glWindowPos3i);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3ivMESA"), cr_glWindowPos3iv);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3sMESA"), cr_glWindowPos3s);
-    SET_by_offset(vbox_glapi_table, _glapi_get_proc_offset("glWindowPos3svMESA"), cr_glWindowPos3sv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glBlendEquationSeparateEXT", cr_glBlendEquationSeparate);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glSampleMaskSGIS", cr_glSampleMaskEXT);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glSamplePatternSGIS", cr_glSamplePatternEXT);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2dMESA", cr_glWindowPos2d);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2dvMESA", cr_glWindowPos2dv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2fMESA", cr_glWindowPos2f);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2fvMESA", cr_glWindowPos2fv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2iMESA", cr_glWindowPos2i);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2ivMESA", cr_glWindowPos2iv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2sMESA", cr_glWindowPos2s);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos2svMESA", cr_glWindowPos2sv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3dMESA", cr_glWindowPos3d);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3dvMESA", cr_glWindowPos3dv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3fMESA", cr_glWindowPos3f);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3fvMESA", cr_glWindowPos3fv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3iMESA", cr_glWindowPos3i);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3ivMESA", cr_glWindowPos3iv);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3sMESA", cr_glWindowPos3s);
+    VBOX_SET_MESA_FUNC(vbox_glapi_table, "glWindowPos3svMESA", cr_glWindowPos3sv);
 
     _glapi_set_dispatch(vbox_glapi_table);
@@ -230,5 +237,5 @@
         if (!rv || !sym1)
         {
-            crError("Failed to get size for %p", pStart);
+            crError("Failed to get size for vbox %p", pStart);
             return;
         }
Index: /trunk/src/VBox/Additions/common/crOpenGL/glx.c
===================================================================
--- /trunk/src/VBox/Additions/common/crOpenGL/glx.c	(revision 35262)
+++ /trunk/src/VBox/Additions/common/crOpenGL/glx.c	(revision 35263)
@@ -400,5 +400,5 @@
 
             case GLX_DEPTH_SIZE:
-                if (attrib[1] > 16)
+                if (attrib[1] > 24)
                     goto err_exit;
                 attrib++;
Index: /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_pixel.c
===================================================================
--- /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_pixel.c	(revision 35262)
+++ /trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_pixel.c	(revision 35263)
@@ -24,5 +24,6 @@
         && format!=GL_LUMINANCE
         && format!=GL_LUMINANCE_ALPHA
-        && format!=GL_DEPTH_COMPONENT)
+        && format!=GL_DEPTH_COMPONENT
+        && format!=GL_DEPTH_STENCIL)
     {
         /*crWarning("crPackCheckTexImageFormat FAILED format 0x%x isn't valid", format);*/
@@ -54,5 +55,6 @@
         && type!=GL_UNSIGNED_INT_8_8_8_8_REV
         && type!=GL_UNSIGNED_INT_10_10_10_2
-        && type!=GL_UNSIGNED_INT_2_10_10_10_REV)
+        && type!=GL_UNSIGNED_INT_2_10_10_10_REV
+        && type!=GL_UNSIGNED_INT_24_8)
     {
         /*crWarning("crPackCheckTexImageType FAILED type 0x%x isn't valid", type);*/
@@ -84,4 +86,5 @@
         && internalformat!=GL_DEPTH_COMPONENT24
         && internalformat!=GL_DEPTH_COMPONENT32
+        && internalformat!=GL_DEPTH24_STENCIL8
         && internalformat!=GL_LUMINANCE
         && internalformat!=GL_LUMINANCE4
Index: /trunk/src/VBox/GuestHost/OpenGL/util/pixel.c
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/util/pixel.c	(revision 35262)
+++ /trunk/src/VBox/GuestHost/OpenGL/util/pixel.c	(revision 35263)
@@ -48,4 +48,7 @@
         case GL_UNSIGNED_INT_10_10_10_2:
         case GL_UNSIGNED_INT_2_10_10_10_REV:
+#endif
+#ifdef CR_EXT_framebuffer_object
+        case GL_UNSIGNED_INT_24_8:
 #endif
         case GL_UNSIGNED_INT:
@@ -100,4 +103,8 @@
         case GL_UNSIGNED_INT_10_10_10_2:
         case GL_UNSIGNED_INT_2_10_10_10_REV:
+            return 4;
+#endif
+#ifdef CR_EXT_framebuffer_object
+        case GL_UNSIGNED_INT_24_8:
             return 4;
 #endif
