summaryrefslogtreecommitdiff
path: root/user/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'user/mesa')
-rw-r--r--user/mesa/APKBUILD220
-rw-r--r--user/mesa/big-endian-flipping.patch37
-rw-r--r--user/mesa/disk_cache-stack-overflow.patch42
-rw-r--r--user/mesa/drmdeps.patch41
-rw-r--r--user/mesa/fix-non-altivec-ppc32.patch66
-rw-r--r--user/mesa/intel-vulkan.patch26
-rw-r--r--user/mesa/no-tls.patch14
-rw-r--r--user/mesa/time64.patch34
8 files changed, 183 insertions, 297 deletions
diff --git a/user/mesa/APKBUILD b/user/mesa/APKBUILD
index 50100c2bb..7af2e17cd 100644
--- a/user/mesa/APKBUILD
+++ b/user/mesa/APKBUILD
@@ -1,113 +1,73 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=mesa
-pkgver=18.3.6
+pkgver=19.3.4
+_llvmver=8
pkgrel=0
pkgdesc="Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
+options="!check" # No test suite.
license="MIT AND X11 AND SGI-B-2.0 AND BSL-1.0 AND LGPL-2.1+"
-depends=
-subpackages="$pkgname-dev
- $pkgname-dri-ati:_dri
- $pkgname-dri-nouveau:_dri
- $pkgname-dri-freedreno:_dri
- $pkgname-dri-swrast:_dri
- $pkgname-dri-virtio:_dri
- $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
- $pkgname-xatracker $pkgname-osmesa $pkgname-gbm
- "
-_llvmver=8
+depends=""
depends_dev="libdrm-dev libxcb-dev libxdamage-dev libxext-dev libxshmfence-dev
xorgproto-dev"
-makedepends="$depends_dev byacc eudev-dev expat-dev flex libelf-dev
- libvdpau-dev libx11-dev libxfixes-dev libxrandr-dev libxt-dev
- libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev makedepend python3
- py3-libxml2 py3-mako zlib-dev"
+makedepends="$depends_dev bison eudev-dev expat-dev flex libelf-dev
+ libva-dev libvdpau-dev libx11-dev libxfixes-dev libxrandr-dev libxt-dev
+ libxv-dev libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev makedepend meson
+ ninja python3 py3-libxml2 py3-mako zlib-dev"
+subpackages="$pkgname-dev $pkgname-dri
+ $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
+ $pkgname-xatracker $pkgname-osmesa $pkgname-gbm"
+# requires glslang: $pkgname-vulkan-overlay
source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz
+ amdgpu-pthread-header.patch
+ big-endian-flipping.patch
+ intel-vulkan.patch
musl-fixes.patch
musl-fix-includes.patch
- amdgpu-pthread-header.patch
- disk_cache-stack-overflow.patch
- drmdeps.patch
- fix-non-altivec-ppc32.patch
+ no-tls.patch
+ time64.patch
"
_dri_driverdir=/usr/lib/xorg/modules/dri
-_dri_drivers="r200,radeon,nouveau,swrast"
+_dri_drivers="r200,nouveau"
_gallium_drivers="r300,r600,radeonsi,nouveau,freedreno,swrast,virgl"
-_vulkan_drivers="radeon"
-
-builddir="$srcdir/mesa-$pkgver"
-
-_arch_opts=
+_vulkan_drivers="amd"
case "$CARCH" in
x86* | pmmx)
- _dri_drivers="${_dri_drivers},i915,i965"
- _gallium_drivers="${_gallium_drivers},svga"
+ _dri_drivers="${_dri_drivers},i965"
+ _gallium_drivers="${_gallium_drivers},i915,svga"
_vulkan_drivers="${_vulkan_drivers},intel"
- subpackages="$subpackages $pkgname-dri-intel:_dri $pkgname-dri-vmwgfx:_dri"
;;
aarch64 | arm*)
- _gallium_drivers="${_gallium_drivers},vc4"
- subpackages="$subpackages $pkgname-dri-vc4:_dri"
+ _gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,kmsro,v3d,lima,panfrost,etnaviv"
case "$CARCH" in
armhf) CFLAGS="$CFLAGS -mfpu=neon";;
esac
;;
+ppc64)
+ _arch_conf="-Dpower8=false"
+ ;;
esac
-prepare() {
- default_prepare
- libtoolize --force \
- && aclocal \
- && automake --add-missing \
- && autoreconf
-}
-
build() {
- export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
- PYTHON=python3 ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --with-dri-driverdir=$_dri_driverdir \
- --disable-asm \
- --with-gallium-drivers=${_gallium_drivers} \
- --with-dri-drivers=${_dri_drivers} \
- --with-vulkan-drivers=${_vulkan_drivers} \
- --with-llvm-prefix=/usr/lib/llvm$_llvmver \
- --enable-llvm-shared-libs \
- --enable-llvm \
- --with-platforms=x11,drm \
- --enable-shared-glapi \
- --enable-gbm \
- --disable-glx-tls \
- --disable-nine \
- --enable-dri \
- --enable-dri3 \
- --enable-glx \
- --enable-osmesa \
- --enable-gles1 \
- --enable-gles2 \
- --enable-egl \
- --enable-xa \
- --enable-vdpau \
- $_arch_opts
-
- make
-}
-
-check() {
- # Compiler test requires LLVM 3.8 and Python 2
- for i in gtest util mapi; do
- make -C "src/$i" check
- done
+ meson \
+ -Dprefix=/usr \
+ -Ddri-drivers-path=$_dri_driverdir \
+ -Dplatforms=x11,drm,surfaceless \
+ -Ddri-drivers=$_dri_drivers \
+ -Dgallium-drivers=$_gallium_drivers \
+ -Dvulkan-drivers=$_vulkan_drivers \
+ -Dosmesa=gallium \
+ $_arch_conf \
+ build
+
+ ninja -C build
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" ninja -C build install
}
egl() {
@@ -128,7 +88,7 @@ gl() {
glapi() {
replaces="$pkgname-gles"
- pkgdesc="Mesa shared glapi"
+ pkgdesc="Mesa OpenGL API"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libglapi.so.* \
"$subpkgdir"/usr/lib/
@@ -143,7 +103,7 @@ gles() {
}
xatracker() {
- pkgdesc="Mesa XA state tracker for vmware"
+ pkgdesc="Mesa XA state tracker for VMware"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libxatracker*.so.* \
"$subpkgdir"/usr/lib/
@@ -157,83 +117,47 @@ osmesa() {
}
gbm() {
- pkgdesc="Mesa gbm library"
+ pkgdesc="Mesa GBM library"
replaces="mesa"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgbm.so.* \
"$subpkgdir"/usr/lib/
}
-_mv_dri() {
- install -d "$subpkgdir"/$_dri_driverdir
-
- while [ $# -gt 0 ]; do
- mv "$pkgdir"/$_dri_driverdir/${1}.so \
- "$subpkgdir"/$_dri_driverdir/ || return 1
- shift
- done
-}
-
-_mv_vdpau() {
- local i
- install -d "$subpkgdir"/usr/lib/vdpau
- for i in "$@"; do
- mv "$pkgdir"/usr/lib/vdpau/libvdpau_$i.* \
- "$subpkgdir"/usr/lib/vdpau/ || return 1
- done
-}
-
-_mv_gpipe() {
- return 0
- # http://cgit.freedesktop.org/mesa/mesa/commit/?id=44ec468e8033553c26a112cebba41c343db00eb1
- # https://code.google.com/p/chromium/issues/detail?id=412089
-# local i
-# install -d "$subpkgdir"/usr/lib/gallium-pipe
-# for i in "$@"; do
-# mv "$pkgdir"/usr/lib/gallium-pipe/pipe_$i.* \
-# "$subpkgdir"/usr/lib/gallium-pipe/ || return 1
-# done
+vulkan_overlay() {
+ pkgdesc="Vulkan layer to display information about the current window"
+ install -d "$subpkgdir"/usr/lib
+ install -d "$subpkgdir"/usr/share/vulkan/explicit_layer.d
+ mv "$pkgdir"/usr/lib/libVkLayer_MESA_overlay.so \
+ "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json \
+ "$subpkgdir"/usr/share/vulkan/explicit_layer.d/
}
-_dri() {
- local n="${subpkgname##*-dri-}"
- pkgdesc="Mesa DRI driver for $n"
- case $n in
- ati)
- _mv_dri radeon_dri r200_dri r300_dri r600_dri radeonsi_dri \
- && _mv_vdpau r300 r600 radeonsi \
- && _mv_gpipe r300 r600
- ;;
- intel)
- _mv_dri i915_dri i965_dri
- ;;
- nouveau)
- _mv_dri nouveau_dri nouveau_vieux_dri \
- && _mv_vdpau nouveau \
- && _mv_gpipe nouveau
- ;;
- freedreno)
- _mv_dri msm_dri kgsl_dri
- ;;
- swrast)
- _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast
- ;;
- vc4)
- _mv_dri vc4_dri
- ;;
- vmwgfx)
- _mv_dri vmwgfx_dri && _mv_gpipe vmwgfx
- ;;
- virtio)
- _mv_dri virtio_gpu_dri
- ;;
- esac
+dri() {
+ pkgdesc="Mesa DRI drivers"
+ replaces="mesa-dri-ati mesa-dri-freedreno mesa-dri-intel
+ mesa-dri-nouveau mesa-dri-swrast mesa-dri-tegra mesa-dri-vc4
+ mesa-dri-virtio mesa-dri-vmwgfx"
+ provides="$replaces"
+ install -d "$subpkgdir"/usr/lib/xorg/modules
+ install -d "$subpkgdir"/usr/share/vulkan
+ mv "$pkgdir"/usr/lib/dri "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/lib/xorg/modules/dri "$subpkgdir"/usr/lib/xorg/modules/
+ mv "$pkgdir"/usr/share/drirc.d "$subpkgdir"/usr/share/
+ # XvMC drivers
+ mv "$pkgdir"/usr/lib/libXvMC*.so* "$subpkgdir"/usr/lib/
+ # support non-Vulkan arches
+ mv "$pkgdir"/usr/lib/libvulkan*.so* "$subpkgdir"/usr/lib/ || true
+ mv "$pkgdir"/usr/lib/vdpau "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/share/vulkan/icd.d "$subpkgdir"/usr/share/vulkan/
}
-sha512sums="3a6dcaba99185e28d162b130bbd760fe87e6072065958189b28f41ea287ef041397897e098d93218a64802cf11c73806f7400a866bd8e5ed69694fa15c147487 mesa-18.3.6.tar.xz
+sha512sums="2bbb3dc8f1d839f11fe12cc959393cd69607fa6714b2166b80299e0559d2d3b0ac38ed4e15ac3e5f472264eb24536d1901d350f7409f3a7e00d6f4ccbb2312fb mesa-19.3.4.tar.xz
+245d0d64d858dfadeeb544f31f7d0bb6ecb746a7fd5ec99755d679ae1a1eef4198d66473fb24d333eb6786bb8657012771e8285d67f165dc61a031df801947aa amdgpu-pthread-header.patch
+3417e5c6d7ec564178e1d72431042b0a6ba659321f13a3dda81eda5fa0f2c8bc7c6972cb8266aea84ab05976ffb161659e9988c50ecc418e8bc1e1ce8f93a65f big-endian-flipping.patch
+ba954ea9aa49e5cdfec08f310f41abf09e01a2a889a09b6c32a154b750d3ebb2bfb5a9b7d244c06d26442688aeeb7f212f5f3c98c6db69f878098a49d476ff70 intel-vulkan.patch
9f7a050f09571a2b17098d495b82e2e85b293fb7285e7d6d7c3c48cd4220a1bdcc61a7321ba78dd14860939ecabe7e89b32d6110f3728f793273e1e26b78a553 musl-fixes.patch
c7d91a660a033df91fac9c557039efc8669f0c26b2d35997d50753938b70d1af0bd110dcab3f8236eafab7d4be5dd7cd128a3e057e67e7e6a38a73fd6a7ef62e musl-fix-includes.patch
-245d0d64d858dfadeeb544f31f7d0bb6ecb746a7fd5ec99755d679ae1a1eef4198d66473fb24d333eb6786bb8657012771e8285d67f165dc61a031df801947aa amdgpu-pthread-header.patch
-f40ff04ac73c090c74d1955de6013c5aa41fb77f28b2b82d89cfc1880306a9ca1dde4581592db19f0a0ec6d85032f1ed5d953103ab0d075f9f0b7e459a028c45 disk_cache-stack-overflow.patch
-6800bc62aebfba22a2562c858c27391b47c5675020bd67f040da93ffe4d5d8ac828907a44c7cee6a4ebe63821b58c2515b4012f1f23473670b1de8670426a430 drmdeps.patch
-71a397cf9937e623d21abacb2726602f1b5165b18543e11fdfdaac748c221aeafbbda790492a2180b590dace9a17c931c1eac199de32e90c3fa3305706a4011f fix-non-altivec-ppc32.patch"
+56e829b0570cf5215c191330a5162356b77eeb555eb8127e30da57bdff9d369c1bb3de3bd7ee36233d6d610c0cec81773879da05cc0b391e06ff4d7507bef8a8 no-tls.patch
+0aad2fdc56ea8825533746ee4c2c803734f871e04da13ddd461b2de36716ba52e345e745a6861ffae62efacf6b64f629187ddda3c01e3d880ce20c0ac551dccb time64.patch"
diff --git a/user/mesa/big-endian-flipping.patch b/user/mesa/big-endian-flipping.patch
new file mode 100644
index 000000000..154a83108
--- /dev/null
+++ b/user/mesa/big-endian-flipping.patch
@@ -0,0 +1,37 @@
+From f1e0d76264491a8d8f99a0041b1a36cf9752fd28 Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Thu, 27 Feb 2020 04:24:52 -0600
+Subject: [PATCH] mesa: Support flipping three-channel formats
+
+Test system: POWER9 ppc64 (BE) system with a Radeon R5 230.
+
+Before this commit, starting Xorg caused this message:
+Assertion failed: !"Invalid array format" (../src/mesa/main/formats.c: _mesa_array_format_flip_channels: 421)
+
+After this commit, Xorg starts successfully.
+---
+ src/mesa/main/formats.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
+index 370859d37ca..2e7d5d7f05e 100644
+--- a/src/mesa/main/formats.c
++++ b/src/mesa/main/formats.c
+@@ -419,6 +419,14 @@ _mesa_array_format_flip_channels(mesa_array_format format)
+ return format;
+ }
+
++ if (num_channels == 3) {
++ static const uint8_t flip[6] = { 2, 1, 0, 3, 4, 5 };
++ _mesa_array_format_set_swizzle(&format,
++ flip[swizzle[0]], flip[swizzle[1]],
++ flip[swizzle[2]], flip[swizzle[3]]);
++ return format;
++ }
++
+ if (num_channels == 4) {
+ static const uint8_t flip[6] = { 3, 2, 1, 0, 4, 5 };
+ _mesa_array_format_set_swizzle(&format,
+--
+2.25.1
+
diff --git a/user/mesa/disk_cache-stack-overflow.patch b/user/mesa/disk_cache-stack-overflow.patch
deleted file mode 100644
index 3fad95259..000000000
--- a/user/mesa/disk_cache-stack-overflow.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-The disk cache code tries to allocate a 256 Kbyte buffer on the stack.
-Since musl only gives 80 Kbyte of stack space per thread, this causes a trap.
-
---- mesa-17.3.1/src/util/disk_cache.c.old 2017-12-21 11:31:22.000000000 -0600
-+++ mesa-17.3.1/src/util/disk_cache.c 2017-12-29 01:17:15.625633901 -0600
-@@ -716,7 +716,7 @@
- deflate_and_write_to_disk(const void *in_data, size_t in_data_size, int dest,
- const char *filename)
- {
-- unsigned char out[BUFSIZE];
-+ unsigned char *out;
-
- /* allocate deflate state */
- z_stream strm;
-@@ -733,6 +733,11 @@
- /* compress until end of in_data */
- size_t compressed_size = 0;
- int flush;
-+
-+ out = calloc(1, BUFSIZE);
-+ if (out == NULL)
-+ return 0;
-+
- do {
- int remaining = in_data_size - BUFSIZE;
- flush = remaining > 0 ? Z_NO_FLUSH : Z_FINISH;
-@@ -754,6 +759,7 @@
- ssize_t written = write_all(dest, out, have);
- if (written == -1) {
- (void)deflateEnd(&strm);
-+ free(out);
- return 0;
- }
- } while (strm.avail_out == 0);
-@@ -768,6 +774,7 @@
-
- /* clean up and return */
- (void)deflateEnd(&strm);
-+ free(out);
- return compressed_size;
- }
-
diff --git a/user/mesa/drmdeps.patch b/user/mesa/drmdeps.patch
deleted file mode 100644
index edcb80643..000000000
--- a/user/mesa/drmdeps.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/src/gallium/winsys/radeon/drm/Makefile.am 2017-08-10 11:45:20.737377457 -0400
-+++ b/src/gallium/winsys/radeon/drm/Makefile.am 2017-08-10 11:50:23.414534307 -0400
-@@ -7,4 +7,6 @@
-
- noinst_LTLIBRARIES = libradeonwinsys.la
-
-+libradeonwinsys_la_LIBADD = -ldrm_radeon
-+
- libradeonwinsys_la_SOURCES = $(C_SOURCES)
---- a/src/gallium/winsys/radeon/drm/Makefile.in 2017-08-10 11:45:25.577298181 -0400
-+++ b/src/gallium/winsys/radeon/drm/Makefile.in 2017-08-10 11:57:11.151189074 -0400
-@@ -119,7 +119,7 @@
- CONFIG_CLEAN_FILES =
- CONFIG_CLEAN_VPATH_FILES =
- LTLIBRARIES = $(noinst_LTLIBRARIES)
--libradeonwinsys_la_LIBADD =
-+libradeonwinsys_la_LIBADD = -ldrm_radeon
- am__objects_1 = radeon_drm_bo.lo radeon_drm_cs.lo \
- radeon_drm_surface.lo radeon_drm_winsys.lo
- am_libradeonwinsys_la_OBJECTS = $(am__objects_1)
---- a/src/gallium/winsys/amdgpu/drm/Makefile.am 2017-12-21 11:31:21.000000000 -0600
-+++ b/src/gallium/winsys/amdgpu/drm/Makefile.am 2017-12-28 19:24:48.613693400 -0600
-@@ -11,6 +11,6 @@
- noinst_LTLIBRARIES = libamdgpuwinsys.la
-
- libamdgpuwinsys_la_LIBADD = \
-- $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la
-+ $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la -ldrm_amdgpu
-
- libamdgpuwinsys_la_SOURCES = $(C_SOURCES)
---- a/src/gallium/winsys/amdgpu/drm/Makefile.in 2017-12-21 11:31:30.000000000 -0600
-+++ b/src/gallium/winsys/amdgpu/drm/Makefile.in 2017-12-28 19:25:22.553597353 -0600
-@@ -572,7 +572,7 @@
- AM_CXXFLAGS = $(AM_CFLAGS)
- noinst_LTLIBRARIES = libamdgpuwinsys.la
- libamdgpuwinsys_la_LIBADD = \
-- $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la
-+ $(top_builddir)/src/amd/addrlib/libamdgpu_addrlib.la -ldrm_amdgpu
-
- libamdgpuwinsys_la_SOURCES = $(C_SOURCES)
- all: all-am
diff --git a/user/mesa/fix-non-altivec-ppc32.patch b/user/mesa/fix-non-altivec-ppc32.patch
deleted file mode 100644
index 846cf5031..000000000
--- a/user/mesa/fix-non-altivec-ppc32.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- mesa-18.3.2/src/util/u_cpu_detect.c.old 2019-01-17 11:26:23.000000000 +0000
-+++ mesa-18.3.2/src/util/u_cpu_detect.c 2019-02-22 19:23:26.620000000 +0000
-@@ -41,6 +41,9 @@
- #if defined(PIPE_ARCH_PPC)
- #if defined(PIPE_OS_APPLE)
- #include <sys/sysctl.h>
-+#elif defined(PIPE_OS_LINUX)
-+#include <asm/cputable.h>
-+#include <linux/auxvec.h>
- #else
- #include <signal.h>
- #include <setjmp.h>
-@@ -92,7 +95,7 @@
- #endif
-
-
--#if defined(PIPE_ARCH_PPC) && !defined(PIPE_OS_APPLE)
-+#if defined(PIPE_ARCH_PPC) && !defined(PIPE_OS_APPLE) && !defined(PIPE_OS_LINUX)
- static jmp_buf __lv_powerpc_jmpbuf;
- static volatile sig_atomic_t __lv_powerpc_canjump = 0;
-
-@@ -126,7 +129,43 @@
- util_cpu_caps.has_altivec = 1;
- }
- }
--#else /* !PIPE_OS_APPLE */
-+#elif defined(PIPE_OS_LINUX)
-+ /* Taken from FFmpeg 4.1.1 (LGPL-2.1+) */
-+ // The linux kernel could have the altivec support disabled
-+ // even if the cpu has it.
-+ int i, ret = 0;
-+ int fd = open("/proc/self/auxv", O_RDONLY);
-+ unsigned long buf[64] = { 0 };
-+ ssize_t count;
-+ boolean enable_vsx = TRUE;
-+ /* VSX instructions can be explicitly enabled/disabled via GALLIVM_VSX=1 or 0 */
-+ char *env_vsx = getenv("GALLIVM_VSX");
-+ if (env_vsx && env_vsx[0] == '0') {
-+ enable_vsx = FALSE;
-+ }
-+
-+ if (fd < 0)
-+ return 0;
-+
-+ while ((count = read(fd, buf, sizeof(buf))) > 0) {
-+ for (i = 0; i < count / sizeof(*buf); i += 2) {
-+ if (buf[i] == AT_NULL)
-+ goto out;
-+ if (buf[i] == AT_HWCAP) {
-+ if (buf[i + 1] & PPC_FEATURE_HAS_ALTIVEC)
-+ util_cpu_caps.has_altivec = 1;
-+#ifdef PPC_FEATURE_HAS_VSX
-+ if (enable_vsx && buf[i + 1] & PPC_FEATURE_HAS_VSX)
-+ util_cpu_caps.has_vsx = 1;
-+#endif
-+ goto out;
-+ }
-+ }
-+ }
-+
-+out:
-+ close(fd);
-+#else /* !PIPE_OS_APPLE, !PIPE_OS_LINUX */
- /* not on Apple/Darwin, do it the brute-force way */
- /* this is borrowed from the libmpeg2 library */
- signal(SIGILL, sigill_handler);
diff --git a/user/mesa/intel-vulkan.patch b/user/mesa/intel-vulkan.patch
new file mode 100644
index 000000000..6ba03d6d1
--- /dev/null
+++ b/user/mesa/intel-vulkan.patch
@@ -0,0 +1,26 @@
+From 791ece114e2e27fa4ede1a998650964bd37d867b Mon Sep 17 00:00:00 2001
+From: Eric Engestrom <eric.engestrom@intel.com>
+Date: Sun, 27 Oct 2019 00:04:33 +0100
+Subject: [PATCH] anv: add missing xmlconfig headers dependency
+
+Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
+Acked-by: Dylan Baker <dylan@pnwbakers.com>
+---
+ src/intel/vulkan/meson.build | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
+index 69e472f719b..10fc4c4e611 100644
+--- a/src/intel/vulkan/meson.build
++++ b/src/intel/vulkan/meson.build
+@@ -133,6 +133,7 @@ anv_deps = [
+ dep_valgrind,
+ idep_nir_headers,
+ idep_vulkan_util_headers,
++ idep_xmlconfig_headers,
+ ]
+ anv_flags = [
+ c_vis_args,
+--
+2.24.1
+
diff --git a/user/mesa/no-tls.patch b/user/mesa/no-tls.patch
new file mode 100644
index 000000000..b5e0b3adb
--- /dev/null
+++ b/user/mesa/no-tls.patch
@@ -0,0 +1,14 @@
+--- mesa-19.3.1/meson.build.old 2019-12-18 18:36:00.000000000 +0000
++++ mesa-19.3.1/meson.build 2020-01-26 05:11:44.774286868 +0000
+@@ -386,11 +386,6 @@
+ endif
+ endif
+
+-# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
+-if host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29)
+- pre_args += '-DUSE_ELF_TLS'
+-endif
+-
+ if with_glx != 'disabled'
+ if not (with_platform_x11 and with_any_opengl)
+ error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
diff --git a/user/mesa/time64.patch b/user/mesa/time64.patch
new file mode 100644
index 000000000..7e7894a9d
--- /dev/null
+++ b/user/mesa/time64.patch
@@ -0,0 +1,34 @@
+--- mesa-19.3.1/src/gallium/drivers/vc4/vc4_bufmgr.c.old 2019-12-18 18:36:00.000000000 +0000
++++ mesa-19.3.1/src/gallium/drivers/vc4/vc4_bufmgr.c 2020-01-20 19:26:36.470000000 +0000
+@@ -107,8 +107,8 @@
+
+ struct timespec time;
+ clock_gettime(CLOCK_MONOTONIC, &time);
+- fprintf(stderr, " now: %ld\n",
+- time.tv_sec);
++ fprintf(stderr, " now: %"PRId64"\n",
++ (int64_t)time.tv_sec);
+ }
+ }
+
+--- mesa-19.3.1/src/gallium/drivers/v3d/v3d_bufmgr.c.old 2019-12-18 18:36:00.000000000 +0000
++++ mesa-19.3.1/src/gallium/drivers/v3d/v3d_bufmgr.c 2020-01-20 19:28:02.600000000 +0000
+@@ -23,6 +23,7 @@
+
+ #include <errno.h>
+ #include <err.h>
++#include <inttypes.h>
+ #include <sys/mman.h>
+ #include <fcntl.h>
+ #include <xf86drm.h>
+@@ -80,8 +81,8 @@
+
+ struct timespec time;
+ clock_gettime(CLOCK_MONOTONIC, &time);
+- fprintf(stderr, " now: %ld\n",
+- time.tv_sec);
++ fprintf(stderr, " now: %"PRId64"\n",
++ (int64_t)time.tv_sec);
+ }
+ }
+