From 2d7630924cbe540c20ed2c484de6d00d44ae44e5 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Fri, 25 Oct 2019 12:38:22 +0000 Subject: [PATCH] extra/libglvnd to 1.2.0-5 --- extra/libglvnd/EGL-Set-EGL_NO_X11-macro.patch | 100 +++++++ extra/libglvnd/PKGBUILD | 15 +- extra/libglvnd/egl-sync-with-khronos.patch | 42 +++ .../libglvnd/update-gl-h-to-match-mesa.patch | 245 ++++++++++++++++++ 4 files changed, 401 insertions(+), 1 deletion(-) create mode 100644 extra/libglvnd/EGL-Set-EGL_NO_X11-macro.patch create mode 100644 extra/libglvnd/egl-sync-with-khronos.patch create mode 100644 extra/libglvnd/update-gl-h-to-match-mesa.patch diff --git a/extra/libglvnd/EGL-Set-EGL_NO_X11-macro.patch b/extra/libglvnd/EGL-Set-EGL_NO_X11-macro.patch new file mode 100644 index 000000000..51b8fd7b4 --- /dev/null +++ b/extra/libglvnd/EGL-Set-EGL_NO_X11-macro.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/extra/libglvnd/PKGBUILD b/extra/libglvnd/PKGBUILD index bf48441e6..a3379e0ee 100644 --- a/extra/libglvnd/PKGBUILD +++ b/extra/libglvnd/PKGBUILD @@ -5,7 +5,7 @@ pkgname=libglvnd pkgver=1.2.0 -pkgrel=3 +pkgrel=5 pkgdesc="The GL Vendor-Neutral Dispatch library" arch=('x86_64') url="https://github.com/NVIDIA/libglvnd" @@ -14,9 +14,15 @@ makedepends=('libxext' 'libx11' 'glproto' 'python') provides=('libgl' 'libegl' 'libgles') source=("$pkgname-$pkgver.tar.gz::https://github.com/NVIDIA/libglvnd/archive/v$pkgver.tar.gz" 0001-Add-a-configure-option-to-disable-glesv1-or-glesv2.patch + update-gl-h-to-match-mesa.patch + egl-sync-with-khronos.patch + EGL-Set-EGL_NO_X11-macro.patch LICENSE) sha512sums=('0e0e9c3f303739c73f5bee4c2aaef9eff56440345f2f1ce285ee98eb94c1e5e740774dd501aeeed1299aa25a449d813a850e95282999a3ca4648d2381d6c8fa6' 'b2d2e8fd7ea92bfc913d0b808d15c801e7c3ceb484bdd60700fd1c9ce27b4fbd4b68e568e967599f2e5132cc1ed382ec87a07c16bd3bfa5c4d920f2d9600e689' + '46c73df9ae0b730eedcaf44b5c4ea8e70d2fa5652d9e410b757eede3e6defb334e07ce6652cc54d65653521b1e244e3e206eedb2c7c61efd6ae6409774fd9229' + '2099ba851e32cbae79e234e5b695de2441c27aa213bc192f20a02be124179a2d2f4bf098e185715befd4a6a548262a7fced06b57dcfc4eaac375cd7915e27da8' + 'ce11a4ef523c26a650fa926826b430ea561d5b3fef5e61b388258616b7d87e017f2537035e48a5b177b36ca6dc99d4d88b26d6de7135f49fb4150fe1d2f3b3a9' 'bf0f4a7e04220a407400f89226ecc1f798cc43035f2538cc8860e5088e1f84140baf0d4b0b28f66e4b802d4d6925769a1297c24e1ba39c1c093902b2931781a5') prepare() { @@ -25,6 +31,13 @@ prepare() { # merged upstream patch -Np1 -i ../0001-Add-a-configure-option-to-disable-glesv1-or-glesv2.patch + # https://gitlab.freedesktop.org/glvnd/libglvnd/issues/194 + patch -Np1 -i ../update-gl-h-to-match-mesa.patch + + # https://gitlab.freedesktop.org/glvnd/libglvnd/merge_requests/193 - FS#64228 + patch -Np1 -i ../egl-sync-with-khronos.patch + patch -Np1 -i ../EGL-Set-EGL_NO_X11-macro.patch + ./autogen.sh } diff --git a/extra/libglvnd/egl-sync-with-khronos.patch b/extra/libglvnd/egl-sync-with-khronos.patch new file mode 100644 index 000000000..9f048e44a --- /dev/null +++ b/extra/libglvnd/egl-sync-with-khronos.patch @@ -0,0 +1,42 @@ +diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h +index 29ab288b57eb6ccce0476f0e76c8b4da94225091..5ab49c1d4ea4564cc5d94a2a7ffa842ac6b3eeb1 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 c27f1726b677f311d792a136e86c5e01ae467e5f..6bc2ea2886aaf628d9741a7de2629bd8e38f37c8 100644 +--- a/src/generate/xml/egl.xml ++++ b/src/generate/xml/egl.xml +@@ -1002,6 +1002,9 @@ + + + ++ ++ ++ + + +- +- ++ ++ + + + diff --git a/extra/libglvnd/update-gl-h-to-match-mesa.patch b/extra/libglvnd/update-gl-h-to-match-mesa.patch new file mode 100644 index 000000000..9e1f26a62 --- /dev/null +++ b/extra/libglvnd/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 +