diff --git a/packages/graphics/libglvnd/package.mk b/packages/graphics/libglvnd/package.mk index 1799b71fab..dc2e1f8606 100644 --- a/packages/graphics/libglvnd/package.mk +++ b/packages/graphics/libglvnd/package.mk @@ -11,8 +11,6 @@ PKG_DEPENDS_TARGET="toolchain libX11 libXext xorgproto" PKG_LONGDESC="libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors." PKG_TOOLCHAIN="autotools" -PKG_CONFIGURE_OPTS_TARGET="--disable-headers" - if [ "$OPENGLES_SUPPORT" = "no" ]; then PKG_CONFIGURE_OPTS_TARGET+=" --disable-gles" fi diff --git a/packages/graphics/libglvnd/patches/libglvnd-999.01-install-GL-headers-when-GL-is-enabled.patch b/packages/graphics/libglvnd/patches/libglvnd-999.01-install-GL-headers-when-GL-is-enabled.patch new file mode 100644 index 0000000000..a11f7742c7 --- /dev/null +++ b/packages/graphics/libglvnd/patches/libglvnd-999.01-install-GL-headers-when-GL-is-enabled.patch @@ -0,0 +1,28 @@ +From 6f52473dac08c44b081b792874b4ce73122096da Mon Sep 17 00:00:00 2001 +From: Eric Engestrom +Date: Mon, 30 Sep 2019 16:06:42 +0100 +Subject: [PATCH] include: install GL headers when GL is enabled + +A typo made it depend on EGL instead. + +Fixes: ab9b5fcc3bf90064418f ("Install the GL/GLES/GLX/EGL header files.") +--- + include/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/Makefile.am b/include/Makefile.am +index 1e33d2d..3d81d17 100644 +--- a/include/Makefile.am ++++ b/include/Makefile.am +@@ -39,7 +39,7 @@ EGL_HEADER_FILES = \ + EGL/eglext.h \ + EGL/eglplatform.h + +-if ENABLE_EGL_HEADERS ++if ENABLE_GL_HEADERS + nobase_include_HEADERS += $(GL_HEADER_FILES) + else + noinst_HEADERS += $(GL_HEADER_FILES) +-- +2.22.0 + diff --git a/packages/graphics/libglvnd/patches/libglvnd-999.02-egl-Sync-with-Khronos.patch b/packages/graphics/libglvnd/patches/libglvnd-999.02-egl-Sync-with-Khronos.patch new file mode 100644 index 0000000000..4d8f2bbae2 --- /dev/null +++ b/packages/graphics/libglvnd/patches/libglvnd-999.02-egl-Sync-with-Khronos.patch @@ -0,0 +1,62 @@ +From 51233cc52cbcbe25f8461830913c06f5b5bc9508 Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Thu, 17 Oct 2019 11:51:37 -0400 +Subject: [PATCH] egl: Sync with Khronos + + commit de3a5e867d906a04a5c37ee0d89e7f01d3598eb9 + Author: Ken Russell + Date: Sat Oct 12 05:44:43 2019 -0700 + + Reserve enums 0x34A0..0x34AF for ANGLE project. (#93) + +Closes: https://gitlab.freedesktop.org/glvnd/libglvnd/issues/193 +--- + include/EGL/eglplatform.h | 6 ++++++ + src/generate/xml/egl.xml | 7 +++++-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h +index 29ab288..5ab49c1 100644 +--- a/include/EGL/eglplatform.h ++++ b/include/EGL/eglplatform.h +@@ -116,6 +116,12 @@ typedef intptr_t EGLNativeDisplayType; + typedef intptr_t EGLNativePixmapType; + typedef intptr_t EGLNativeWindowType; + ++#elif defined(__unix__) && defined(EGL_NO_X11) ++ ++typedef void *EGLNativeDisplayType; ++typedef khronos_uintptr_t EGLNativePixmapType; ++typedef khronos_uintptr_t EGLNativeWindowType; ++ + #elif defined(__unix__) || defined(USE_X11) + + /* X11 (tentative) */ +diff --git a/src/generate/xml/egl.xml b/src/generate/xml/egl.xml +index c27f172..6bc2ea2 100644 +--- a/src/generate/xml/egl.xml ++++ b/src/generate/xml/egl.xml +@@ -1002,6 +1002,9 @@ + + + ++ ++ ++ + + +- +- ++ ++ + + + +-- +2.22.0 + diff --git a/packages/graphics/libglvnd/patches/libglvnd-999.03-EGL-Set-EGL_NO_X11-macro-if--disable-x11-is-used.patch b/packages/graphics/libglvnd/patches/libglvnd-999.03-EGL-Set-EGL_NO_X11-macro-if--disable-x11-is-used.patch new file mode 100644 index 0000000000..51b8fd7b40 --- /dev/null +++ b/packages/graphics/libglvnd/patches/libglvnd-999.03-EGL-Set-EGL_NO_X11-macro-if--disable-x11-is-used.patch @@ -0,0 +1,100 @@ +From 158cd95a086398b60310227f2feca31838576750 Mon Sep 17 00:00:00 2001 +From: Kyle Brenneman +Date: Fri, 18 Oct 2019 09:30:30 -0600 +Subject: [PATCH 1/2] EGL: Set EGL_NO_X11 macro if --disable-x11 is used. + +Change the configure script so that it will set the macro EGL_NO_X11 if X11 is +disabled instead of setting USE_X11 if X11 is enabled. + +Using EGL_NO_X11 means that EGL/eglplatform.h won't try to include the Xlib +headers. +--- + configure.ac | 6 +++--- + src/EGL/libegl.c | 8 ++++---- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index eb68d3b..ebe497c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -174,10 +174,10 @@ dnl + dnl Checks for libraries. + AX_PTHREAD() + +-if test "x$enable_x11" = "xyes" ; then ++if test "x$enable_x11" != "xyes" ; then + PKG_CHECK_MODULES([X11], [x11]) +- AC_DEFINE([USE_X11], 1, +- [Define to 1 if X11 support is enabled.]) ++ AC_DEFINE([EGL_NO_X11], 1, ++ [Define to 1 if X11 support is disabled.]) + fi + if test "x$enable_glx" = "xyes" ; then + PKG_CHECK_MODULES([XEXT], [xext]) +diff --git a/src/EGL/libegl.c b/src/EGL/libegl.c +index 5f742cb..c0e4dd8 100644 +--- a/src/EGL/libegl.c ++++ b/src/EGL/libegl.c +@@ -36,7 +36,7 @@ + #include + #include + +-#if defined(USE_X11) ++#if !defined(EGL_NO_X11) + #include + #endif + +@@ -180,7 +180,7 @@ static EGLBoolean IsGbmDisplay(void *native_display) + + static EGLBoolean IsX11Display(void *dpy) + { +-#if defined(USE_X11) ++#if !defined(EGL_NO_X11) + void *alloc; + void *handle; + void *XAllocID = NULL; +@@ -197,9 +197,9 @@ static EGLBoolean IsX11Display(void *dpy) + } + + return (XAllocID != NULL && XAllocID == alloc); +-#else // defined(USE_X11) ++#else // !defined(EGL_NO_X11) + return EGL_FALSE; +-#endif // defined(USE_X11) ++#endif // !defined(EGL_NO_X11) + } + + static EGLBoolean IsWaylandDisplay(void *native_display) +-- +2.22.0 + + +From 0b09d6222265be115d3102348b5da68ae0e92f77 Mon Sep 17 00:00:00 2001 +From: Kyle Brenneman +Date: Sat, 19 Oct 2019 08:38:25 -0600 +Subject: [PATCH 2/2] configure: Fix the pkg-config check for Xlib. + +Fix an error in the previous commit so that the configure script runs +pkg-config for x11 when it's enabled, not when it's disabled. +--- + configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index ebe497c..31188b9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -174,8 +174,9 @@ dnl + dnl Checks for libraries. + AX_PTHREAD() + +-if test "x$enable_x11" != "xyes" ; then ++if test "x$enable_x11" = "xyes" ; then + PKG_CHECK_MODULES([X11], [x11]) ++else + AC_DEFINE([EGL_NO_X11], 1, + [Define to 1 if X11 support is disabled.]) + fi +-- +2.22.0 + diff --git a/packages/graphics/libglvnd/patches/libglvnd-999.04-update-gl.h-to-match-Mesa..patch b/packages/graphics/libglvnd/patches/libglvnd-999.04-update-gl.h-to-match-Mesa..patch new file mode 100644 index 0000000000..9e1f26a620 --- /dev/null +++ b/packages/graphics/libglvnd/patches/libglvnd-999.04-update-gl.h-to-match-Mesa..patch @@ -0,0 +1,245 @@ +From 5dfdc5a6dc60a3bdc63cd4510dabacba388da13a Mon Sep 17 00:00:00 2001 +From: Kyle Brenneman +Date: Tue, 22 Oct 2019 16:46:09 -0600 +Subject: [PATCH] Update GL/gl.h to match Mesa. + +Updated GL/gl.h to match the copy from Mesa at commit +a0829cf23b307ca44ab8c4505974fb7c8d71a35a. +--- + include/GL/gl.h | 147 ++++++------------------------------------------ + 1 file changed, 17 insertions(+), 130 deletions(-) + +diff --git a/include/GL/gl.h b/include/GL/gl.h +index 3f8cb62..2518dfb 100644 +--- a/include/GL/gl.h ++++ b/include/GL/gl.h +@@ -27,40 +27,24 @@ + #ifndef __gl_h_ + #define __gl_h_ + +-#if defined(USE_MGL_NAMESPACE) +-#include "gl_mangle.h" +-#endif +- +- + /********************************************************************** +- * Begin system-specific stuff. Do not do any of this when building +- * for SciTech SNAP, as this is all done before this header file is +- * included. ++ * Begin system-specific stuff. + */ +-#if !defined(__SCITECH_SNAP__) +- +-#if defined(__BEOS__) +-#include /* to get some BeOS-isms */ +-#endif +- +-#if !defined(OPENSTEP) && (defined(NeXT) || defined(NeXT_PDO)) +-#define OPENSTEP +-#endif + + #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) + #define __WIN32__ + #endif + +-#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) ++#if defined(__WIN32__) && !defined(__CYGWIN__) + # if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ + # define GLAPI __declspec(dllexport) + # elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ + # define GLAPI __declspec(dllimport) + # else /* for use with static link lib build of Win32 edition only */ + # define GLAPI extern +-# endif /* _STATIC_MESA support */ ++# endif + # if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ +-# define GLAPIENTRY ++# define GLAPIENTRY + # else + # define GLAPIENTRY __stdcall + # endif +@@ -72,10 +56,6 @@ + # define GLAPIENTRY + #endif /* WIN32 && !CYGWIN */ + +-#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) +-# define PRAGMA_EXPORT_SUPPORTED 1 +-#endif +- + /* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by +@@ -91,10 +71,6 @@ + #include + #endif + +-#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +-#pragma import on +-#endif +- + #ifndef GLAPI + #define GLAPI extern + #endif +@@ -116,15 +92,6 @@ + #define GLAPIENTRYP GLAPIENTRY * + #endif + +-#ifdef CENTERLINE_CLPP +-#define signed +-#endif +- +-#if defined(PRAGMA_EXPORT_SUPPORTED) +-#pragma export on +-#endif +- +-#endif /* !__SCITECH_SNAP__ */ + /* + * End system-specific stuff. + **********************************************************************/ +@@ -718,7 +685,7 @@ typedef double GLclampd; /* double precision float in [0,1] */ + #define GL_LIST_BIT 0x00020000 + #define GL_TEXTURE_BIT 0x00040000 + #define GL_SCISSOR_BIT 0x00080000 +-#define GL_ALL_ATTRIB_BITS 0x000FFFFF ++#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF + + + /* OpenGL 1.1 */ +@@ -1738,6 +1705,7 @@ GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, + + + ++ + /* + * OpenGL 1.3 + */ +@@ -2085,26 +2053,6 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh + + + +-#if GL_ARB_shader_objects +- +-#ifndef GL_MESA_shader_debug +-#define GL_MESA_shader_debug 1 +- +-#define GL_DEBUG_OBJECT_MESA 0x8759 +-#define GL_DEBUG_PRINT_MESA 0x875A +-#define GL_DEBUG_ASSERT_MESA 0x875B +- +-GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void); +-GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); +-GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength, +- GLsizei *length, GLcharARB *debugLog); +-GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType); +- +-#endif /* GL_MESA_shader_debug */ +- +-#endif /* GL_ARB_shader_objects */ +- +- + /* + * ???. GL_MESA_packed_depth_stencil + * XXX obsolete +@@ -2121,60 +2069,6 @@ GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logTyp + #endif /* GL_MESA_packed_depth_stencil */ + + +-#ifndef GL_MESA_program_debug +-#define GL_MESA_program_debug 1 +- +-#define GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 +-#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 +-#define GL_VERTEX_PROGRAM_POSITION_MESA 0x8bb4 +-#define GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8bb5 +-#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 +-#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 +- +-typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data); +- +-GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data); +- +-GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v); +- +-#endif /* GL_MESA_program_debug */ +- +- +-#ifndef GL_MESA_texture_array +-#define GL_MESA_texture_array 1 +- +-/* GL_MESA_texture_array uses the same enum values as GL_EXT_texture_array. +- */ +-#ifndef GL_EXT_texture_array +- +-#ifdef GL_GLEXT_PROTOTYPES +-GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, +- GLenum attachment, GLuint texture, GLint level, GLint layer); +-#endif /* GL_GLEXT_PROTOTYPES */ +- +-#if 0 +-/* (temporarily) disabled because of collision with typedef in glext.h +- * that happens if apps include both gl.h and glext.h +- */ +-typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, +- GLenum attachment, GLuint texture, GLint level, GLint layer); +-#endif +- +-#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +-#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +-#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +-#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +-#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +-#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +-#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +-#endif +- +-#endif +- +- + #ifndef GL_ATI_blend_equation_separate + #define GL_ATI_blend_equation_separate 1 + +@@ -2186,27 +2080,20 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLen + #endif /* GL_ATI_blend_equation_separate */ + + +-/** +- ** NOTE!!!!! If you add new functions to this file, or update +- ** glext.h be sure to regenerate the gl_mangle.h file. See comments +- ** in that file for details. +- **/ +- +- +- +-/********************************************************************** +- * Begin system-specific stuff +- */ +-#if defined(PRAGMA_EXPORT_SUPPORTED) +-#pragma export off ++/* GL_OES_EGL_image */ ++#if !defined(GL_OES_EGL_image) && !defined(GL_EXT_EGL_image_storage) ++typedef void* GLeglImageOES; + #endif + +-#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED +-#pragma import off ++#ifndef GL_OES_EGL_image ++#define GL_OES_EGL_image 1 ++#ifdef GL_GLEXT_PROTOTYPES ++GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); ++GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); ++#endif ++typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); ++typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); + #endif +-/* +- * End system-specific stuff +- **********************************************************************/ + + + #ifdef __cplusplus +-- +2.22.0 + diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk index dd2f32277c..5ce52bf62e 100644 --- a/packages/graphics/mesa/package.mk +++ b/packages/graphics/mesa/package.mk @@ -3,8 +3,8 @@ # Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="mesa" -PKG_VERSION="19.2.1" -PKG_SHA256="00a41100a050094b169cf4cd7e99bb654d9883f106b473f70432a726f838c61d" +PKG_VERSION="19.2.3" +PKG_SHA256="c8a5010403e83ad2d2e52754d597ff3f87eebfcc7026ab3e4019cbecb77acaef" PKG_LICENSE="OSS" PKG_SITE="http://www.mesa3d.org/" PKG_URL="https://github.com/mesa3d/mesa/archive/mesa-${PKG_VERSION}.tar.gz" diff --git a/packages/x11/xserver/xorg-server/patches/xorg-server-999.02-replace-MESA_EGL_NO_X11_HEADERS-hack-with-upstream-EGL_NO_X11.patch b/packages/x11/xserver/xorg-server/patches/xorg-server-999.02-replace-MESA_EGL_NO_X11_HEADERS-hack-with-upstream-EGL_NO_X11.patch new file mode 100644 index 0000000000..9521147972 --- /dev/null +++ b/packages/x11/xserver/xorg-server/patches/xorg-server-999.02-replace-MESA_EGL_NO_X11_HEADERS-hack-with-upstream-EGL_NO_X11.patch @@ -0,0 +1,81 @@ +From 80d7c1ad75cc4cd3aa844d5ff34fee723966d9fc Mon Sep 17 00:00:00 2001 +From: fafryd +Date: Sat, 19 Oct 2019 21:58:09 +0200 +Subject: [PATCH] replace MESA_EGL_NO_X11_HEADERS hack with upstream EGL_NO_X11 + +--- + glamor/glamor_egl.h | 2 +- + glamor/glamor_priv.h | 2 +- + hw/xwayland/xwayland-glamor-eglstream.c | 2 +- + hw/xwayland/xwayland-glamor-gbm.c | 2 +- + hw/xwayland/xwayland-glamor.c | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/glamor/glamor_egl.h b/glamor/glamor_egl.h +index 2f7566b24..af1c707d2 100644 +--- a/glamor/glamor_egl.h ++++ b/glamor/glamor_egl.h +@@ -27,7 +27,7 @@ + #ifndef GLAMOR_EGL_H + #define GLAMOR_EGL_H + +-#define MESA_EGL_NO_X11_HEADERS ++#define EGL_NO_X11 + #include + #include + #include +diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h +index 7d9a7d4fb..bcdaf4040 100644 +--- a/glamor/glamor_priv.h ++++ b/glamor/glamor_priv.h +@@ -39,7 +39,7 @@ + + #include + #ifdef GLAMOR_HAS_GBM +-#define MESA_EGL_NO_X11_HEADERS ++#define EGL_NO_X11 + #include + #endif + +diff --git a/hw/xwayland/xwayland-glamor-eglstream.c b/hw/xwayland/xwayland-glamor-eglstream.c +index c62c0d2ac..e665b963e 100644 +--- a/hw/xwayland/xwayland-glamor-eglstream.c ++++ b/hw/xwayland/xwayland-glamor-eglstream.c +@@ -32,7 +32,7 @@ + #include "wayland-eglstream-client-protocol.h" + #include "wayland-eglstream-controller-client-protocol.h" + +-#define MESA_EGL_NO_X11_HEADERS ++#define EGL_NO_X11 + #include + #include + #include +diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c +index 291e060cf..c92d6073f 100644 +--- a/hw/xwayland/xwayland-glamor-gbm.c ++++ b/hw/xwayland/xwayland-glamor-gbm.c +@@ -35,7 +35,7 @@ + #include + #include + +-#define MESA_EGL_NO_X11_HEADERS ++#define EGL_NO_X11 + #include + #include + +diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c +index 7ea6def61..587ef5ed0 100644 +--- a/hw/xwayland/xwayland-glamor.c ++++ b/hw/xwayland/xwayland-glamor.c +@@ -25,7 +25,7 @@ + + #include "xwayland.h" + +-#define MESA_EGL_NO_X11_HEADERS ++#define EGL_NO_X11 + #include + + #include +-- +2.23.0 +