diff -Nurp VirtualBox-5.1.0.p21/Config.kmk VirtualBox-5.1.0.p22/Config.kmk --- VirtualBox-5.1.0.p21/Config.kmk 2016-07-13 19:37:01.512721807 +0300 +++ VirtualBox-5.1.0.p22/Config.kmk 2016-07-13 19:38:57.507953562 +0300 @@ -2444,15 +2444,7 @@ ifdef VBOX_WITH_CROGL endif if1of ($(KBUILD_TARGET), freebsd linux solaris) - # VBOX_PATH_MESA_SOURCE = $(PATH_ROOT)/src/libs/mesa-7.2 - VBOX_PATH_MESA_SOURCE = $(VBOX_PATH_X11_ROOT)/mesa-7.2 - VBOX_MESA_INCS = \ - $(VBOX_PATH_MESA_SOURCE) \ - $(VBOX_PATH_MESA_SOURCE)/include \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/ \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/glapi \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/main \ - $(VBOX_PATH_MESA_SOURCE)/src/mesa/drivers/dri/common + VBOX_MESA_INCS = /usr/include/GL /usr/include/xorg /usr/include/pixman-1 endif VBOX_DARWIN_OPENGL_INST = obj/VBoxOGL/GL/ diff -Nurp VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/fakedri_drv.c VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/fakedri_drv.c --- VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2016-07-12 17:47:40.000000000 +0300 +++ VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/fakedri_drv.c 2016-07-13 19:38:57.508953564 +0300 @@ -17,7 +17,12 @@ */ #define _GNU_SOURCE 1 +#define HAVE_STRNDUP 1 +#include <xf86.h> +#include <xf86drm.h> +#include <GL/gl.h> +#include <GL/glext.h> #include "cr_error.h" #include "cr_gl.h" #include "cr_mem.h" @@ -38,20 +43,6 @@ #include <string.h> #endif -/** X server message type definitions. */ -typedef enum { - X_PROBED, /* Value was probed */ - X_CONFIG, /* Value was given in the config file */ - X_DEFAULT, /* Value is a default */ - X_CMDLINE, /* Value was given on the command line */ - X_NOTICE, /* Notice */ - X_ERROR, /* Error message */ - X_WARNING, /* Warning message */ - X_INFO, /* Informational message */ - X_NONE, /* No prefix */ - X_NOT_IMPLEMENTED, /* Not implemented */ - X_UNKNOWN = -1 /* unknown -- this must always be last */ -} MessageType; #define VBOX_NO_MESA_PATCH_REPORTS @@ -127,7 +118,6 @@ typedef struct _FAKEDRI_PatchNode static FAKEDRI_PatchNode *g_pFreeList=NULL, *g_pRepatchList=NULL; #endif -static struct _glapi_table* vbox_glapi_table = NULL; fakedri_glxapi_table glxim; static const __DRIextension **gppSwDriExternsion = NULL; @@ -136,54 +126,6 @@ static const __DRIswrastExtension *gpSwD extern const __DRIextension * __driDriverExtensions[]; -#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 -vboxPatchMesaGLAPITable() -{ - void *pGLTable; - - pGLTable = (void *)_glapi_get_dispatch(); - vbox_glapi_table = crAlloc(_glapi_get_dispatch_table_size() * sizeof (void *)); - if (!vbox_glapi_table) - { - crError("Not enough memory to allocate dispatch table"); - } - crMemcpy(vbox_glapi_table, pGLTable, _glapi_get_dispatch_table_size() * sizeof (void *)); - - #include "fakedri_glfuncsList.h" - - 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); -}; -#undef GLAPI_ENTRY - #define GLXAPI_ENTRY(Func) pGLXTable->Func = VBOXGLXTAG(glX##Func); static void vboxFillGLXAPITable(fakedri_glxapi_table *pGLXTable) @@ -686,7 +628,7 @@ void __attribute__ ((constructor)) vbox_ * Note, we don't need to install extension functions via _glapi_add_dispatch, because we'd override glXGetProcAddress. */ /* Mesa's dispatch table is different across library versions, have to modify mesa's table using offset info functions*/ - vboxPatchMesaGLAPITable(); + //vboxPatchMesaGLAPITable(); /* Handle glx api. * In the end application call would look like this: diff -Nurp VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/fakedri_drv.h VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/fakedri_drv.h --- VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/fakedri_drv.h 2016-07-12 17:47:40.000000000 +0300 +++ VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/fakedri_drv.h 2016-07-13 19:38:57.508953564 +0300 @@ -20,13 +20,6 @@ #ifndef ___CROPENGL_FAKEDRIDRV_H #define ___CROPENGL_FAKEDRIDRV_H -#include "src/mesa/main/mtypes.h" -#include "src/mesa/main/dd.h" -#include "src/mesa/glapi/dispatch.h" -#include "src/mesa/glapi/glapi.h" -#include "src/mesa/glapi/glapitable.h" -#include "src/mesa/glapi/glapioffsets.h" -#include "src/mesa/drivers/dri/common/dri_util.h" #include "GL/internal/dri_interface.h" #include "glx_proto.h" diff -Nurp VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/Makefile.kmk VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/Makefile.kmk --- VirtualBox-5.1.0.p21/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2016-07-12 17:47:39.000000000 +0300 +++ VirtualBox-5.1.0.p22/src/VBox/Additions/common/crOpenGL/Makefile.kmk 2016-07-13 19:38:57.508953564 +0300 @@ -68,18 +68,12 @@ VBoxOGL_TEMPLATE = VBOXCROGLR3GUES VBoxOGL_INCS = . if1of ($(KBUILD_TARGET), linux solaris freebsd) VBoxOGL_INCS += \ - $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \ - $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \ - $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ - $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \ - $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \ - $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \ - $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ - $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ + /usr/include/x11 \ + /usr/include/xorg \ + /usr/include/pixman-1 \ $(VBOX_MESA_INCS) \ - $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13 + /usr/include/drm \ + /usr/include/libdrm VBoxOGL_DEFS += VBOX_NO_NATIVEGL endif @@ -213,11 +207,20 @@ VBoxOGL_LIBS.win += \ $(PATH_STAGE_LIB)/additions/VBoxCrHgsmi$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris freebsd) - VBoxOGL_LIBS += \ - $(PATH_STAGE_LIB)/libXcomposite.so \ - $(PATH_STAGE_LIB)/libXdamage.so \ - $(PATH_STAGE_LIB)/libXfixes.so \ - $(PATH_STAGE_LIB)/libXext.so + if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.x86 ) + VBoxOGL_LIBS += \ + /usr/lib/libXcomposite.so \ + /usr/lib/libXdamage.so \ + /usr/lib/libXfixes.so \ + /usr/lib/libXext.so + endif + if1of ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),linux.amd64 ) + VBoxOGL_LIBS += \ + /usr/lib64/libXcomposite.so \ + /usr/lib64/libXdamage.so \ + /usr/lib64/libXfixes.so \ + /usr/lib64/libXext.so + endif ifdef VBoxOGL_FAKEDRI ifeq ($(KBUILD_TARGET), freebsd) VBoxOGL_LIBS += \