From 52a9ee34f836da40ff99f9e964a305bfcaf143dc Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Tue, 30 May 2017 13:57:52 +0200 Subject: libre/smplayer: updated to 17.5.0 --- libre/smplayer/PKGBUILD | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'libre') diff --git a/libre/smplayer/PKGBUILD b/libre/smplayer/PKGBUILD index badb59748..5a109f02e 100644 --- a/libre/smplayer/PKGBUILD +++ b/libre/smplayer/PKGBUILD @@ -1,13 +1,14 @@ +# Maintainer: Andreas Grapentin +# Contributor: Omar Vega Ramos +# Contributor: André Silva # Maintainer (Arch): Levente Polyak # Contributor (Arch): Ionut Biru # Contributor (Arch): Allan McRae # Contributor (Arch): Alessio 'mOLOk' Bolognino # Contributor (Arch): shamrok -# Maintainer: Omar Vega Ramos -# Maintainer: André Silva pkgname=smplayer -pkgver=17.4.2 +pkgver=17.5.0 pkgrel=1.parabola1 pkgdesc='Media player with built-in codecs that can play virtually all video and audio formats, without nonfree smtube support' url='http://smplayer.sourceforge.net/' @@ -22,9 +23,9 @@ optdepends=('smplayer-themes: icon themes collection' source=(https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 disable-smtube-support.patch add-missing-QClipboard-include.patch) -sha512sums=('bb0169dc1e2d6b56f3617986647664eda677229bce5b2aa898b64574319a84ac4d51c78f5a68ab57df5dce48c1f76d0d9e0dbdefa5baee351c0a22c2a9cb5186' - '813efc30a754015d8bca9391ed3b586481c2cd931a0b234a8cb94cdad7ae92b8976aabd05569099900ce65b8f2fd39d39da0dddff46bfe10891dd5edc4f12283' - '619b8a236b36518bf0f9984d87384d9c5be10fdbda17598d57736064c0c2d6d9f920c9d3f1eb059ba390670ec28559f0dda6f85757ef8696540c424b08863e39') +sha256sums=('38bc19b2e946f8da35c1902b38a3375683e42a11591c89801885b3f16f8e0288' + 'e86a0881d6696dfe2b5a2742947f317090194beab4986df7e9ac8845727e78de' + 'abb66acd70e61bc2bf7abfa2887b24b76004e00b9649a9b38aa44b4409fea08e') prepare() { cd $pkgname-$pkgver -- cgit v1.2.3 From 6d3bebe656d4c660764520df6d069d07f602acd4 Mon Sep 17 00:00:00 2001 From: fauno Date: Tue, 30 May 2017 10:59:57 -0300 Subject: linux-libre-lts: 4.9.30 --- libre/linux-libre-lts/PKGBUILD | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) (limited to 'libre') diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD index 9a177b82f..bf102894c 100644 --- a/libre/linux-libre-lts/PKGBUILD +++ b/libre/linux-libre-lts/PKGBUILD @@ -10,7 +10,7 @@ pkgbase=linux-libre-lts _pkgbasever=4.9-gnu -_pkgver=4.9.29-gnu +_pkgver=4.9.30-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname @@ -47,19 +47,20 @@ source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/l '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' '0002-fix-Atmel-maXTouch-touchscreen-support.patch' # armv7h patches - "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch" - "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch.sig" - '0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch' - '0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch' - '0003-SMILE-Plug-device-tree-file.patch' - '0004-fix-mvsdio-eMMC-timing.patch' - '0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch' - '0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch' - '0007-set-default-cubietruck-led-triggers.patch' - '0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch') +# "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch" +# "https://repo.parabola.nu/other/rcn-libre/patches/${_pkgver%-*}/rcn-libre-${_pkgver%-*}-${rcnrel}.patch.sig" +# '0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch' +# '0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch' +# '0003-SMILE-Plug-device-tree-file.patch' +# '0004-fix-mvsdio-eMMC-timing.patch' +# '0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch' +# '0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch' +# '0007-set-default-cubietruck-led-triggers.patch' +# '0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch') + ) sha512sums=('885eb0a7fab45dc749acb4329b4330a43b704df2d5f2f5aac1811503c132ca53ca49452f9b1cc80b0826c7a4962dbe4937aecb697aa823b2543ba2cabc704816' 'SKIP' - 'e7a9103ea6f6402cf6b37bca97020f34e4fc00e7ef14268509291416cf9e0d0c70d5f158c907ab54f500024488a97fcba3e5027ccbfe1309fc28db0ac9ae0553' + '470461abe876c3cd44fcc5c8f9de1937506140e3e7f813e562bc2914d84c741a7201934061fa67063f27990b9f854b1f672a3ee79f862368b048a853470afd39' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -74,17 +75,7 @@ sha512sums=('885eb0a7fab45dc749acb4329b4330a43b704df2d5f2f5aac1811503c132ca53ca4 '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' 'd9d28e02e964704ea96645a5107f8b65cae5f4fb4f537e224e5e3d087fd296cb770c29ac76e0ce95d173bc420ea87fb8f187d616672a60a0cae618b0ef15b8c8' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' - 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '43e66efa3133115951e3a257d6eda541ef7b7e17fba339479548f86aa9c1450f6c89b32a63a5e80e3781e9484be309c1c10233351633e9e95bc8b651b2378621' - 'SKIP' - 'ccf18eb2c3d33a57871cbadd5ad825d2f2f489e69c54c7293b160abdc3e9e5c6a664ba7926a617d31affcf20b7ecb4e8de54fa78438c574aa1b257f686faade9' - '69f13bb2e353727acbe39034978729272511c6578aa2faf8c829e1bb89c22e769262289b76d93254314304ebd7547c45cdc8ba6afc278444a8fd09f71dff9757' - '47038a476ff90d7106e1ce2cf5dd3f2c356c75ab8cefc6901f8eddcbf7cd0f23c44f6ce96b2b3d57a6e3f30bdd5192cf3e75759277ab0ac6fbb179423f2431a0' - '75513d1d6dfeb6425763dc8fe8d7f607ddd11d2a8397230333a4e556b303ceb7e68bfdb26d0a10f4b557ef13adbf54c3aab00f5b493772a94b5cd87d143663c4' - '37df06631772200edc7e5a4450719155156a781e9a475383283627f6f1b8cbe94db6ba2e2fbc59107ea288846b56881b892e9b21d3d899b974fad4226c4def10' - '73916b59fd8f269ce2831d9a0710f503b9cd1004d94caf9e061ebff870a115cc8455409040574a609473e48c60b2f0b833c907327dacb085509e615c27dd463f' - 'eef5d8161edcc9817832de2000ad30320507a1e16fc321fb2b97dd2d159825b8f924cd29e5a4ffa29c339c8727f106730e6b6858c50d8afe7a5000629507badd' - 'b3aad9fd9292122fd3227f05d54742731bf4d6d57aaac680b34eca19597dfb56a7f54c7ad54f37cfc2ec7f622fbd90abe7f288f11f8eb98278ab07df32cf890a') + 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. -- cgit v1.2.3 From 697d8222ba906c1b36dc8413f358099739030222 Mon Sep 17 00:00:00 2001 From: Omar Vega Ramos Date: Wed, 31 May 2017 14:55:22 -0500 Subject: rebuild module packages against linux-libre-4.11.3_gnu-1 --- libre/acpi_call/PKGBUILD | 6 +++--- libre/bbswitch/PKGBUILD | 6 +++--- libre/tp_smapi/PKGBUILD | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'libre') diff --git a/libre/acpi_call/PKGBUILD b/libre/acpi_call/PKGBUILD index 89fa012fc..8cd45078f 100644 --- a/libre/acpi_call/PKGBUILD +++ b/libre/acpi_call/PKGBUILD @@ -5,11 +5,11 @@ # Contributor: Luke Shumaker # Contributor: Márcio Silva -_kernelname=-lts +_kernelname= if [[ ${_kernelname} == "" ]]; then - _basekernel=4.10 - _archrel=60 + _basekernel=4.11 + _archrel=62 _parabolarel=1 elif [[ ${_kernelname} == -lts ]]; then _basekernel=4.9 diff --git a/libre/bbswitch/PKGBUILD b/libre/bbswitch/PKGBUILD index f318e66a6..7c0c7b054 100644 --- a/libre/bbswitch/PKGBUILD +++ b/libre/bbswitch/PKGBUILD @@ -5,11 +5,11 @@ # Contributor: Luke Shumaker # Contributor: Márcio Silva -_kernelname=-lts +_kernelname= if [[ ${_kernelname} == "" ]]; then - _basekernel=4.10 - _archrel=65 + _basekernel=4.11 + _archrel=67 _parabolarel=1 elif [[ ${_kernelname} == -lts ]]; then _basekernel=4.9 diff --git a/libre/tp_smapi/PKGBUILD b/libre/tp_smapi/PKGBUILD index d3377a149..7a5f636f7 100644 --- a/libre/tp_smapi/PKGBUILD +++ b/libre/tp_smapi/PKGBUILD @@ -10,11 +10,11 @@ # Contributor: Luke Shumaker # Contributor: Márcio Silva -_kernelname=-lts +_kernelname= if [[ ${_kernelname} == "" ]]; then - _basekernel=4.10 - _archrel=14 + _basekernel=4.11 + _archrel=16 _parabolarel=1 elif [[ ${_kernelname} == -lts ]]; then _basekernel=4.9 -- cgit v1.2.3 From ceded6d69a0811b8e56838554f84c64a4c4a0d85 Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Wed, 31 May 2017 22:50:21 +0200 Subject: libre/clamav: building without llvm --- libre/clamav/PKGBUILD | 88 +++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) (limited to 'libre') diff --git a/libre/clamav/PKGBUILD b/libre/clamav/PKGBUILD index 7f3fb5166..7faa780e6 100644 --- a/libre/clamav/PKGBUILD +++ b/libre/clamav/PKGBUILD @@ -1,26 +1,21 @@ -# $Id: PKGBUILD 292502 2017-04-08 08:19:57Z foutrelis $ +# Maintainer: Andreas Grapentin +# Contributor: Omar Vega Ramos +# Contributor: André Silva +# Contributor: Isaac David # Contributor (Arch): Dale Blount # Contributor (Arch): Gregor Ibic # Maintainer (Arch): Gaetan Bisson -# Maintainer: Omar Vega Ramos -# Contributor: André Silva -# Contributor: Isaac David _pkgname=clamav-libre pkgname=clamav pkgver=0.99.2 -pkgrel=6.parabola1 +pkgrel=6.parabola2 pkgdesc='Anti-virus toolkit for Unix, without nonfree decompression engine for RAR archives' url='http://www.clamav.net/' license=('GPL') arch=('i686' 'x86_64' 'armv7h') makedepends=('libmilter') -makedepends_x86_64=('llvm') -makedepends_i686=("${makedepends_x86_64[@]}") depends=('bzip2' 'libltdl' 'libxml2' 'curl' 'pcre') -depends_x86_64=('llvm-libs') -depends_i686=("${depends_x86_64[@]}") -depends_armv7h=('gcc-libs') validpgpkeys=('B964E6D7BC7D7C82CCB8D45840B8EA2364221D53' 'F79FB2D08751574C5D3FDFFBB3D5342C260429A0') mksource=("http://www.clamav.net/downloads/production/${pkgname}-${pkgver}.tar.gz"{,.sig}) @@ -52,50 +47,55 @@ backup=('etc/clamav/clamd.conf' install=install mksource() { - cd "${srcdir}/${pkgname}-${pkgver}" - msg2 "remove nonfree unRAR utility files from the source" - rm -rv libclamunrar - rm -v COPYING.unrar + cd "${srcdir}/${pkgname}-${pkgver}" + + msg2 "remove nonfree unRAR utility files from the source" + rm -rv libclamunrar + rm -v COPYING.unrar } prepare() { - #if [ "$CARCH" = i686 -o "$CARCH" = x86_64 ]; then - cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i ../clamav-0.99.2-gcc-6.patch - patch -Np1 -i ../make_it_compile_against_openssl_1_1_0.patch - autoreconf -fi - #fi + cd "${srcdir}/${pkgname}-${pkgver}" + + patch -Np1 -i ../clamav-0.99.2-gcc-6.patch + patch -Np1 -i ../make_it_compile_against_openssl_1_1_0.patch + autoreconf -fi } build() { - cd "${srcdir}/${pkgname}-${pkgver}" - # --disable-zlib-vcheck because the configure script thinks that - # zlib 1.2.11 is older than 1.2.2 - ./configure \ - --prefix=/usr \ - --sbindir=/usr/bin \ - --sysconfdir=/etc/clamav \ - --with-dbdir=/var/lib/clamav \ - --disable-clamav \ - --disable-zlib-vcheck \ - --enable-milter \ - --disable-unrar + cd "${srcdir}/${pkgname}-${pkgver}" + + # --disable-zlib-vcheck: + # the configure script thinks that zlib 1.2.11 is older than 1.2.2 + # --enable-llvm=no: + # workaround for database update issues + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/clamav \ + --with-dbdir=/var/lib/clamav \ + --disable-clamav \ + --disable-zlib-vcheck \ + --enable-milter \ + --disable-unrar \ + --enable-llvm=no - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make } package() { - cd "${srcdir}/${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install - install -Dm644 ../clamd.conf "${pkgdir}"/etc/clamav/clamd.conf - install -Dm644 ../freshclam.conf "${pkgdir}"/etc/clamav/freshclam.conf - install -Dm644 ../freshclamd.service "${pkgdir}"/usr/lib/systemd/system/freshclamd.service - install -Dm644 ../clamd.service "${pkgdir}"/usr/lib/systemd/system/clamd.service - install -Dm644 ../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/clamav.conf - install -Dm644 ../logrotate "${pkgdir}"/etc/logrotate.d/clamav + install -Dm644 ../clamd.conf "${pkgdir}"/etc/clamav/clamd.conf + install -Dm644 ../freshclam.conf "${pkgdir}"/etc/clamav/freshclam.conf + install -Dm644 ../freshclamd.service "${pkgdir}"/usr/lib/systemd/system/freshclamd.service + install -Dm644 ../clamd.service "${pkgdir}"/usr/lib/systemd/system/clamd.service + install -Dm644 ../tmpfiles.d "${pkgdir}"/usr/lib/tmpfiles.d/clamav.conf + install -Dm644 ../logrotate "${pkgdir}"/etc/logrotate.d/clamav - install -d -o 64 -g 64 "${pkgdir}"/var/log/clamav - install -d -o 64 -g 64 "${pkgdir}"/var/lib/clamav + install -d -o 64 -g 64 "${pkgdir}"/var/log/clamav + install -d -o 64 -g 64 "${pkgdir}"/var/lib/clamav } -- cgit v1.2.3 From 54bcad230c7b62f7644814b0113fa5ee9483ee50 Mon Sep 17 00:00:00 2001 From: Omar Vega Ramos Date: Thu, 1 Jun 2017 01:19:47 -0500 Subject: mesa-17.1.0-1.parabola1: updating version --- ...plement-the-libglvnd-interface-for-EGL-v2.patch | 3952 -------------------- ...1-glapi-Link-with-glapi-when-built-shared.patch | 82 - ...patch-Add-missing-dispatch-for-GetDriverC.patch | 88 + ...mplement-the-libglvnd-interface-for-EGL-v.patch | 33 - libre/mesa/PKGBUILD | 41 +- libre/mesa/remove-libpthread-stubs.patch | 13 - 6 files changed, 104 insertions(+), 4105 deletions(-) delete mode 100644 libre/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch delete mode 100644 libre/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch create mode 100644 libre/mesa/0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch delete mode 100644 libre/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch delete mode 100644 libre/mesa/remove-libpthread-stubs.patch (limited to 'libre') diff --git a/libre/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch b/libre/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch deleted file mode 100644 index 913a9dd51..000000000 --- a/libre/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch +++ /dev/null @@ -1,3952 +0,0 @@ -From 97b447ee480a09a744094562da36b019a3eeb10f Mon Sep 17 00:00:00 2001 -From: Kyle Brenneman -Date: Wed, 4 Jan 2017 11:31:58 -0700 -Subject: [PATCH 1/2] EGL: Implement the libglvnd interface for EGL (v2) - -Added separate --enable-libglvnd-glx and --enable-libglvnd-egl configure -options to enable libglvnd for GLX and EGL. The existing --enable-libglvnd -option will now enable both EGL and GLX. - -The new interface mostly just sits on top of the existing library. The only -change to the existing EGL code is to split the client extension string into -platform extensions and everything else. On non-glvnd builds, eglQueryString -will just concatenate the two strings. - -The EGL dispatch stubs are all generated. The script is based on the one used -to generate entrypoints in libglvnd itself. - -v2: - -Rebased against master. - -Reworked the EGL makefile to use separate libtool targets instead of an -automake substitution "lib@EGL_LIB@_la_*" in the variable names. Using the -substitution broke automake's dependency tracking for "make dist". - -Made the EGL code generation scripts work with Python 2 or 3. - -Change gen_egl_dispatch.py to use argparse for the command line arguments. - -Assorted formatting and style cleanup in the Python scripts. ---- - configure.ac | 154 ++- - src/egl/Makefile.am | 97 +- - src/egl/generate/egl.xml | 2412 ++++++++++++++++++++++++++++++++++ - src/egl/generate/eglFunctionList.py | 197 +++ - src/egl/generate/egl_other.xml | 47 + - src/egl/generate/genCommon.py | 223 ++++ - src/egl/generate/gen_egl_dispatch.py | 250 ++++ - src/egl/main/50_mesa.json | 6 + - src/egl/main/eglapi.c | 6 +- - src/egl/main/egldispatchstubs.c | 110 ++ - src/egl/main/egldispatchstubs.h | 26 + - src/egl/main/eglglobals.c | 47 +- - src/egl/main/eglglobals.h | 13 +- - src/egl/main/eglglvnd.c | 82 ++ - 14 files changed, 3576 insertions(+), 94 deletions(-) - create mode 100755 src/egl/generate/egl.xml - create mode 100644 src/egl/generate/eglFunctionList.py - create mode 100644 src/egl/generate/egl_other.xml - create mode 100644 src/egl/generate/genCommon.py - create mode 100755 src/egl/generate/gen_egl_dispatch.py - create mode 100644 src/egl/main/50_mesa.json - create mode 100644 src/egl/main/egldispatchstubs.c - create mode 100644 src/egl/main/egldispatchstubs.h - create mode 100644 src/egl/main/eglglvnd.c - -diff --git a/configure.ac b/configure.ac -index de8af874ec..839b25c057 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -528,8 +528,6 @@ else - DEFINES="$DEFINES -DNDEBUG" - fi - --DEFAULT_GL_LIB_NAME=GL -- - dnl - dnl Check if linker supports -Bsymbolic - dnl -@@ -627,23 +625,6 @@ esac - - AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes) - --DEFAULT_GL_LIB_NAME=GL -- --dnl --dnl Libglvnd configuration --dnl --AC_ARG_ENABLE([libglvnd], -- [AS_HELP_STRING([--enable-libglvnd], -- [Build for libglvnd @<:@default=disabled@:>@])], -- [enable_libglvnd="$enableval"], -- [enable_libglvnd=no]) --AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes) --#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"]) --if test "x$enable_libglvnd" = xyes ; then -- DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" -- DEFAULT_GL_LIB_NAME=GLX_mesa --fi -- - dnl - dnl library names - dnl -@@ -677,36 +658,6 @@ esac - - AC_SUBST([LIB_EXT]) - --AC_ARG_WITH([gl-lib-name], -- [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@], -- [specify GL library name @<:@default=GL@:>@])], -- [GL_LIB=$withval], -- [GL_LIB="$DEFAULT_GL_LIB_NAME"]) --AC_ARG_WITH([osmesa-lib-name], -- [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@], -- [specify OSMesa library name @<:@default=OSMesa@:>@])], -- [OSMESA_LIB=$withval], -- [OSMESA_LIB=OSMesa]) --AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"]) --AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) -- --dnl --dnl Mangled Mesa support --dnl --AC_ARG_ENABLE([mangling], -- [AS_HELP_STRING([--enable-mangling], -- [enable mangled symbols and library name @<:@default=disabled@:>@])], -- [enable_mangling="${enableval}"], -- [enable_mangling=no] --) --if test "x${enable_mangling}" = "xyes" ; then -- DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE" -- GL_LIB="Mangled${GL_LIB}" -- OSMESA_LIB="Mangled${OSMESA_LIB}" --fi --AC_SUBST([GL_LIB]) --AC_SUBST([OSMESA_LIB]) -- - dnl - dnl potentially-infringing-but-nobody-knows-for-sure stuff - dnl -@@ -1335,31 +1286,94 @@ AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib) - dnl - dnl Libglvnd configuration - dnl -+ -+DEFAULT_GL_LIB_NAME=GL -+ - AC_ARG_ENABLE([libglvnd], - [AS_HELP_STRING([--enable-libglvnd], -- [Build for libglvnd @<:@default=disabled@:>@])], -+ [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])], - [enable_libglvnd="$enableval"], - [enable_libglvnd=no]) --AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes) --if test "x$enable_libglvnd" = xyes ; then -- dnl XXX: update once we can handle more than libGL/glx. -- dnl Namely: we should error out if neither of the glvnd enabled libraries -- dnl are built -- case "x$enable_glx" in -- xno) -- AC_MSG_ERROR([cannot build libglvnd without GLX]) -- ;; -- xxlib | xgallium-xlib ) -- AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled]) -- ;; -- xdri) -- ;; -- esac -+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes) -+ -+AC_ARG_ENABLE([libglvnd-glx], -+ [AS_HELP_STRING([--enable-libglvnd-glx], -+ [Build GLX for libglvnd @<:@default=disabled@:>@])], -+ [enable_libglvnd_glx="$enableval"], -+ [enable_libglvnd_glx="$enable_libglvnd"]) -+AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes) -+ -+AC_ARG_ENABLE([libglvnd-egl], -+ [AS_HELP_STRING([--enable-libglvnd-egl], -+ [Build EGL for libglvnd @<:@default=disabled@:>@])], -+ [enable_libglvnd_egl="$enableval"], -+ [enable_libglvnd_egl="$enable_libglvnd"]) -+AM_CONDITIONAL(USE_LIBGLVND_EGL, test "x$enable_libglvnd_egl" = xyes) -+ -+if test "x$enable_libglvnd_glx" = xyes -o "x$enable_libglvnd_egl" = xyes ; then -+ PKG_CHECK_VAR(LIBGLVND_DATADIR, libglvnd, datadir) -+ AC_SUBST([LIBGLVND_DATADIR]) -+ -+ if test "x$enable_libglvnd_egl" = xyes ; then -+ PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0) -+ -+ if test "x$enable_egl" != xyes ; then -+ AC_MSG_ERROR([cannot build libglvnd without EGL]) -+ fi -+ DEFINES="${DEFINES} -DUSE_LIBGLVND_EGL=1" -+ else -+ PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0) -+ fi -+ -+ if test "x$enable_libglvnd_glx" = xyes ; then -+ dnl XXX: update once we can handle more than libGL/glx. -+ dnl Namely: we should error out if neither of the glvnd enabled libraries -+ dnl are built -+ case "x$enable_glx" in -+ xno) -+ AC_MSG_ERROR([cannot build libglvnd without GLX]) -+ ;; -+ xxlib | xgallium-xlib ) -+ AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled]) -+ ;; -+ xdri) -+ ;; -+ esac -+ -+ DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" -+ DEFAULT_GL_LIB_NAME=GLX_mesa -+ fi -+fi -+ -+AC_ARG_WITH([gl-lib-name], -+ [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@], -+ [specify GL library name @<:@default=GL@:>@])], -+ [GL_LIB=$withval], -+ [GL_LIB="$DEFAULT_GL_LIB_NAME"]) -+AC_ARG_WITH([osmesa-lib-name], -+ [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@], -+ [specify OSMesa library name @<:@default=OSMesa@:>@])], -+ [OSMESA_LIB=$withval], -+ [OSMESA_LIB=OSMesa]) -+AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"]) -+AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) - -- PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0) -- DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1" -- DEFAULT_GL_LIB_NAME=GLX_mesa -+dnl -+dnl Mangled Mesa support -+dnl -+AC_ARG_ENABLE([mangling], -+ [AS_HELP_STRING([--enable-mangling], -+ [enable mangled symbols and library name @<:@default=disabled@:>@])], -+ [enable_mangling="${enableval}"], -+ [enable_mangling=no] -+) -+if test "x${enable_mangling}" = "xyes" ; then -+ DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE" -+ GL_LIB="Mangled${GL_LIB}" -+ OSMESA_LIB="Mangled${OSMESA_LIB}" - fi -+AC_SUBST([GL_LIB]) -+AC_SUBST([OSMESA_LIB]) - - # Check for libdrm - PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], -@@ -2759,11 +2773,15 @@ xgallium-xlib) - echo " GLX: $enable_glx" - ;; - esac -+if test "x$enable_glx" != xno; then -+ echo " GLX libglvnd: $enable_libglvnd_glx" -+fi - - dnl EGL - echo "" - echo " EGL: $enable_egl" - if test "$enable_egl" = yes; then -+ echo " EGL libglvnd: $enable_libglvnd_egl" - echo " EGL platforms: $egl_platforms" - - egl_drivers="" -diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am -index 78cf525951..3bc62d550f 100644 ---- a/src/egl/Makefile.am -+++ b/src/egl/Makefile.am -@@ -32,19 +32,16 @@ AM_CFLAGS = \ - $(EGL_CFLAGS) \ - -D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM) - --lib_LTLIBRARIES = libEGL.la -- --libEGL_la_SOURCES = \ -+# Depending on whether libglvnd is enabled, we'll build the EGL library as -+# either libEGL.so.1 or libEGL_mesa.so.0. Using an automake substitution -+# in the variable names breaks "make dist" target, so use a conenience library -+# instead. -+noinst_LTLIBRARIES = libEGL_common.la -+libEGL_common_la_SOURCES = \ - $(LIBEGL_C_FILES) - --libEGL_la_LIBADD = \ -+libEGL_common_la_LIBADD = \ - $(EGL_LIB_DEPS) --libEGL_la_LDFLAGS = \ -- -no-undefined \ -- -version-number 1:0 \ -- $(BSYMBOLIC) \ -- $(GC_SECTIONS) \ -- $(LD_NO_UNDEFINED) - - dri2_backend_FILES = - dri3_backend_FILES = -@@ -52,7 +49,7 @@ dri3_backend_FILES = - if HAVE_PLATFORM_X11 - AM_CFLAGS += -DHAVE_X11_PLATFORM - AM_CFLAGS += $(XCB_DRI2_CFLAGS) --libEGL_la_LIBADD += $(XCB_DRI2_LIBS) -+libEGL_common_la_LIBADD += $(XCB_DRI2_LIBS) - dri2_backend_FILES += drivers/dri2/platform_x11.c - - if HAVE_DRI3 -@@ -60,22 +57,22 @@ dri3_backend_FILES += \ - drivers/dri2/platform_x11_dri3.c \ - drivers/dri2/platform_x11_dri3.h - --libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la -+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la - endif - endif - - if HAVE_PLATFORM_WAYLAND - AM_CFLAGS += -DHAVE_WAYLAND_PLATFORM - AM_CFLAGS += $(WAYLAND_CFLAGS) --libEGL_la_LIBADD += $(WAYLAND_LIBS) --libEGL_la_LIBADD += $(LIBDRM_LIBS) --libEGL_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la -+libEGL_common_la_LIBADD += $(WAYLAND_LIBS) -+libEGL_common_la_LIBADD += $(LIBDRM_LIBS) -+libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la - dri2_backend_FILES += drivers/dri2/platform_wayland.c - endif - - if HAVE_EGL_PLATFORM_DRM - AM_CFLAGS += -DHAVE_DRM_PLATFORM --libEGL_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la -+libEGL_common_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la - dri2_backend_FILES += drivers/dri2/platform_drm.c - endif - -@@ -87,7 +84,7 @@ endif - if HAVE_EGL_PLATFORM_ANDROID - AM_CFLAGS += -DHAVE_ANDROID_PLATFORM - AM_CFLAGS += $(ANDROID_CFLAGS) --libEGL_la_LIBADD += $(ANDROID_LIBS) -+libEGL_common_la_LIBADD += $(ANDROID_LIBS) - dri2_backend_FILES += drivers/dri2/platform_android.c - endif - -@@ -101,13 +98,68 @@ AM_CFLAGS += \ - -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \ - -D_EGL_BUILT_IN_DRIVER_DRI2 - --libEGL_la_SOURCES += \ -+libEGL_common_la_SOURCES += \ - $(dri2_backend_core_FILES) \ - $(dri2_backend_FILES) \ - $(dri3_backend_FILES) - --libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader.la --libEGL_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB) -+libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader.la -+libEGL_common_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB) -+ -+GLVND_GEN_DEPS = generate/gen_egl_dispatch.py \ -+ generate/egl.xml generate/eglFunctionList.py generate/genCommon.py \ -+ generate/egl_other.xml -+ -+PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) -+g_egldispatchstubs.c: $(GLVND_GEN_DEPS) -+ $(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py source \ -+ $(top_srcdir)/src/egl/generate/eglFunctionList.py \ -+ $(top_srcdir)/src/egl/generate/egl.xml \ -+ $(top_srcdir)/src/egl/generate/egl_other.xml > $@ -+ -+g_egldispatchstubs.h: $(GLVND_GEN_DEPS) -+ $(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py header \ -+ $(top_srcdir)/src/egl/generate/eglFunctionList.py \ -+ $(top_srcdir)/src/egl/generate/egl.xml \ -+ $(top_srcdir)/src/egl/generate/egl_other.xml > $@ -+ -+BUILT_SOURCES = g_egldispatchstubs.c g_egldispatchstubs.h -+CLEANFILES = $(BUILT_SOURCES) -+ -+if USE_LIBGLVND_EGL -+AM_CFLAGS += \ -+ $(GLVND_CFLAGS) -+ -+vendorjsondir = @LIBGLVND_DATADIR@/glvnd/egl_vendor.d -+vendorjson_DATA = main/50_mesa.json -+ -+lib_LTLIBRARIES = libEGL_mesa.la -+libEGL_mesa_la_SOURCES = \ -+ main/eglglvnd.c \ -+ main/egldispatchstubs.h \ -+ main/egldispatchstubs.c \ -+ g_egldispatchstubs.c -+libEGL_mesa_la_LIBADD = libEGL_common.la -+libEGL_mesa_la_LDFLAGS = \ -+ -no-undefined \ -+ -version-number 0 \ -+ $(BSYMBOLIC) \ -+ $(GC_SECTIONS) \ -+ $(LD_NO_UNDEFINED) -+ -+else # USE_LIBGLVND_EGL -+ -+lib_LTLIBRARIES = libEGL.la -+libEGL_la_SOURCES = -+libEGL_la_LIBADD = libEGL_common.la -+libEGL_la_LDFLAGS = \ -+ -no-undefined \ -+ -version-number 1:0 \ -+ $(BSYMBOLIC) \ -+ $(GC_SECTIONS) \ -+ $(LD_NO_UNDEFINED) -+ -+endif # USE_LIBGLVND_EGL - - include $(top_srcdir)/install-lib-links.mk - -@@ -133,4 +185,7 @@ EXTRA_DIST = \ - SConscript \ - drivers/haiku \ - main/egl.def \ -- main/README.txt -+ main/README.txt \ -+ $(GLVND_GEN_DEPS) \ -+ main/50_mesa.json -+ -diff --git a/src/egl/generate/egl.xml b/src/egl/generate/egl.xml -new file mode 100755 -index 0000000000..f6dbbc0f26 ---- /dev/null -+++ b/src/egl/generate/egl.xml -@@ -0,0 +1,2412 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ #include <KHR/khrplatform.h> -+ #include <EGL/eglplatform.h> -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ typedef unsigned int EGLBoolean; -+ typedef unsigned int EGLenum; -+ typedef intptr_t EGLAttribKHR; -+ typedef intptr_t EGLAttrib; -+ typedef void *EGLClientBuffer; -+ typedef void *EGLConfig; -+ typedef void *EGLContext; -+ typedef void *EGLDeviceEXT; -+ typedef void *EGLDisplay; -+ typedef void *EGLImage; -+ typedef void *EGLImageKHR; -+ typedef void *EGLLabelKHR; -+ typedef void *EGLObjectKHR; -+ typedef void *EGLOutputLayerEXT; -+ typedef void *EGLOutputPortEXT; -+ typedef void *EGLStreamKHR; -+ typedef void *EGLSurface; -+ typedef void *EGLSync; -+ typedef void *EGLSyncKHR; -+ typedef void *EGLSyncNV; -+ typedef void (*__eglMustCastToProperFunctionPointerType)(void); -+ typedef khronos_utime_nanoseconds_t EGLTimeKHR; -+ typedef khronos_utime_nanoseconds_t EGLTime; -+ typedef khronos_utime_nanoseconds_t EGLTimeNV; -+ typedef khronos_utime_nanoseconds_t EGLuint64NV; -+ typedef khronos_uint64_t EGLuint64KHR; -+ typedef int EGLNativeFileDescriptorKHR; -+ typedef khronos_ssize_t EGLsizeiANDROID; -+ typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); -+ typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); -+ struct EGLClientPixmapHI { -+ void *pData; -+ EGLint iWidth; -+ EGLint iHeight; -+ EGLint iStride; -+}; -+ typedef void ( *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ EGLBoolean eglBindAPI -+ EGLenum api -+ -+ -+ EGLBoolean eglBindTexImage -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint buffer -+ -+ -+ EGLBoolean eglChooseConfig -+ EGLDisplay dpy -+ const EGLint *attrib_list -+ EGLConfig *configs -+ EGLint config_size -+ EGLint *num_config -+ -+ -+ EGLint eglClientWaitSync -+ EGLDisplay dpy -+ EGLSync sync -+ EGLint flags -+ EGLTime timeout -+ -+ -+ EGLint eglClientWaitSyncKHR -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ EGLint flags -+ EGLTimeKHR timeout -+ -+ -+ -+ EGLint eglClientWaitSyncNV -+ EGLSyncNV sync -+ EGLint flags -+ EGLTimeNV timeout -+ -+ -+ EGLBoolean eglCopyBuffers -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLNativePixmapType target -+ -+ -+ EGLContext eglCreateContext -+ EGLDisplay dpy -+ EGLConfig config -+ EGLContext share_context -+ const EGLint *attrib_list -+ -+ -+ EGLImageKHR eglCreateDRMImageMESA -+ EGLDisplay dpy -+ const EGLint *attrib_list -+ -+ -+ EGLSyncNV eglCreateFenceSyncNV -+ EGLDisplay dpy -+ EGLenum condition -+ const EGLint *attrib_list -+ -+ -+ EGLImage eglCreateImage -+ EGLDisplay dpy -+ EGLContext ctx -+ EGLenum target -+ EGLClientBuffer buffer -+ const EGLAttrib *attrib_list -+ -+ -+ EGLImageKHR eglCreateImageKHR -+ EGLDisplay dpy -+ EGLContext ctx -+ EGLenum target -+ EGLClientBuffer buffer -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreatePbufferFromClientBuffer -+ EGLDisplay dpy -+ EGLenum buftype -+ EGLClientBuffer buffer -+ EGLConfig config -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreatePbufferSurface -+ EGLDisplay dpy -+ EGLConfig config -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreatePixmapSurface -+ EGLDisplay dpy -+ EGLConfig config -+ EGLNativePixmapType pixmap -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreatePixmapSurfaceHI -+ EGLDisplay dpy -+ EGLConfig config -+ struct EGLClientPixmapHI *pixmap -+ -+ -+ EGLSurface eglCreatePlatformPixmapSurface -+ EGLDisplay dpy -+ EGLConfig config -+ void *native_pixmap -+ const EGLAttrib *attrib_list -+ -+ -+ EGLSurface eglCreatePlatformPixmapSurfaceEXT -+ EGLDisplay dpy -+ EGLConfig config -+ void *native_pixmap -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreatePlatformWindowSurface -+ EGLDisplay dpy -+ EGLConfig config -+ void *native_window -+ const EGLAttrib *attrib_list -+ -+ -+ EGLSurface eglCreatePlatformWindowSurfaceEXT -+ EGLDisplay dpy -+ EGLConfig config -+ void *native_window -+ const EGLint *attrib_list -+ -+ -+ EGLStreamKHR eglCreateStreamFromFileDescriptorKHR -+ EGLDisplay dpy -+ EGLNativeFileDescriptorKHR file_descriptor -+ -+ -+ EGLStreamKHR eglCreateStreamKHR -+ EGLDisplay dpy -+ const EGLint *attrib_list -+ -+ -+ EGLSurface eglCreateStreamProducerSurfaceKHR -+ EGLDisplay dpy -+ EGLConfig config -+ EGLStreamKHR stream -+ const EGLint *attrib_list -+ -+ -+ EGLSyncKHR eglCreateStreamSyncNV -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLenum type -+ const EGLint *attrib_list -+ -+ -+ EGLSync eglCreateSync -+ EGLDisplay dpy -+ EGLenum type -+ const EGLAttrib *attrib_list -+ -+ -+ EGLSyncKHR eglCreateSyncKHR -+ EGLDisplay dpy -+ EGLenum type -+ const EGLint *attrib_list -+ -+ -+ EGLSyncKHR eglCreateSync64KHR -+ EGLDisplay dpy -+ EGLenum type -+ const EGLAttribKHR *attrib_list -+ -+ -+ -+ EGLSurface eglCreateWindowSurface -+ EGLDisplay dpy -+ EGLConfig config -+ EGLNativeWindowType win -+ const EGLint *attrib_list -+ -+ -+ EGLint eglDebugMessageControlKHR -+ EGLDEBUGPROCKHR callback -+ const EGLAttrib *attrib_list -+ -+ -+ EGLBoolean eglDestroyContext -+ EGLDisplay dpy -+ EGLContext ctx -+ -+ -+ EGLBoolean eglDestroyImage -+ EGLDisplay dpy -+ EGLImage image -+ -+ -+ EGLBoolean eglDestroyImageKHR -+ EGLDisplay dpy -+ EGLImageKHR image -+ -+ -+ -+ EGLBoolean eglDestroyStreamKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ -+ -+ EGLBoolean eglDestroySurface -+ EGLDisplay dpy -+ EGLSurface surface -+ -+ -+ EGLBoolean eglDestroySync -+ EGLDisplay dpy -+ EGLSync sync -+ -+ -+ EGLBoolean eglDestroySyncKHR -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ -+ -+ -+ EGLBoolean eglDestroySyncNV -+ EGLSyncNV sync -+ -+ -+ EGLint eglDupNativeFenceFDANDROID -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ -+ -+ EGLBoolean eglExportDMABUFImageMESA -+ EGLDisplay dpy -+ EGLImageKHR image -+ int *fds -+ EGLint *strides -+ EGLint *offsets -+ -+ -+ EGLBoolean eglExportDMABUFImageQueryMESA -+ EGLDisplay dpy -+ EGLImageKHR image -+ int *fourcc -+ int *num_planes -+ EGLuint64KHR *modifiers -+ -+ -+ EGLBoolean eglExportDRMImageMESA -+ EGLDisplay dpy -+ EGLImageKHR image -+ EGLint *name -+ EGLint *handle -+ EGLint *stride -+ -+ -+ EGLBoolean eglFenceNV -+ EGLSyncNV sync -+ -+ -+ EGLBoolean eglGetConfigAttrib -+ EGLDisplay dpy -+ EGLConfig config -+ EGLint attribute -+ EGLint *value -+ -+ -+ EGLBoolean eglGetConfigs -+ EGLDisplay dpy -+ EGLConfig *configs -+ EGLint config_size -+ EGLint *num_config -+ -+ -+ EGLContext eglGetCurrentContext -+ -+ -+ EGLDisplay eglGetCurrentDisplay -+ -+ -+ EGLSurface eglGetCurrentSurface -+ EGLint readdraw -+ -+ -+ EGLDisplay eglGetDisplay -+ EGLNativeDisplayType display_id -+ -+ -+ EGLint eglGetError -+ -+ -+ EGLBoolean eglGetOutputLayersEXT -+ EGLDisplay dpy -+ const EGLAttrib *attrib_list -+ EGLOutputLayerEXT *layers -+ EGLint max_layers -+ EGLint *num_layers -+ -+ -+ EGLBoolean eglGetOutputPortsEXT -+ EGLDisplay dpy -+ const EGLAttrib *attrib_list -+ EGLOutputPortEXT *ports -+ EGLint max_ports -+ EGLint *num_ports -+ -+ -+ EGLDisplay eglGetPlatformDisplay -+ EGLenum platform -+ void *native_display -+ const EGLAttrib *attrib_list -+ -+ -+ EGLDisplay eglGetPlatformDisplayEXT -+ EGLenum platform -+ void *native_display -+ const EGLint *attrib_list -+ -+ -+ __eglMustCastToProperFunctionPointerType eglGetProcAddress -+ const char *procname -+ -+ -+ EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ -+ -+ EGLBoolean eglGetSyncAttrib -+ EGLDisplay dpy -+ EGLSync sync -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ EGLBoolean eglGetSyncAttribKHR -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ EGLint attribute -+ EGLint *value -+ -+ -+ EGLBoolean eglGetSyncAttribNV -+ EGLSyncNV sync -+ EGLint attribute -+ EGLint *value -+ -+ -+ EGLuint64NV eglGetSystemTimeFrequencyNV -+ -+ -+ EGLuint64NV eglGetSystemTimeNV -+ -+ -+ EGLBoolean eglInitialize -+ EGLDisplay dpy -+ EGLint *major -+ EGLint *minor -+ -+ -+ EGLint eglLabelObjectKHR -+ EGLDisplay display -+ EGLenum objectType -+ EGLObjectKHR object -+ EGLLabelKHR label -+ -+ -+ EGLBoolean eglLockSurfaceKHR -+ EGLDisplay dpy -+ EGLSurface surface -+ const EGLint *attrib_list -+ -+ -+ EGLBoolean eglMakeCurrent -+ EGLDisplay dpy -+ EGLSurface draw -+ EGLSurface read -+ EGLContext ctx -+ -+ -+ EGLBoolean eglOutputLayerAttribEXT -+ EGLDisplay dpy -+ EGLOutputLayerEXT layer -+ EGLint attribute -+ EGLAttrib value -+ -+ -+ EGLBoolean eglOutputPortAttribEXT -+ EGLDisplay dpy -+ EGLOutputPortEXT port -+ EGLint attribute -+ EGLAttrib value -+ -+ -+ EGLBoolean eglPostSubBufferNV -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint x -+ EGLint y -+ EGLint width -+ EGLint height -+ -+ -+ EGLenum eglQueryAPI -+ -+ -+ EGLBoolean eglQueryContext -+ EGLDisplay dpy -+ EGLContext ctx -+ EGLint attribute -+ EGLint *value -+ -+ -+ EGLBoolean eglQueryDebugKHR -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ EGLBoolean eglQueryDeviceAttribEXT -+ EGLDeviceEXT device -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ const char *eglQueryDeviceStringEXT -+ EGLDeviceEXT device -+ EGLint name -+ -+ -+ EGLBoolean eglQueryDevicesEXT -+ EGLint max_devices -+ EGLDeviceEXT *devices -+ EGLint *num_devices -+ -+ -+ EGLBoolean eglQueryDisplayAttribEXT -+ EGLDisplay dpy -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ EGLBoolean eglQueryNativeDisplayNV -+ EGLDisplay dpy -+ EGLNativeDisplayType *display_id -+ -+ -+ EGLBoolean eglQueryNativePixmapNV -+ EGLDisplay dpy -+ EGLSurface surf -+ EGLNativePixmapType *pixmap -+ -+ -+ EGLBoolean eglQueryNativeWindowNV -+ EGLDisplay dpy -+ EGLSurface surf -+ EGLNativeWindowType *window -+ -+ -+ EGLBoolean eglQueryOutputLayerAttribEXT -+ EGLDisplay dpy -+ EGLOutputLayerEXT layer -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ const char *eglQueryOutputLayerStringEXT -+ EGLDisplay dpy -+ EGLOutputLayerEXT layer -+ EGLint name -+ -+ -+ EGLBoolean eglQueryOutputPortAttribEXT -+ EGLDisplay dpy -+ EGLOutputPortEXT port -+ EGLint attribute -+ EGLAttrib *value -+ -+ -+ const char *eglQueryOutputPortStringEXT -+ EGLDisplay dpy -+ EGLOutputPortEXT port -+ EGLint name -+ -+ -+ EGLBoolean eglQueryStreamKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLenum attribute -+ EGLint *value -+ -+ -+ EGLBoolean eglQueryStreamTimeKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLenum attribute -+ EGLTimeKHR *value -+ -+ -+ EGLBoolean eglQueryStreamu64KHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLenum attribute -+ EGLuint64KHR *value -+ -+ -+ const char *eglQueryString -+ EGLDisplay dpy -+ EGLint name -+ -+ -+ EGLBoolean eglQuerySurface -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint attribute -+ EGLint *value -+ -+ -+ EGLBoolean eglQuerySurface64KHR -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint attribute -+ EGLAttribKHR *value -+ -+ -+ EGLBoolean eglQuerySurfacePointerANGLE -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint attribute -+ void **value -+ -+ -+ EGLBoolean eglReleaseTexImage -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint buffer -+ -+ -+ EGLBoolean eglReleaseThread -+ -+ -+ void eglSetBlobCacheFuncsANDROID -+ EGLDisplay dpy -+ EGLSetBlobFuncANDROID set -+ EGLGetBlobFuncANDROID get -+ -+ -+ EGLBoolean eglSetDamageRegionKHR -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint *rects -+ EGLint n_rects -+ -+ -+ EGLBoolean eglSignalSyncKHR -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ EGLenum mode -+ -+ -+ EGLBoolean eglSignalSyncNV -+ EGLSyncNV sync -+ EGLenum mode -+ -+ -+ EGLBoolean eglStreamAttribKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLenum attribute -+ EGLint value -+ -+ -+ EGLBoolean eglStreamConsumerAcquireKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ -+ -+ EGLBoolean eglStreamConsumerGLTextureExternalKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ -+ -+ EGLBoolean eglStreamConsumerOutputEXT -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ EGLOutputLayerEXT layer -+ -+ -+ EGLBoolean eglStreamConsumerReleaseKHR -+ EGLDisplay dpy -+ EGLStreamKHR stream -+ -+ -+ EGLBoolean eglSurfaceAttrib -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint attribute -+ EGLint value -+ -+ -+ EGLBoolean eglSwapBuffers -+ EGLDisplay dpy -+ EGLSurface surface -+ -+ -+ EGLBoolean eglSwapBuffersWithDamageEXT -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint *rects -+ EGLint n_rects -+ -+ -+ EGLBoolean eglSwapBuffersWithDamageKHR -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint *rects -+ EGLint n_rects -+ -+ -+ EGLBoolean eglSwapBuffersRegionNOK -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint numRects -+ const EGLint *rects -+ -+ -+ EGLBoolean eglSwapBuffersRegion2NOK -+ EGLDisplay dpy -+ EGLSurface surface -+ EGLint numRects -+ const EGLint *rects -+ -+ -+ EGLBoolean eglSwapInterval -+ EGLDisplay dpy -+ EGLint interval -+ -+ -+ EGLBoolean eglTerminate -+ EGLDisplay dpy -+ -+ -+ EGLBoolean eglUnlockSurfaceKHR -+ EGLDisplay dpy -+ EGLSurface surface -+ -+ -+ EGLBoolean eglWaitClient -+ -+ -+ EGLBoolean eglWaitGL -+ -+ -+ EGLBoolean eglWaitNative -+ EGLint engine -+ -+ -+ EGLBoolean eglWaitSync -+ EGLDisplay dpy -+ EGLSync sync -+ EGLint flags -+ -+ -+ EGLint eglWaitSyncKHR -+ EGLDisplay dpy -+ EGLSyncKHR sync -+ EGLint flags -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py -new file mode 100644 -index 0000000000..b19b5f7193 ---- /dev/null -+++ b/src/egl/generate/eglFunctionList.py -@@ -0,0 +1,197 @@ -+#!/usr/bin/env python -+ -+""" -+Contains a list of EGL functions to generate dispatch functions for. -+ -+This is used from gen_egl_dispatch.py. -+ -+EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name -+of the function, and eglData is a dictionary containing data about that -+function. -+ -+The values in the eglData dictionary are: -+- method (string): -+ How to select a vendor library. See "Method values" below. -+ -+- prefix (string): -+ This string is prepended to the name of the dispatch function. If -+ unspecified, the default is "" (an empty string). -+ -+- static (boolean) -+ If True, this function should be declared static. -+ -+- "public" (boolean) -+ If True, the function should be exported from the library. Vendor libraries -+ generally should not use this. -+ -+- extension (string): -+ If specified, this is the name of a macro to check for before defining a -+ function. Used for checking for extension macros and such. -+ -+- retval (string): -+ If specified, this is a C expression with the default value to return if we -+ can't find a function to call. By default, it will try to guess from the -+ return type: EGL_NO_whatever for the various handle types, NULL for -+ pointers, and zero for everything else. -+ -+method values: -+- "custom" -+ The dispatch stub will be hand-written instead of generated. -+ -+- "none" -+ No dispatch function exists at all, but the function should still have an -+ entry in the index array. This is for other functions that a stub may need -+ to call that are implemented in libEGL itself. -+ -+- "display" -+ Select a vendor from an EGLDisplay argument. -+ -+- "device" -+ Select a vendor from an EGLDeviceEXT argument. -+ -+- "current" -+ Select the vendor that owns the current context. -+""" -+ -+def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None): -+ """ -+ A convenience function to define an entry in the EGL function list. -+ """ -+ if inheader is None: -+ inheader = (not public) -+ values = { -+ "method" : method, -+ "prefix" : prefix, -+ "extension" : extension, -+ "retval" : retval, -+ "static" : static, -+ "public" : public, -+ "inheader" : inheader, -+ } -+ return (name, values) -+ -+EGL_FUNCTIONS = ( -+ # EGL_VERSION_1_0 -+ _eglFunc("eglChooseConfig", "none"), -+ _eglFunc("eglCopyBuffers", "none"), -+ _eglFunc("eglCreateContext", "none"), -+ _eglFunc("eglCreatePbufferSurface", "none"), -+ _eglFunc("eglCreatePixmapSurface", "none"), -+ _eglFunc("eglCreateWindowSurface", "none"), -+ _eglFunc("eglDestroyContext", "none"), -+ _eglFunc("eglDestroySurface", "none"), -+ _eglFunc("eglGetConfigAttrib", "none"), -+ _eglFunc("eglGetConfigs", "none"), -+ _eglFunc("eglQueryContext", "none"), -+ _eglFunc("eglQuerySurface", "none"), -+ _eglFunc("eglSwapBuffers", "none"), -+ _eglFunc("eglWaitGL", "none"), -+ _eglFunc("eglWaitNative", "none"), -+ _eglFunc("eglTerminate", "none"), -+ _eglFunc("eglInitialize", "none"), -+ -+ _eglFunc("eglGetCurrentDisplay", "none"), -+ _eglFunc("eglGetCurrentSurface", "none"), -+ _eglFunc("eglGetDisplay", "none"), -+ _eglFunc("eglGetError", "none"), -+ _eglFunc("eglGetProcAddress", "none"), -+ _eglFunc("eglMakeCurrent", "none"), -+ _eglFunc("eglQueryString", "none"), -+ -+ # EGL_VERSION_1_1 -+ _eglFunc("eglBindTexImage", "none"), -+ _eglFunc("eglReleaseTexImage", "none"), -+ _eglFunc("eglSurfaceAttrib", "none"), -+ _eglFunc("eglSwapInterval", "none"), -+ -+ # EGL_VERSION_1_2 -+ _eglFunc("eglCreatePbufferFromClientBuffer", "none"), -+ _eglFunc("eglWaitClient", "none"), -+ _eglFunc("eglBindAPI", "none"), -+ _eglFunc("eglQueryAPI", "none"), -+ _eglFunc("eglReleaseThread", "none"), -+ -+ # EGL_VERSION_1_4 -+ _eglFunc("eglGetCurrentContext", "none"), -+ -+ # EGL_VERSION_1_5 -+ _eglFunc("eglCreateSync", "none"), -+ _eglFunc("eglDestroySync", "none"), -+ _eglFunc("eglClientWaitSync", "none"), -+ _eglFunc("eglGetSyncAttrib", "none"), -+ _eglFunc("eglCreateImage", "none"), -+ _eglFunc("eglDestroyImage", "none"), -+ _eglFunc("eglCreatePlatformWindowSurface", "none"), -+ _eglFunc("eglCreatePlatformPixmapSurface", "none"), -+ _eglFunc("eglWaitSync", "none"), -+ _eglFunc("eglGetPlatformDisplay", "none"), -+ -+ # EGL_EXT_platform_base -+ _eglFunc("eglCreatePlatformWindowSurfaceEXT", "display"), -+ _eglFunc("eglCreatePlatformPixmapSurfaceEXT", "display"), -+ _eglFunc("eglGetPlatformDisplayEXT", "none"), -+ -+ # TODO: Most of these extensions should be provided by the vendor -+ # libraries, not by libEGL. They're here now to make testing everything -+ # else easier. -+ -+ # EGL_EXT_swap_buffers_with_damage -+ _eglFunc("eglSwapBuffersWithDamageEXT", "display"), -+ -+ # KHR_EXT_swap_buffers_with_damage -+ _eglFunc("eglSwapBuffersWithDamageKHR", "display"), -+ -+ # EGL_KHR_cl_event2 -+ _eglFunc("eglCreateSync64KHR", "display"), -+ -+ # EGL_KHR_fence_sync -+ _eglFunc("eglCreateSyncKHR", "display"), -+ _eglFunc("eglDestroySyncKHR", "display"), -+ _eglFunc("eglClientWaitSyncKHR", "display"), -+ _eglFunc("eglGetSyncAttribKHR", "display"), -+ -+ # EGL_KHR_image -+ _eglFunc("eglCreateImageKHR", "display"), -+ _eglFunc("eglDestroyImageKHR", "display"), -+ -+ # EGL_KHR_image_base -+ # eglCreateImageKHR already defined in EGL_KHR_image -+ # eglDestroyImageKHR already defined in EGL_KHR_image -+ -+ # EGL_KHR_reusable_sync -+ _eglFunc("eglSignalSyncKHR", "display"), -+ # eglCreateSyncKHR already defined in EGL_KHR_fence_sync -+ # eglDestroySyncKHR already defined in EGL_KHR_fence_sync -+ # eglClientWaitSyncKHR already defined in EGL_KHR_fence_sync -+ # eglGetSyncAttribKHR already defined in EGL_KHR_fence_sync -+ -+ # EGL_KHR_wait_sync -+ _eglFunc("eglWaitSyncKHR", "display"), -+ -+ # EGL_MESA_drm_image -+ _eglFunc("eglCreateDRMImageMESA", "display"), -+ _eglFunc("eglExportDRMImageMESA", "display"), -+ -+ # EGL_MESA_image_dma_buf_export -+ _eglFunc("eglExportDMABUFImageQueryMESA", "display"), -+ _eglFunc("eglExportDMABUFImageMESA", "display"), -+ -+ # EGL_NOK_swap_region -+ _eglFunc("eglSwapBuffersRegionNOK", "display"), -+ -+ # EGL_NV_post_sub_buffer -+ _eglFunc("eglPostSubBufferNV", "display"), -+ -+ # EGL_WL_bind_wayland_display -+ _eglFunc("eglCreateWaylandBufferFromImageWL", "display"), -+ _eglFunc("eglUnbindWaylandDisplayWL", "display"), -+ _eglFunc("eglQueryWaylandBufferWL", "display"), -+ _eglFunc("eglBindWaylandDisplayWL", "display"), -+ -+ # EGL_CHROMIUM_get_sync_values -+ _eglFunc("eglGetSyncValuesCHROMIUM", "display"), -+ -+ # EGL_ANDROID_native_fence_sync -+ _eglFunc("eglDupNativeFenceFDANDROID", "display"), -+) -+ -diff --git a/src/egl/generate/egl_other.xml b/src/egl/generate/egl_other.xml -new file mode 100644 -index 0000000000..7fe3a9e272 ---- /dev/null -+++ b/src/egl/generate/egl_other.xml -@@ -0,0 +1,47 @@ -+ -+ -+ -+ This file contains any EGL extension functions that are missing from -+ the normal egl.xml list. -+ -+ -+ -+ -+ struct wl_buffer * eglCreateWaylandBufferFromImageWL -+ EGLDisplay dpy -+ EGLImage image -+ -+ -+ -+ EGLBoolean eglUnbindWaylandDisplayWL -+ EGLDisplay dpy -+ struct wl_display * display -+ -+ -+ -+ EGLBoolean eglQueryWaylandBufferWL -+ EGLDisplay dpy -+ struct wl_resource * buffer -+ EGLint attribute -+ EGLint * value -+ -+ -+ -+ EGLBoolean eglBindWaylandDisplayWL -+ EGLDisplay dpy -+ struct wl_display * display -+ -+ -+ -+ -+ EGLBoolean eglGetSyncValuesCHROMIUM -+ EGLDisplay display -+ EGLSurface surface -+ EGLuint64KHR * ust -+ EGLuint64KHR * msc -+ EGLuint64KHR * sbc -+ -+ -+ -+ -+ -diff --git a/src/egl/generate/genCommon.py b/src/egl/generate/genCommon.py -new file mode 100644 -index 0000000000..d493d7bf29 ---- /dev/null -+++ b/src/egl/generate/genCommon.py -@@ -0,0 +1,223 @@ -+#!/usr/bin/env python -+ -+# (C) Copyright 2015, NVIDIA CORPORATION. -+# All Rights Reserved. -+# -+# Permission is hereby granted, free of charge, to any person obtaining a -+# copy of this software and associated documentation files (the "Software"), -+# to deal in the Software without restriction, including without limitation -+# on the rights to use, copy, modify, merge, publish, distribute, sub -+# license, and/or sell copies of the Software, and to permit persons to whom -+# the Software is furnished to do so, subject to the following conditions: -+# -+# The above copyright notice and this permission notice (including the next -+# paragraph) shall be included in all copies or substantial portions of the -+# Software. -+# -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -+# IN THE SOFTWARE. -+# -+# Authors: -+# Kyle Brenneman -+ -+import collections -+import re -+import sys -+import xml.etree.cElementTree as etree -+ -+MAPI_TABLE_NUM_DYNAMIC = 4096 -+ -+_LIBRARY_FEATURE_NAMES = { -+ # libGL and libGLdiapatch both include every function. -+ "gl" : None, -+ "gldispatch" : None, -+ "opengl" : frozenset(( "GL_VERSION_1_0", "GL_VERSION_1_1", -+ "GL_VERSION_1_2", "GL_VERSION_1_3", "GL_VERSION_1_4", "GL_VERSION_1_5", -+ "GL_VERSION_2_0", "GL_VERSION_2_1", "GL_VERSION_3_0", "GL_VERSION_3_1", -+ "GL_VERSION_3_2", "GL_VERSION_3_3", "GL_VERSION_4_0", "GL_VERSION_4_1", -+ "GL_VERSION_4_2", "GL_VERSION_4_3", "GL_VERSION_4_4", "GL_VERSION_4_5", -+ )), -+ "glesv1" : frozenset(("GL_VERSION_ES_CM_1_0", "GL_OES_point_size_array")), -+ "glesv2" : frozenset(("GL_ES_VERSION_2_0", "GL_ES_VERSION_3_0", -+ "GL_ES_VERSION_3_1" "GL_ES_VERSION_3_2", -+ )), -+} -+ -+def getFunctions(xmlFiles): -+ """ -+ Reads an XML file and returns all of the functions defined in it. -+ -+ xmlFile should be the path to Khronos's gl.xml file. The return value is a -+ sequence of FunctionDesc objects, ordered by slot number. -+ """ -+ roots = [ etree.parse(xmlFile).getroot() for xmlFile in xmlFiles ] -+ return getFunctionsFromRoots(roots) -+ -+def getFunctionsFromRoots(roots): -+ functions = {} -+ for root in roots: -+ for func in _getFunctionList(root): -+ functions[func.name] = func -+ functions = functions.values() -+ -+ # Sort the function list by name. -+ functions = sorted(functions, key=lambda f: f.name) -+ -+ # Assign a slot number to each function. This isn't strictly necessary, -+ # since you can just look at the index in the list, but it makes it easier -+ # to include the slot when formatting output. -+ for i in range(len(functions)): -+ functions[i] = functions[i]._replace(slot=i) -+ -+ return functions -+ -+def getExportNamesFromRoots(target, roots): -+ """ -+ Goes through the tags from gl.xml and returns a set of OpenGL -+ functions that a library should export. -+ -+ target should be one of "gl", "gldispatch", "opengl", "glesv1", or -+ "glesv2". -+ """ -+ featureNames = _LIBRARY_FEATURE_NAMES[target] -+ if featureNames is None: -+ return set(func.name for func in getFunctionsFromRoots(roots)) -+ -+ names = set() -+ for root in roots: -+ features = [] -+ for featElem in root.findall("feature"): -+ if featElem.get("name") in featureNames: -+ features.append(featElem) -+ for featElem in root.findall("extensions/extension"): -+ if featElem.get("name") in featureNames: -+ features.append(featElem) -+ for featElem in features: -+ for commandElem in featElem.findall("require/command"): -+ names.add(commandElem.get("name")) -+ return names -+ -+class FunctionArg(collections.namedtuple("FunctionArg", "type name")): -+ @property -+ def dec(self): -+ """ -+ Returns a "TYPE NAME" string, suitable for a function prototype. -+ """ -+ rv = str(self.type) -+ if not rv.endswith("*"): -+ rv += " " -+ rv += self.name -+ return rv -+ -+class FunctionDesc(collections.namedtuple("FunctionDesc", "name rt args slot")): -+ def hasReturn(self): -+ """ -+ Returns true if the function returns a value. -+ """ -+ return (self.rt != "void") -+ -+ @property -+ def decArgs(self): -+ """ -+ Returns a string with the types and names of the arguments, as you -+ would use in a function declaration. -+ """ -+ if not self.args: -+ return "void" -+ else: -+ return ", ".join(arg.dec for arg in self.args) -+ -+ @property -+ def callArgs(self): -+ """ -+ Returns a string with the names of the arguments, as you would use in a -+ function call. -+ """ -+ return ", ".join(arg.name for arg in self.args) -+ -+ @property -+ def basename(self): -+ assert self.name.startswith("gl") -+ return self.name[2:] -+ -+def _getFunctionList(root): -+ for elem in root.findall("commands/command"): -+ yield _parseCommandElem(elem) -+ -+def _parseCommandElem(elem): -+ protoElem = elem.find("proto") -+ (rt, name) = _parseProtoElem(protoElem) -+ -+ args = [] -+ for ch in elem.findall("param"): -+ # tags have the same format as a tag. -+ args.append(FunctionArg(*_parseProtoElem(ch))) -+ func = FunctionDesc(name, rt, tuple(args), slot=None) -+ -+ return func -+ -+def _parseProtoElem(elem): -+ # If I just remove the tags and string the text together, I'll get valid C code. -+ text = _flattenText(elem) -+ text = text.strip() -+ m = re.match(r"^(.+)\b(\w+)(?:\s*\[\s*(\d*)\s*\])?$", text, re.S) -+ if m: -+ typename = _fixupTypeName(m.group(1)) -+ name = m.group(2) -+ if m.group(3): -+ # HACK: glPathGlyphIndexRangeNV defines an argument like this: -+ # GLuint baseAndCount[2] -+ # Convert it to a pointer and hope for the best. -+ typename += "*" -+ return (typename, name) -+ else: -+ raise ValueError("Can't parse element %r -> %r" % (elem, text)) -+ -+def _flattenText(elem): -+ """ -+ Returns the text in an element and all child elements, with the tags -+ removed. -+ """ -+ text = "" -+ if elem.text is not None: -+ text = elem.text -+ for ch in elem: -+ text += _flattenText(ch) -+ if ch.tail is not None: -+ text += ch.tail -+ return text -+ -+def _fixupTypeName(typeName): -+ """ -+ Converts a typename into a more consistent format. -+ """ -+ -+ rv = typeName.strip() -+ -+ # Replace "GLvoid" with just plain "void". -+ rv = re.sub(r"\bGLvoid\b", "void", rv) -+ -+ # Remove the vendor suffixes from types that have a suffix-less version. -+ rv = re.sub(r"\b(GLhalf|GLintptr|GLsizeiptr|GLint64|GLuint64)(?:ARB|EXT|NV|ATI)\b", r"\1", rv) -+ -+ rv = re.sub(r"\bGLvoid\b", "void", rv) -+ -+ # Clear out any leading and trailing whitespace. -+ rv = rv.strip() -+ -+ # Remove any whitespace before a '*' -+ rv = re.sub(r"\s+\*", r"*", rv) -+ -+ # Change "foo*" to "foo *" -+ rv = re.sub(r"([^\*])\*", r"\1 *", rv) -+ -+ # Condense all whitespace into a single space. -+ rv = re.sub(r"\s+", " ", rv) -+ -+ return rv -+ -diff --git a/src/egl/generate/gen_egl_dispatch.py b/src/egl/generate/gen_egl_dispatch.py -new file mode 100755 -index 0000000000..eeb3f3f9a5 ---- /dev/null -+++ b/src/egl/generate/gen_egl_dispatch.py -@@ -0,0 +1,250 @@ -+#!/usr/bin/env python -+ -+# (C) Copyright 2016, NVIDIA CORPORATION. -+# All Rights Reserved. -+# -+# Permission is hereby granted, free of charge, to any person obtaining a -+# copy of this software and associated documentation files (the "Software"), -+# to deal in the Software without restriction, including without limitation -+# on the rights to use, copy, modify, merge, publish, distribute, sub -+# license, and/or sell copies of the Software, and to permit persons to whom -+# the Software is furnished to do so, subject to the following conditions: -+# -+# The above copyright notice and this permission notice (including the next -+# paragraph) shall be included in all copies or substantial portions of the -+# Software. -+# -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -+# IN THE SOFTWARE. -+# -+# Authors: -+# Kyle Brenneman -+ -+""" -+Generates dispatch functions for EGL. -+ -+The list of functions and arguments is read from the Khronos's XML files, with -+additional information defined in the module eglFunctionList. -+""" -+ -+import argparse -+import collections -+import imp -+import sys -+import textwrap -+ -+import genCommon -+ -+def main(): -+ parser = argparse.ArgumentParser() -+ parser.add_argument("target", choices=("header", "source"), -+ help="Whether to build the source or header file.") -+ parser.add_argument("func_list_file", help="The function list .py file.") -+ parser.add_argument("xml_files", nargs="+", help="The XML files with the EGL function lists.") -+ -+ args = parser.parse_args() -+ -+ # The function list is a Python module, but it's specified on the command -+ # line. -+ eglFunctionList = imp.load_source("eglFunctionList", args.func_list_file) -+ -+ xmlFunctions = genCommon.getFunctions(args.xml_files) -+ xmlByName = dict((f.name, f) for f in xmlFunctions) -+ functions = [] -+ for (name, eglFunc) in eglFunctionList.EGL_FUNCTIONS: -+ func = xmlByName[name] -+ eglFunc = fixupEglFunc(func, eglFunc) -+ functions.append((func, eglFunc)) -+ -+ # Sort the function list by name. -+ functions = sorted(functions, key=lambda f: f[0].name) -+ -+ if args.target == "header": -+ text = generateHeader(functions) -+ elif args.target == "source": -+ text = generateSource(functions) -+ sys.stdout.write(text) -+ -+def fixupEglFunc(func, eglFunc): -+ result = dict(eglFunc) -+ if result.get("prefix") is None: -+ result["prefix"] = "" -+ -+ if result.get("extension") is not None: -+ text = "defined(" + result["extension"] + ")" -+ result["extension"] = text -+ -+ if result["method"] in ("none", "custom"): -+ return result -+ -+ if result["method"] not in ("display", "device", "current"): -+ raise ValueError("Invalid dispatch method %r for function %r" % (result["method"], func.name)) -+ -+ if func.hasReturn(): -+ if result.get("retval") is None: -+ result["retval"] = getDefaultReturnValue(func.rt) -+ -+ return result -+ -+def generateHeader(functions): -+ text = textwrap.dedent(r""" -+ #ifndef G_EGLDISPATCH_STUBS_H -+ #define G_EGLDISPATCH_STUBS_H -+ -+ #ifdef __cplusplus -+ extern "C" { -+ #endif -+ -+ #include -+ #include -+ #include "glvnd/libeglabi.h" -+ -+ """.lstrip("\n")) -+ -+ text += "enum {\n" -+ for (func, eglFunc) in functions: -+ text += generateGuardBegin(func, eglFunc) -+ text += " __EGL_DISPATCH_" + func.name + ",\n" -+ text += generateGuardEnd(func, eglFunc) -+ text += " __EGL_DISPATCH_COUNT\n" -+ text += "};\n" -+ -+ for (func, eglFunc) in functions: -+ if eglFunc["inheader"]: -+ text += generateGuardBegin(func, eglFunc) -+ text += "{f.rt} EGLAPIENTRY {ex[prefix]}{f.name}({f.decArgs});\n".format(f=func, ex=eglFunc) -+ text += generateGuardEnd(func, eglFunc) -+ -+ text += textwrap.dedent(r""" -+ #ifdef __cplusplus -+ } -+ #endif -+ #endif // G_EGLDISPATCH_STUBS_H -+ """) -+ return text -+ -+def generateSource(functions): -+ # First, sort the function list by name. -+ text = "" -+ text += '#include "egldispatchstubs.h"\n' -+ text += '#include "g_egldispatchstubs.h"\n' -+ text += "\n" -+ -+ for (func, eglFunc) in functions: -+ if eglFunc["method"] not in ("custom", "none"): -+ text += generateGuardBegin(func, eglFunc) -+ text += generateDispatchFunc(func, eglFunc) -+ text += generateGuardEnd(func, eglFunc) -+ -+ text += "\n" -+ text += "const char * const __EGL_DISPATCH_FUNC_NAMES[__EGL_DISPATCH_COUNT + 1] = {\n" -+ for (func, eglFunc) in functions: -+ text += generateGuardBegin(func, eglFunc) -+ text += ' "' + func.name + '",\n' -+ text += generateGuardEnd(func, eglFunc) -+ text += " NULL\n" -+ text += "};\n" -+ -+ text += "const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[__EGL_DISPATCH_COUNT + 1] = {\n" -+ for (func, eglFunc) in functions: -+ text += generateGuardBegin(func, eglFunc) -+ if eglFunc["method"] != "none": -+ text += " (__eglMustCastToProperFunctionPointerType) " + eglFunc.get("prefix", "") + func.name + ",\n" -+ else: -+ text += " NULL, // " + func.name + "\n" -+ text += generateGuardEnd(func, eglFunc) -+ text += " NULL\n" -+ text += "};\n" -+ -+ return text -+ -+def generateGuardBegin(func, eglFunc): -+ ext = eglFunc.get("extension") -+ if ext is not None: -+ return "#if " + ext + "\n" -+ else: -+ return "" -+ -+def generateGuardEnd(func, eglFunc): -+ if eglFunc.get("extension") is not None: -+ return "#endif\n" -+ else: -+ return "" -+ -+def generateDispatchFunc(func, eglFunc): -+ text = "" -+ -+ if eglFunc.get("static"): -+ text += "static " -+ elif eglFunc.get("public"): -+ text += "PUBLIC " -+ text += textwrap.dedent( -+ r""" -+ {f.rt} EGLAPIENTRY {ef[prefix]}{f.name}({f.decArgs}) -+ {{ -+ typedef {f.rt} EGLAPIENTRY (* _pfn_{f.name})({f.decArgs}); -+ """).lstrip("\n").format(f=func, ef=eglFunc) -+ -+ if func.hasReturn(): -+ text += " {f.rt} _ret = {ef[retval]};\n".format(f=func, ef=eglFunc) -+ -+ text += " _pfn_{f.name} _ptr_{f.name} = (_pfn_{f.name}) ".format(f=func) -+ if eglFunc["method"] == "current": -+ text += "__eglDispatchFetchByCurrent(__EGL_DISPATCH_{f.name});\n".format(f=func) -+ -+ elif eglFunc["method"] in ("display", "device"): -+ if eglFunc["method"] == "display": -+ lookupFunc = "__eglDispatchFetchByDisplay" -+ lookupType = "EGLDisplay" -+ else: -+ assert eglFunc["method"] == "device" -+ lookupFunc = "__eglDispatchFetchByDevice" -+ lookupType = "EGLDeviceEXT" -+ -+ lookupArg = None -+ for arg in func.args: -+ if arg.type == lookupType: -+ lookupArg = arg.name -+ break -+ if lookupArg is None: -+ raise ValueError("Can't find %s argument for function %s" % (lookupType, func.name,)) -+ -+ text += "{lookupFunc}({lookupArg}, __EGL_DISPATCH_{f.name});\n".format( -+ f=func, lookupFunc=lookupFunc, lookupArg=lookupArg) -+ else: -+ raise ValueError("Unknown dispatch method: %r" % (eglFunc["method"],)) -+ -+ text += " if(_ptr_{f.name} != NULL) {{\n".format(f=func) -+ text += " " -+ if func.hasReturn(): -+ text += "_ret = " -+ text += "_ptr_{f.name}({f.callArgs});\n".format(f=func) -+ text += " }\n" -+ -+ if func.hasReturn(): -+ text += " return _ret;\n" -+ text += "}\n" -+ return text -+ -+def getDefaultReturnValue(typename): -+ if typename.endswith("*"): -+ return "NULL" -+ elif typename == "EGLDisplay": -+ return "EGL_NO_DISPLAY" -+ elif typename == "EGLContext": -+ return "EGL_NO_CONTEXT" -+ elif typename == "EGLSurface": -+ return "EGL_NO_SURFACE" -+ elif typename == "EGLBoolean": -+ return "EGL_FALSE"; -+ -+ return "0" -+ -+if __name__ == "__main__": -+ main() -+ -diff --git a/src/egl/main/50_mesa.json b/src/egl/main/50_mesa.json -new file mode 100644 -index 0000000000..8aaaa100ff ---- /dev/null -+++ b/src/egl/main/50_mesa.json -@@ -0,0 +1,6 @@ -+{ -+ "file_format_version" : "1.0.0", -+ "ICD" : { -+ "library_path" : "libEGL_mesa.so.0" -+ } -+} -diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c -index cab05c2301..5f21f3457d 100644 ---- a/src/egl/main/eglapi.c -+++ b/src/egl/main/eglapi.c -@@ -651,7 +651,11 @@ eglQueryString(EGLDisplay dpy, EGLint name) - _EGLDriver *drv; - - if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) { -- RETURN_EGL_SUCCESS(NULL, _eglGlobal.ClientExtensionString); -+ const char *ret = _eglGetClientExtensionString(); -+ if (ret != NULL) -+ RETURN_EGL_SUCCESS(NULL, ret); -+ else -+ RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, NULL); - } - - disp = _eglLockDisplay(dpy); -diff --git a/src/egl/main/egldispatchstubs.c b/src/egl/main/egldispatchstubs.c -new file mode 100644 -index 0000000000..e02abd7a9e ---- /dev/null -+++ b/src/egl/main/egldispatchstubs.c -@@ -0,0 +1,110 @@ -+#include "egldispatchstubs.h" -+#include "g_egldispatchstubs.h" -+ -+#include -+ -+#include "eglcurrent.h" -+ -+static const __EGLapiExports *exports; -+ -+const int __EGL_DISPATCH_FUNC_COUNT = __EGL_DISPATCH_COUNT; -+int __EGL_DISPATCH_FUNC_INDICES[__EGL_DISPATCH_COUNT + 1]; -+ -+static int FindProcIndex(const char *name) -+{ -+ unsigned first = 0; -+ unsigned last = __EGL_DISPATCH_COUNT - 1; -+ -+ while (first <= last) { -+ unsigned middle = (first + last) / 2; -+ int comp = strcmp(name, -+ __EGL_DISPATCH_FUNC_NAMES[middle]); -+ -+ if (comp > 0) -+ first = middle + 1; -+ else if (comp < 0) -+ last = middle - 1; -+ else -+ return middle; -+ } -+ -+ /* Just point to the dummy entry at the end of the respective table */ -+ return __EGL_DISPATCH_COUNT; -+} -+ -+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable) -+{ -+ int i; -+ exports = exportsTable; -+ for (i=0; i<__EGL_DISPATCH_FUNC_COUNT; i++) { -+ __EGL_DISPATCH_FUNC_INDICES[i] = -1; -+ } -+} -+ -+void __eglSetDispatchIndex(const char *name, int dispatchIndex) -+{ -+ int index = FindProcIndex(name); -+ __EGL_DISPATCH_FUNC_INDICES[index] = dispatchIndex; -+} -+ -+void *__eglDispatchFindDispatchFunction(const char *name) -+{ -+ int index = FindProcIndex(name); -+ return (void *) __EGL_DISPATCH_FUNCS[index]; -+} -+ -+static __eglMustCastToProperFunctionPointerType FetchVendorFunc(__EGLvendorInfo *vendor, -+ int index, EGLint errorCode) -+{ -+ __eglMustCastToProperFunctionPointerType func = NULL; -+ -+ if (vendor != NULL) { -+ func = exports->fetchDispatchEntry(vendor, __EGL_DISPATCH_FUNC_INDICES[index]); -+ } -+ if (func == NULL) { -+ if (errorCode != EGL_SUCCESS) { -+ _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]); -+ } -+ return NULL; -+ } -+ -+ if (!exports->setLastVendor(vendor)) { -+ // Don't bother trying to set an error code in libglvnd. If -+ // setLastVendor failed, then setEGLError would also fail. -+ _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]); -+ return NULL; -+ } -+ -+ return func; -+} -+ -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index) -+{ -+ __EGLvendorInfo *vendor; -+ -+ // Note: This is only used for the eglWait* functions. For those, if -+ // there's no current context, then they're supposed to do nothing but -+ // return success. -+ exports->threadInit(); -+ vendor = exports->getCurrentVendor(); -+ return FetchVendorFunc(vendor, index, EGL_SUCCESS); -+} -+ -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index) -+{ -+ __EGLvendorInfo *vendor; -+ -+ exports->threadInit(); -+ vendor = exports->getVendorFromDisplay(dpy); -+ return FetchVendorFunc(vendor, index, EGL_BAD_DISPLAY); -+} -+ -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dev, int index) -+{ -+ __EGLvendorInfo *vendor; -+ -+ exports->threadInit(); -+ vendor = exports->getVendorFromDevice(dev); -+ return FetchVendorFunc(vendor, index, EGL_BAD_DEVICE_EXT); -+} -+ -diff --git a/src/egl/main/egldispatchstubs.h b/src/egl/main/egldispatchstubs.h -new file mode 100644 -index 0000000000..7861ea5e61 ---- /dev/null -+++ b/src/egl/main/egldispatchstubs.h -@@ -0,0 +1,26 @@ -+#ifndef EGLDISPATCHSTUBS_H -+#define EGLDISPATCHSTUBS_H -+ -+#include "glvnd/libeglabi.h" -+ -+// These variables are all generated along with the dispatch stubs. -+extern const int __EGL_DISPATCH_FUNC_COUNT; -+extern const char * const __EGL_DISPATCH_FUNC_NAMES[]; -+extern int __EGL_DISPATCH_FUNC_INDICES[]; -+extern const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[]; -+ -+void __eglInitDispatchStubs(const __EGLapiExports *exportsTable); -+void __eglSetDispatchIndex(const char *name, int index); -+ -+/** -+ * Returns the dispatch function for the given name, or \c NULL if the function -+ * isn't supported. -+ */ -+void *__eglDispatchFindDispatchFunction(const char *name); -+ -+// Helper functions used by the generated stubs. -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index); -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dpy, int index); -+__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index); -+ -+#endif // EGLDISPATCHSTUBS_H -diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c -index cb41063e32..baf96bb1ec 100644 ---- a/src/egl/main/eglglobals.c -+++ b/src/egl/main/eglglobals.c -@@ -29,6 +29,8 @@ - - - #include -+#include -+#include - #include - #include "c11/threads.h" - -@@ -50,9 +52,13 @@ struct _egl_global _eglGlobal = - _eglFiniDisplay - }, - -- /* ClientExtensionString */ -+ /* ClientOnlyExtensionString */ - "EGL_EXT_client_extensions" - " EGL_EXT_platform_base" -+ " EGL_KHR_client_get_all_proc_addresses" -+ " EGL_KHR_debug", -+ -+ /* PlatformExtensionString */ - #ifdef HAVE_WAYLAND_PLATFORM - " EGL_EXT_platform_wayland" - #endif -@@ -65,8 +71,9 @@ struct _egl_global _eglGlobal = - #ifdef HAVE_SURFACELESS_PLATFORM - " EGL_MESA_platform_surfaceless" - #endif -- " EGL_KHR_client_get_all_proc_addresses" -- " EGL_KHR_debug", -+ "", -+ -+ NULL, /* ClientExtensionsString */ - - NULL, /* debugCallback */ - _EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */ -@@ -101,3 +108,37 @@ _eglAddAtExitCall(void (*func)(void)) - mtx_unlock(_eglGlobal.Mutex); - } - } -+ -+const char * -+_eglGetClientExtensionString(void) -+{ -+ const char *ret; -+ -+ mtx_lock(_eglGlobal.Mutex); -+ -+ if (_eglGlobal.ClientExtensionString == NULL) { -+ size_t clientLen = strlen(_eglGlobal.ClientOnlyExtensionString); -+ size_t platformLen = strlen(_eglGlobal.PlatformExtensionString); -+ -+ _eglGlobal.ClientExtensionString = (char *) malloc(clientLen + platformLen + 1); -+ if (_eglGlobal.ClientExtensionString != NULL) { -+ char *ptr = _eglGlobal.ClientExtensionString; -+ -+ memcpy(ptr, _eglGlobal.ClientOnlyExtensionString, clientLen); -+ ptr += clientLen; -+ -+ if (platformLen > 0) { -+ // Note that if PlatformExtensionString is not empty, then it will -+ // already have a leading space. -+ assert(_eglGlobal.PlatformExtensionString[0] == ' '); -+ memcpy(ptr, _eglGlobal.PlatformExtensionString, platformLen); -+ ptr += platformLen; -+ } -+ *ptr = '\0'; -+ } -+ } -+ ret = _eglGlobal.ClientExtensionString; -+ -+ mtx_unlock(_eglGlobal.Mutex); -+ return ret; -+} -diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h -index ec4f3d04a3..c6ef59d482 100644 ---- a/src/egl/main/eglglobals.h -+++ b/src/egl/main/eglglobals.h -@@ -57,7 +57,15 @@ struct _egl_global - EGLint NumAtExitCalls; - void (*AtExitCalls[10])(void); - -- const char *ClientExtensionString; -+ /* -+ * Under libglvnd, the client extension string has to be split into two -+ * strings, one for platform extensions, and one for everything else. So, -+ * define separate strings for them. _eglGetClientExtensionString will -+ * concatenate them together for a non-libglvnd build. -+ */ -+ const char *ClientOnlyExtensionString; -+ const char *PlatformExtensionString; -+ char *ClientExtensionString; - - EGLDEBUGPROCKHR debugCallback; - unsigned int debugTypesEnabled; -@@ -76,4 +84,7 @@ static inline unsigned int DebugBitFromType(EGLenum type) - return (1 << (type - EGL_DEBUG_MSG_CRITICAL_KHR)); - } - -+extern const char * -+_eglGetClientExtensionString(void); -+ - #endif /* EGLGLOBALS_INCLUDED */ -diff --git a/src/egl/main/eglglvnd.c b/src/egl/main/eglglvnd.c -new file mode 100644 -index 0000000000..6b984ed6c2 ---- /dev/null -+++ b/src/egl/main/eglglvnd.c -@@ -0,0 +1,82 @@ -+#include -+#include -+ -+#include -+ -+#include "eglcurrent.h" -+#include "egldispatchstubs.h" -+#include "eglglobals.h" -+ -+static const __EGLapiExports *__eglGLVNDApiExports = NULL; -+ -+static const char * EGLAPIENTRY -+__eglGLVNDQueryString(EGLDisplay dpy, EGLenum name) -+{ -+ // For client extensions, return the list of non-platform extensions. The -+ // platform extensions are returned by __eglGLVNDGetVendorString. -+ if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) -+ return _eglGlobal.ClientOnlyExtensionString; -+ -+ // For everything else, forward to the normal eglQueryString function. -+ return eglQueryString(dpy, name); -+} -+ -+static const char * -+__eglGLVNDGetVendorString(int name) -+{ -+ if (name == __EGL_VENDOR_STRING_PLATFORM_EXTENSIONS) { -+ const char *str = _eglGlobal.PlatformExtensionString; -+ // The platform extension string may have a leading space. If it does, -+ // then skip over it. -+ while (*str == ' ') { -+ str++; -+ } -+ return str; -+ } -+ -+ return NULL; -+} -+ -+static EGLDisplay -+__eglGLVNDGetPlatformDisplay(EGLenum platform, void *native_display, -+ const EGLAttrib *attrib_list) -+{ -+ if (platform == EGL_NONE) { -+ assert(native_display == (void *) EGL_DEFAULT_DISPLAY); -+ assert(attrib_list == NULL); -+ return eglGetDisplay((EGLNativeDisplayType) native_display); -+ } else { -+ return eglGetPlatformDisplay(platform, native_display, attrib_list); -+ } -+} -+ -+static void * -+__eglGLVNDGetProcAddress(const char *procName) -+{ -+ if (strcmp(procName, "eglQueryString") == 0) -+ return (void *) __eglGLVNDQueryString; -+ -+ return (void *) eglGetProcAddress(procName); -+} -+ -+EGLAPI EGLBoolean -+__egl_Main(uint32_t version, const __EGLapiExports *exports, -+ __EGLvendorInfo *vendor, __EGLapiImports *imports) -+{ -+ if (EGL_VENDOR_ABI_GET_MAJOR_VERSION(version) != -+ EGL_VENDOR_ABI_MAJOR_VERSION) -+ return EGL_FALSE; -+ -+ __eglGLVNDApiExports = exports; -+ __eglInitDispatchStubs(exports); -+ -+ imports->getPlatformDisplay = __eglGLVNDGetPlatformDisplay; -+ imports->getSupportsAPI = _eglIsApiValid; -+ imports->getVendorString = __eglGLVNDGetVendorString; -+ imports->getProcAddress = __eglGLVNDGetProcAddress; -+ imports->getDispatchAddress = __eglDispatchFindDispatchFunction; -+ imports->setDispatchIndex = __eglSetDispatchIndex; -+ -+ return EGL_TRUE; -+} -+ --- -2.11.0 - diff --git a/libre/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch b/libre/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch deleted file mode 100644 index 376828e67..000000000 --- a/libre/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 16875ea5b9170f2213fd486d763f27a9d6dfc1b5 Mon Sep 17 00:00:00 2001 -From: Nicolas Chauvet -Date: Tue, 25 Oct 2016 09:35:13 +0200 -Subject: [PATCH 1/3] glapi: Link with glapi when built shared - -This patch explicitly links to libglapi when built shared. -This was specially needed to avoid undefined non-weak-symbol as shown -with: - -ldd -r /usr/lib64/dri/i915_dri.so - linux-vdso.so.1 (0x00007fff821f4000) - libdrm_intel.so.1 => /lib64/libdrm_intel.so.1 (0x00007f6adf2c7000) - libdrm_nouveau.so.2 => /lib64/libdrm_nouveau.so.2 (0x00007f6adf0be000) - libdrm_radeon.so.1 => /lib64/libdrm_radeon.so.1 (0x00007f6adeeb2000) - libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6adec8b000) - libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6adea7c000) - libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6ade84f000) - libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6ade633000) - libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ade42f000) - libm.so.6 => /lib64/libm.so.6 (0x00007f6ade125000) - libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6addf0e000) - libc.so.6 => /lib64/libc.so.6 (0x00007f6addb4c000) - /lib64/ld-linux-x86-64.so.2 (0x000056274e913000) - libpciaccess.so.0 => /lib64/libpciaccess.so.0 (0x00007f6add941000) - libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f6add6ce000) -undefined symbol: _glapi_get_dispatch_table_size (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_get_context (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_add_dispatch (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_check_multithread (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_tls_Context (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_set_context (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_set_dispatch (/usr/lib64/dri/i915_dri.so) -undefined symbol: _glapi_tls_Dispatch (/usr/lib64/dri/i915_dri.so) - -v3: Add gallium counterpart for radeon cases -Reported-by: Jonathan Dieter - -v2: Add Bugzilla and Signed-off - -Fixes: 0cbc90c57c ("mesa: dri: Add shared glapi to LIBADD on Android") -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98428 -Signed-off-by: Nicolas Chauvet ---- - src/gallium/targets/dri/Makefile.am | 2 -- - src/mesa/drivers/dri/Makefile.am | 3 --- - 2 files changed, 5 deletions(-) - -diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am -index bca747f..05f6c8c 100644 ---- a/src/gallium/targets/dri/Makefile.am -+++ b/src/gallium/targets/dri/Makefile.am -@@ -1,10 +1,8 @@ - include $(top_srcdir)/src/gallium/Automake.inc - --if HAVE_ANDROID - if HAVE_SHARED_GLAPI - SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la - endif --endif - - AM_CFLAGS = \ - -I$(top_srcdir)/src/mapi \ -diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am -index 1c6dd08..8e68fc0 100644 ---- a/src/mesa/drivers/dri/Makefile.am -+++ b/src/mesa/drivers/dri/Makefile.am -@@ -6,12 +6,9 @@ MEGADRIVERS_DEPS = - - SUBDIRS+=common - --# On Android, we need to explicitly link to libglapi.so. --if HAVE_ANDROID - if HAVE_SHARED_GLAPI - SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la - endif --endif - - if HAVE_I915_DRI - SUBDIRS += i915 --- -2.7.4 - diff --git a/libre/mesa/0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch b/libre/mesa/0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch new file mode 100644 index 000000000..ab137e721 --- /dev/null +++ b/libre/mesa/0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch @@ -0,0 +1,88 @@ +From efa4f2ebc1e788c3f1cfcf3842058cf838171653 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 20 Mar 2017 08:41:26 +0100 +Subject: [PATCH] glxglvnddispatch: Add missing dispatch for GetDriverConfig + +Together with some fixes to xdriinfo this fixes xdriinfo not working +with glvnd. + +Since apps (xdriinfo) expect GetDriverConfig to work without going to +need through the dance to setup a glxcontext (which is a reasonable +expectation IMHO), the dispatch for this ends up significantly different +then any other dispatch function. + +This patch gets the job done, but I'm not really happy with how this +patch turned out, suggestions for a better fix are welcome. + +Cc: Kyle Brenneman +Signed-off-by: Hans de Goede +--- + src/glx/g_glxglvnddispatchfuncs.c | 18 ++++++++++++++++++ + src/glx/g_glxglvnddispatchindices.h | 1 + + 2 files changed, 19 insertions(+) + +diff --git a/src/glx/g_glxglvnddispatchfuncs.c b/src/glx/g_glxglvnddispatchfuncs.c +index b5e3398..040cdf8 100644 +--- a/src/glx/g_glxglvnddispatchfuncs.c ++++ b/src/glx/g_glxglvnddispatchfuncs.c +@@ -4,6 +4,7 @@ + */ + #include + ++#include "glxclient.h" + #include "glxglvnd.h" + #include "glxglvnddispatchfuncs.h" + #include "g_glxglvnddispatchindices.h" +@@ -50,6 +51,7 @@ const char * const __glXDispatchTableStrings[DI_LAST_INDEX] = { + __ATTRIB(GetCurrentDisplayEXT), + // glXGetCurrentDrawable implemented by libglvnd + // glXGetCurrentReadDrawable implemented by libglvnd ++ __ATTRIB(GetDriverConfig), + // glXGetFBConfigAttrib implemented by libglvnd + __ATTRIB(GetFBConfigAttribSGIX), + __ATTRIB(GetFBConfigFromVisualSGIX), +@@ -334,6 +336,21 @@ static Display *dispatch_GetCurrentDisplayEXT(void) + + + ++static const char *dispatch_GetDriverConfig(const char *driverName) ++{ ++ /* ++ * The options are constant for a given driverName, so we do not need ++ * a context (and apps expect to be able to call this without one). ++ */ ++#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) ++ return glXGetDriverConfig(driverName); ++#else ++ return NULL; ++#endif ++} ++ ++ ++ + static int dispatch_GetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, + int attribute, int *value_return) + { +@@ -939,6 +956,7 @@ const void * const __glXDispatchFunctions[DI_LAST_INDEX + 1] = { + __ATTRIB(DestroyGLXPbufferSGIX), + __ATTRIB(GetContextIDEXT), + __ATTRIB(GetCurrentDisplayEXT), ++ __ATTRIB(GetDriverConfig), + __ATTRIB(GetFBConfigAttribSGIX), + __ATTRIB(GetFBConfigFromVisualSGIX), + __ATTRIB(GetMscRateOML), +diff --git a/src/glx/g_glxglvnddispatchindices.h b/src/glx/g_glxglvnddispatchindices.h +index 05a2c8c..3ba50a7 100644 +--- a/src/glx/g_glxglvnddispatchindices.h ++++ b/src/glx/g_glxglvnddispatchindices.h +@@ -39,6 +39,7 @@ typedef enum __GLXdispatchIndex { + DI_GetCurrentDisplayEXT, + // GetCurrentDrawable implemented by libglvnd + // GetCurrentReadDrawable implemented by libglvnd ++ DI_GetDriverConfig, + // GetFBConfigAttrib implemented by libglvnd + DI_GetFBConfigAttribSGIX, + DI_GetFBConfigFromVisualSGIX, +-- +2.9.3 + diff --git a/libre/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch b/libre/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch deleted file mode 100644 index f3b0f9914..000000000 --- a/libre/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2d4094c2caad6cef2f5544b3966fcc37ceb32036 Mon Sep 17 00:00:00 2001 -From: Kyle Brenneman -Date: Thu, 5 Jan 2017 14:29:47 -0700 -Subject: [PATCH 2/2] fixup! EGL: Implement the libglvnd interface for EGL (v2) - ---- - src/egl/generate/eglFunctionList.py | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py -index b19b5f7193..80cb83437c 100644 ---- a/src/egl/generate/eglFunctionList.py -+++ b/src/egl/generate/eglFunctionList.py -@@ -53,12 +53,14 @@ method values: - Select the vendor that owns the current context. - """ - --def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None): -+def _eglFunc(name, method, static=None, public=False, inheader=None, prefix="dispatch_", extension=None, retval=None): - """ - A convenience function to define an entry in the EGL function list. - """ -+ if static is None: -+ static = (not public and method != "custom") - if inheader is None: -- inheader = (not public) -+ inheader = (not static) - values = { - "method" : method, - "prefix" : prefix, --- -2.11.0 - diff --git a/libre/mesa/PKGBUILD b/libre/mesa/PKGBUILD index e0832fed3..b132b4527 100644 --- a/libre/mesa/PKGBUILD +++ b/libre/mesa/PKGBUILD @@ -2,32 +2,26 @@ pkgbase=mesa pkgname=("${pkgbase}") -pkgver=17.0.4 -pkgrel=2.parabola1 +pkgver=17.1.0 +pkgrel=1.parabola1 arch=('i686' 'x86_64' 'armv7h') makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto' 'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'elfutils' 'llvm' - 'libomxil-bellagio' 'libclc' 'clang' 'libglvnd') + 'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors') url="http://mesa3d.sourceforge.net" license=('custom') source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} LICENSE drirc - remove-libpthread-stubs.patch - 0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch 0001-Fix-linkage-against-shared-glapi.patch - 0001-glapi-Link-with-glapi-when-built-shared.patch - 0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch + 0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch glvnd-fix-gl-dot-pc.patch) -sha256sums=('1269dc8545a193932a0779b2db5bce9be4a5f6813b98c38b93b372be8362a346' +sha256sums=('cf234a6ed4764673886b6661553b54675776ef0898f774716173cec890ac3b17' 'SKIP' '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' '2cc6f40076e07a2d4769557c1aa40e5b6fbbb59c38e551c1a1997ef0d3f3c5f2' - '75ab53ad44b95204c788a2988e97a5cb963bdbf6072a5466949a2afb79821c8f' - '1d3475dc2f4f3e450cf313130d3ce965f933f396058828fa843c0df8115feeb9' 'c68d1522f9bce4ce31c92aa7a688da49f13043f5bb2254795b76dea8f47130b7' - '064dcd5a3ab1b7c23383e2cafbd37859e4c353f8839671d9695c6f7c2ef3260b' - '81d0ced62f61677ea0cf5f69a491093409fa1370f2ef045c41106ca8bf9c46f6' + '4a0620f9197a65f830e3c512faba374a4bde45fee9e11f82321774c24d08232d' '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez " @@ -35,17 +29,11 @@ validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # "Andres Gomez