summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorkevall4742021-02-24 21:46:30 -0500
committerkevall4742021-02-24 21:46:30 -0500
commit847ecbc0e347b42911486a5bb100bb1ad3cbedad (patch)
tree093f0f958a7dcb919e164d41d85624a627650be0
downloadaur-847ecbc0e347b42911486a5bb100bb1ad3cbedad.tar.gz
first push
-rw-r--r--.SRCINFO153
-rw-r--r--0001-4114.patch28
-rw-r--r--0001-4200.patch28
-rw-r--r--0001-enable-llvm-by-default.patch66
-rw-r--r--LICENSE90
-rw-r--r--PKGBUILD360
6 files changed, 725 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..8d74baf38409
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,153 @@
+pkgbase = mesa-rc
+ pkgver = 21.0.0_rc5
+ pkgrel = 1
+ url = https://mesa3d.org/
+ arch = i686
+ arch = x86_64
+ license = MIT
+ makedepends = bison
+ makedepends = flex
+ makedepends = valgrind
+ makedepends = meson
+ makedepends = ninja
+ makedepends = git
+ makedepends = ninjas2
+ makedepends = libxvmc
+ makedepends = python
+ makedepends = python-appdirs
+ makedepends = python-mako
+ makedepends = python-evdev
+ makedepends = elfutils
+ makedepends = glslang
+ makedepends = libva
+ makedepends = libepoxy
+ makedepends = libxv
+ makedepends = libvdpau
+ makedepends = libx11
+ makedepends = libxml2
+ makedepends = libxrandr
+ makedepends = llvm
+ makedepends = libconfig
+ makedepends = gtk3
+ makedepends = wayland-protocols
+ makedepends = xorgproto
+ makedepends = lua
+ makedepends = polly
+ makedepends = gcc
+ makedepends = gcc-libs
+ makedepends = ncurses
+ makedepends = libarchive
+ makedepends = libclc
+ makedepends = vulkan-icd-loader
+ makedepends = clang
+ makedepends = compiler-rt
+ makedepends = glibc
+ makedepends = ocl-icd
+ makedepends = lib32-flex
+ makedepends = lib32-libxvmc
+ makedepends = lib32-libva
+ makedepends = lib32-libepoxy
+ makedepends = lib32-libxv
+ makedepends = lib32-libvdpau
+ makedepends = lib32-libx11
+ makedepends = lib32-libxml2
+ makedepends = lib32-libxrandr
+ makedepends = lib32-llvm
+ makedepends = lib32-gtk3
+ makedepends = lib32-gcc-libs
+ makedepends = lib32-ncurses
+ makedepends = lib32-vulkan-icd-loader
+ makedepends = lib32-clang
+ makedepends = lib32-glibc
+ makedepends = lib32-ocl-icd
+ source = https://archive.mesa3d.org/mesa-21.0.0-rc5.tar.xz
+ source = LICENSE
+ source = 0001-4114.patch
+ source = 0001-4200.patch
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+
+pkgname = mesa-rc
+ pkgdesc = An open-source implementation of the OpenGL specification. (64-bit) (rc release)
+ depends = libdrm
+ depends = libelf
+ depends = libglvnd
+ depends = libomxil-bellagio
+ depends = libunwind
+ depends = libxdamage
+ depends = libxxf86vm
+ depends = llvm-libs
+ depends = lm_sensors
+ depends = wayland
+ depends = zstd
+ depends = libxshmfence
+ depends = libclc
+ depends = expat
+ depends = vulkan-icd-loader
+ provides = mesa
+ provides = opencl-mesa
+ provides = vulkan-intel
+ provides = vulkan-radeon
+ provides = vulkan-swrast
+ provides = vulkan-driver
+ provides = vulkan-mesa-layers
+ provides = libva-mesa-driver
+ provides = mesa-vdpau
+ provides = opengl-driver
+ provides = opencl-driver
+ provides = mesa-libgl
+ conflicts = mesa
+ conflicts = opencl-mesa
+ conflicts = vulkan-intel
+ conflicts = vulkan-radeon
+ conflicts = vulkan-mesa
+ conflicts = vulkan-swrast
+ conflicts = vulkan-mesa-layers
+ conflicts = libva-mesa-driver
+ conflicts = mesa-vdpau
+ conflicts = mesa-stable
+ conflicts = mesa-git
+
+pkgname = lib32-mesa-rc
+ pkgdesc = An open-source implementation of the OpenGL specification. (32-bit) (rc release)
+ depends = lib32-libdrm
+ depends = lib32-libelf
+ depends = lib32-libglvnd
+ depends = libomxil-bellagio
+ depends = lib32-libunwind
+ depends = lib32-libxdamage
+ depends = lib32-libxxf86vm
+ depends = lib32-llvm-libs
+ depends = lib32-lm_sensors
+ depends = lib32-wayland
+ depends = lib32-zstd
+ depends = lib32-libxshmfence
+ depends = libclc
+ depends = lib32-expat
+ depends = lib32-vulkan-icd-loader
+ provides = lib32-mesa
+ provides = lib32-opencl-mesa
+ provides = lib32-vulkan-intel
+ provides = lib32-vulkan-radeon
+ provides = lib32-vulkan-swrast
+ provides = lib32-vulkan-driver
+ provides = lib32-vulkan-mesa-layers
+ provides = lib32-libva-mesa-driver
+ provides = lib32-mesa-vdpau
+ provides = lib32-opengl-driver
+ provides = lib32-opencl-driver
+ provides = lib32-mesa-libgl
+ conflicts = lib32-mesa
+ conflicts = lib32-opencl-mesa
+ conflicts = lib32-vulkan-intel
+ conflicts = lib32-vulkan-radeon
+ conflicts = lib32-vulkan-mesa
+ conflicts = lib32-vulkan-swrast
+ conflicts = lib32-vulkan-mesa-layers
+ conflicts = lib32-libva-mesa-driver
+ conflicts = lib32-mesa-vdpau
+ conflicts = lib32-mesa-stable
+ conflicts = lib32-mesa-git
+
diff --git a/0001-4114.patch b/0001-4114.patch
new file mode 100644
index 000000000000..a0a1937b3311
--- /dev/null
+++ b/0001-4114.patch
@@ -0,0 +1,28 @@
+From 82467de5bb895052993fb892cd4b34ee757fdcab Mon Sep 17 00:00:00 2001
+From: kevall474 <kevall474@tuta.io>
+Date: Wed, 24 Feb 2021 15:34:45 -0500
+Subject: [PATCH] 4114
+
+---
+ src/gallium/frontends/clover/llvm/invocation.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/gallium/frontends/clover/llvm/invocation.cpp b/src/gallium/frontends/clover/llvm/invocation.cpp
+index 536e952b100..3a8d9c8e929 100644
+--- a/src/gallium/frontends/clover/llvm/invocation.cpp
++++ b/src/gallium/frontends/clover/llvm/invocation.cpp
+@@ -249,7 +249,11 @@ namespace {
+
+ c->getInvocation().setLangDefaults(c->getLangOpts(),
+ compat::ik_opencl, ::llvm::Triple(target.triple),
++#if LLVM_VERSION_MAJOR >= 12
++ c->getPreprocessorOpts().Includes,
++#else
+ c->getPreprocessorOpts(),
++#endif
+ get_language_version(opts, device_clc_version));
+
+ c->createDiagnostics(new clang::TextDiagnosticPrinter(
+--
+2.30.1
+
diff --git a/0001-4200.patch b/0001-4200.patch
new file mode 100644
index 000000000000..0fe2bb1e44d4
--- /dev/null
+++ b/0001-4200.patch
@@ -0,0 +1,28 @@
+From 06bd99a56c635c9b9246144dc256f537c6441232 Mon Sep 17 00:00:00 2001
+From: kevall474 <kevall474@tuta.io>
+Date: Wed, 24 Feb 2021 15:30:04 -0500
+Subject: [PATCH] 4200
+
+---
+ src/gallium/frontends/clover/llvm/metadata.hpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/gallium/frontends/clover/llvm/metadata.hpp b/src/gallium/frontends/clover/llvm/metadata.hpp
+index e3e58a32ff9..b15783266bd 100644
+--- a/src/gallium/frontends/clover/llvm/metadata.hpp
++++ b/src/gallium/frontends/clover/llvm/metadata.hpp
+@@ -129,7 +129,11 @@ namespace clover {
+ break;
+ }
+ if (type->isVectorTy())
+- data += std::to_string(((::llvm::VectorType*)type)->getNumElements());
++#if LLVM_VERSION_MAJOR >= 13
++ data += std::to_string(((::llvm::FixedVectorType*)type)->getNumElements());
++#else
++ data += std::to_string(((::llvm::VectorType*)type)->getNumElements());
++#endif
+
+ } else {
+ ::llvm::raw_string_ostream os { data };
+--
+2.30.1
diff --git a/0001-enable-llvm-by-default.patch b/0001-enable-llvm-by-default.patch
new file mode 100644
index 000000000000..2df240d0500e
--- /dev/null
+++ b/0001-enable-llvm-by-default.patch
@@ -0,0 +1,66 @@
+From 2e4fcd0c36b85a257f0528bba0b641edfc008235 Mon Sep 17 00:00:00 2001
+From: kevall474 <kevall474@tuta.io>
+Date: Wed, 24 Feb 2021 13:02:35 -0500
+Subject: [PATCH] enable llvm by default
+
+---
+ src/amd/compiler/aco_ir.cpp | 5 +++++
+ src/amd/vulkan/radv_debug.h | 1 +
+ src/amd/vulkan/radv_device.c | 3 +++
+ 3 files changed, 9 insertions(+)
+
+diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp
+index 4e248a9bd33..00299044828 100644
+--- a/src/amd/compiler/aco_ir.cpp
++++ b/src/amd/compiler/aco_ir.cpp
+@@ -47,9 +47,14 @@ static void init_once()
+ {
+ debug_flags = parse_debug_string(getenv("ACO_DEBUG"), aco_debug_options);
+
++ debug_flags |= aco::DEBUG_NO_OPT;
++ debug_flags |= aco::DEBUG_NO_SCHED;
++
+ #ifndef NDEBUG
+ /* enable some flags by default on debug builds */
+ debug_flags |= aco::DEBUG_VALIDATE_IR;
++ debug_flags |= aco::DEBUG_NO_OPT;
++ debug_flags |= aco::DEBUG_NO_SCHED;
+ #endif
+ }
+
+diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h
+index 8d828aaa28a..2e5aaec1109 100644
+--- a/src/amd/vulkan/radv_debug.h
++++ b/src/amd/vulkan/radv_debug.h
+@@ -72,6 +72,7 @@ enum {
+ RADV_PERFTEST_GE_WAVE_32 = 1u << 6,
+ RADV_PERFTEST_DFSM = 1u << 7,
+ RADV_PERFTEST_NO_SAM = 1u << 8,
++ RADV_PERFTEST_ACO = 1u << 9,
+ };
+
+ bool
+diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
+index 9513fb3b277..b28cbd47c35 100644
+--- a/src/amd/vulkan/radv_device.c
++++ b/src/amd/vulkan/radv_device.c
+@@ -816,6 +816,7 @@ static const struct debug_control radv_perftest_options[] = {
+ {"gewave32", RADV_PERFTEST_GE_WAVE_32},
+ {"dfsm", RADV_PERFTEST_DFSM},
+ {"nosam", RADV_PERFTEST_NO_SAM},
++ {"aco", RADV_PERFTEST_ACO},
+ {NULL, 0}
+ };
+
+@@ -948,6 +949,8 @@ VkResult radv_CreateInstance(
+ instance->debug_flags = parse_debug_string(getenv("RADV_DEBUG"),
+ radv_debug_options);
+
++ instance->debug_flags |= RADV_DEBUG_LLVM;
++
+ const char *radv_perftest_str = getenv("RADV_PERFTEST");
+ instance->perftest_flags = parse_debug_string(radv_perftest_str,
+ radv_perftest_options);
+--
+2.30.1
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000000..0ed1c8cd079f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,90 @@
+License and Copyright
+=====================
+
+Disclaimer
+----------
+
+Mesa is a 3-D graphics library with an API which is very similar to that
+of `OpenGL <https://www.opengl.org/>`_ [1]_.
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from `Silicon Graphics,
+Inc. <https://www.sgi.com/>`__\ (SGI). However, the author does not
+possess an OpenGL license from SGI, and makes no claim that Mesa is in
+any way a compatible replacement for OpenGL or associated with SGI.
+Those who want a licensed implementation of OpenGL should contact a
+licensed vendor.
+
+Please do not refer to the library as *MesaGL* (for legal reasons). It's
+just *Mesa* or *The Mesa 3-D graphics library*.
+
+.. [1] OpenGL is a trademark of `Silicon Graphics
+ Incorporated <https://www.sgi.com/>`__.
+
+License / Copyright Information
+-------------------------------
+
+The Mesa distribution consists of several components. Different
+copyrights and licenses apply to different components. For example, the
+GLX client code uses the SGI Free Software License B, and some of the
+Mesa device drivers are copyrighted by their authors. See below for a
+list of Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT
+license. This allows integration with the XFree86, Xorg and DRI
+projects.
+
+The default Mesa license is as follows:
+
+::
+
+ Copyright (C) 1999-2007 Brian Paul 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
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ 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 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS 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.
+
+Attention, Contributors
+-----------------------
+
+When contributing to the Mesa project you must agree to the licensing
+terms of the component to which you're contributing. The following
+section lists the primary components of the Mesa distribution and their
+respective licenses.
+
+Mesa Component Licenses
+-----------------------
+
++-----------------+------------------------+-----------------------------+
+| Component | Location | License |
++=================+========================+=============================+
+| Main Mesa code | src/mesa/ | MIT |
++-----------------+------------------------+-----------------------------+
+| Device drivers | src/mesa/drivers/* | MIT, generally |
++-----------------+------------------------+-----------------------------+
+| Gallium code | src/gallium/ | MIT |
++-----------------+------------------------+-----------------------------+
+| Ext headers | include/GL/glext.h, | Khronos |
+| | include/GL/glxext.h | |
++-----------------+------------------------+-----------------------------+
+| GLX client code | src/glx/ | SGI Free Software License B |
++-----------------+------------------------+-----------------------------+
+| C11 thread | include/c11/threads*.h | Boost (permissive) |
+| emulation | | |
++-----------------+------------------------+-----------------------------+
+
+In general, consult the source files for license terms.
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..859742398138
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,360 @@
+#_ _ _ _ _ _____ _ _
+#| | _______ ____ _| | | || |___ | || |
+#| |/ / _ \ \ / / _` | | | || |_ / /| || |_
+#| < __/\ V / (_| | | |__ _/ / |__ _|
+#|_|\_\___| \_/ \__,_|_|_| |_|/_/ |_|
+
+#Maintainer: kevall474 <kevall474@tuta.io> <https://github.com/kevall474>
+#Credits: Lone_Wolf <lone_wolf@klaas-de-kat.nl> ---> For the base PKGBULD
+#Credits: Laurent Carlier <lordheavym@gmail.com> ---> For the base PKGBUILD
+
+#######################################
+
+#Enable llvm by default
+#Set 'y' to enable
+#Default is set to empty, so no llvm by default patch
+if [ -z ${_llvm+x} ]; then
+ _llvm=
+fi
+
+#######################################
+
+#Set compiler
+#Set '1' to use gcc
+#Set '2' to use clang
+#If not set is will build with gcc
+if [ -z ${_compiler+x} ]; then
+ _compiler=
+fi
+
+#Set compiler optimization for GCC
+#Set '1' to use optimization
+#Set '2' to disable optimization
+#If not set is will build with no optimization
+if [ -z ${_optimization+x} ]; then
+ _optimization=
+fi
+
+#This set lto/pgo value for GCC or CLANG
+#For now LTO/PGO is turn off for CLANG because of build issues
+#Do not eddit unless you know what you are doing
+if [[ $_compiler = "1" ]]; then
+ if [[ $_optimization = "1" ]]; then
+ lto1=false
+ pgo1=generate
+ lto2=true
+ pgo2=use
+ elif [[ $_optimization = "2" ]]; then
+ lto1=false
+ pgo1=off
+ lto2=false
+ pgo2=off
+ else
+ lto1=false
+ pgo1=off
+ lto2=false
+ pgo2=off
+ fi
+elif [[ $_compiler = "2" ]]; then
+ lto1=false
+ pgo1=off
+ lto2=false
+ pgo2=off
+else
+ lto1=false
+ pgo1=generate
+ lto2=true
+ pgo2=use
+fi
+
+#######################################
+
+pkgbase=mesa-rc
+pkgname=("${pkgbase}" "lib32-${pkgbase}")
+pkgver=21.0.0_rc5
+pkgrel=1
+versiontag=21.0.0-rc5
+arch=('i686' 'x86_64')
+url="https://mesa3d.org/"
+license=('MIT')
+makedepends=("bison" "flex" "valgrind" "meson" "ninja" "git" "ninjas2" "libxvmc" "python" "python-appdirs" "python-mako" "python-evdev" "elfutils"
+ "glslang" "libva" "libepoxy" "libxv" "libvdpau" "libx11" "libxml2" "libxrandr" "llvm" "libconfig" "gtk3" "wayland-protocols" "xorgproto"
+ "lua" "polly" "gcc" "gcc-libs" "ncurses" "libarchive" "libclc" "vulkan-icd-loader" "clang" "compiler-rt" "glibc" "ocl-icd")
+# Makedepend for lib32
+makedepends+=("lib32-flex" "lib32-libxvmc" "lib32-libva" "lib32-libepoxy" "lib32-libxv" "lib32-libvdpau" "lib32-libx11" "lib32-libxml2"
+ "lib32-libxrandr" "lib32-llvm" "lib32-gtk3" "lib32-gcc-libs" "lib32-ncurses" "lib32-vulkan-icd-loader" "lib32-clang" "lib32-glibc" "lib32-ocl-icd")
+source=("https://archive.mesa3d.org/mesa-$versiontag.tar.xz"
+ "LICENSE")
+md5sums=("SKIP"
+ "SKIP")
+if [[ $_llvm = "y" ]]; then
+ source+=("0001-enable-llvm-by-default.patch")
+ md5sums+=("SKIP") #0001-enable-llvm-by-default.patch
+fi
+# clover patch for llvm 12.0.0 and 13.0.0. Not commited in master branch for now
+source+=("0001-4114.patch"
+ "0001-4200.patch")
+md5sums+=("SKIP"
+ "SKIP")
+
+prepare(){
+ cd mesa-$versiontag
+
+ # Apply any patch
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ msg2 "Applying patch $src..."
+ patch -Np1 < "../$src"
+ done
+}
+
+build(){
+ cd mesa-$versiontag
+
+
+ # remove build dir if there is one
+ if dir build_64; then
+ rm -rf -v build_64
+ fi
+
+ # create build dir
+ mkdir -p -v build_64
+
+if [[ $_compiler = "1" ]]; then
+ export CC='gcc -m64'
+ export CXX='g++ -m64'
+elif [[ $_compiler = "2" ]]; then
+ export CC='clang -m64'
+ export CXX='clang++ -m64'
+else
+ export CC='gcc -m64'
+ export CXX='g++ -m64'
+fi
+
+ # build with meson
+ meson setup build_64/ \
+ -D b_ndebug=true \
+ -D b_lto=$lto1 \
+ -D b_pgo=$pgo1 \
+ -D buildtype=plain \
+ --wrap-mode=nofallback \
+ -Dc_args="-Ofast -m64" \
+ -Dcpp_args="-Ofast -m64" \
+ -Dprefix=/usr \
+ -D sysconfdir=/etc \
+ -Dplatforms=x11,wayland \
+ -Ddri3=enabled \
+ -Ddri-drivers=i915,i965,r100,r200,nouveau \
+ -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,iris,zink \
+ -Dgallium-extra-hud=true \
+ -Dgallium-vdpau=enabled \
+ -Dgallium-xvmc=enabled \
+ -Dgallium-omx=bellagio \
+ -Dgallium-va=enabled \
+ -Dgallium-xa=enabled \
+ -Dgallium-nine=true \
+ -Dgallium-opencl=icd \
+ -Dopencl-spirv=false \
+ -Dopencl-native=true \
+ -Dvulkan-drivers=amd,intel,swrast \
+ -Dshader-cache=enabled \
+ -Dvulkan-overlay-layer=true \
+ -Dvulkan-device-select-layer=true \
+ -Dshared-glapi=enabled \
+ -Dgles1=enabled \
+ -Dgles2=enabled \
+ -Dopengl=true \
+ -Dgbm=enabled \
+ -Dglx=dri \
+ -Degl=enabled \
+ -Dglvnd=true \
+ -Dmicrosoft-clc=disabled \
+ -Dspirv-to-dxil=false \
+ -Dllvm=enabled \
+ -Dshared-llvm=enabled \
+ -Dvalgrind=enabled \
+ -Dlibunwind=enabled \
+ -Dlmsensors=enabled \
+ -Dselinux=false \
+ -Dosmesa=true \
+ -Dswr-arches=avx,avx2,knl,skx \
+ -Dshared-swr=true \
+ -Dxlib-lease=enabled \
+ -Dglx-direct=true \
+ -Dzstd=enabled \
+ -Dzlib=enabled \
+ -Dsse2=false
+
+ meson configure build_64/
+
+ meson compile -C build_64/
+
+ ninja -C build_64/
+
+ # build with meson
+ meson configure build_64/ \
+ -D b_lto=$lto2 \
+ -D b_pgo=$pgo2
+
+ meson configure build_64/
+
+ meson compile -C build_64/
+
+ ninja -C build_64/
+
+ # remove build dir if there is one
+ if dir build_32; then
+ rm -rf -v build_32
+ fi
+
+ # create build dir
+ mkdir -p -v build_32
+
+if [[ $_compiler = "1" ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+elif [[ $_compiler = "2" ]]; then
+ export CC='clang -m32'
+ export CXX='clang++ -m32'
+else
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+fi
+export PKG_CONFIG=/usr/bin/i686-pc-linux-gnu-pkg-config
+cat >crossfile.ini <<END
+[binaries]
+llvm-config = '/usr/bin/llvm-config32'
+END
+
+ # build with meson
+ meson setup build_32/ \
+ --native-file crossfile.ini \
+ -D b_ndebug=true \
+ -D b_lto=$lto1 \
+ -D b_pgo=$pgo1 \
+ -D buildtype=plain \
+ --wrap-mode=nofallback \
+ -Dprefix=/usr \
+ -D sysconfdir=/etc \
+ --libdir=/usr/lib32 \
+ -Dc_args="-Ofast -m32" \
+ -Dcpp_args="-Ofast -m32" \
+ -Dplatforms=x11,wayland \
+ -Ddri3=enabled \
+ -Ddri-drivers=i915,i965,r100,r200,nouveau \
+ -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,iris,zink \
+ -Dgallium-extra-hud=true \
+ -Dgallium-vdpau=enabled \
+ -Dgallium-xvmc=enabled \
+ -Dgallium-omx=disabled \
+ -Dgallium-va=enabled \
+ -Dgallium-xa=enabled \
+ -Dgallium-nine=true \
+ -Dgallium-opencl=icd \
+ -Dopencl-spirv=false \
+ -Dopencl-native=true \
+ -Dvulkan-drivers=amd,intel,swrast \
+ -Dshader-cache=enabled \
+ -Dvulkan-overlay-layer=true \
+ -Dvulkan-device-select-layer=true \
+ -Dshared-glapi=enabled \
+ -Dgles1=enabled \
+ -Dgles2=enabled \
+ -Dopengl=true \
+ -Dgbm=enabled \
+ -Dglx=dri \
+ -Degl=enabled \
+ -Dglvnd=true \
+ -Dmicrosoft-clc=disabled \
+ -Dspirv-to-dxil=false \
+ -Dllvm=enabled \
+ -Dshared-llvm=enabled \
+ -Dvalgrind=disabled \
+ -Dlibunwind=enabled \
+ -Dlmsensors=enabled \
+ -Dselinux=false \
+ -Dosmesa=true \
+ -Dswr-arches=avx,avx2,knl,skx \
+ -Dshared-swr=true \
+ -Dxlib-lease=enabled \
+ -Dglx-direct=true \
+ -Dzstd=enabled \
+ -Dzlib=enabled \
+ -Dsse2=false
+
+ meson configure build_32/
+
+ meson compile -C build_32/
+
+ ninja -C build_32/
+
+ # build with meson
+ meson configure build_32/ \
+ -D b_lto=$lto2 \
+ -D b_pgo=$pgo2
+
+ meson configure build_32/
+
+ meson compile -C build_32/
+
+ ninja -C build_32/
+}
+
+package_mesa-rc(){
+ pkgdesc="An open-source implementation of the OpenGL specification. (64-bit) (rc release)"
+ depends=("libdrm" "libelf" "libglvnd" "libomxil-bellagio" "libunwind" "libxdamage" "libxxf86vm" "llvm-libs" "lm_sensors" "wayland" "zstd" "libxshmfence"
+ "libclc" "expat" "vulkan-icd-loader")
+ conflicts=("mesa" "opencl-mesa" "vulkan-intel" "vulkan-radeon" "vulkan-mesa" "vulkan-swrast" "vulkan-mesa-layers" "libva-mesa-driver" "mesa-vdpau" "mesa-stable" "mesa-git")
+ provides=("mesa" "opencl-mesa" "vulkan-intel" "vulkan-radeon" "vulkan-swrast" "vulkan-driver" "vulkan-mesa-layers" "libva-mesa-driver" "mesa-vdpau" "opengl-driver" "opencl-driver"
+ "mesa-libgl")
+
+ # compiling mesa and installing to "$pkgdir"
+ DESTDIR="${pkgdir}" ninja $NINJAFLAGS -C mesa-$versiontag/build_64/ install
+
+ # remove script file from /usr/bin
+ rm "${pkgdir}/usr/bin/mesa-overlay-control.py"
+ rm -rf -v "${pkgdir}/usr/bin"
+
+ # indirect rendering
+ ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0"
+
+ # installing license
+ install -Dt "$pkgdir"/usr/share/licenses/"$pkgname" -m644 LICENSE
+}
+
+package_lib32-mesa-rc(){
+ pkgdesc="An open-source implementation of the OpenGL specification. (32-bit) (rc release)"
+ depends=("lib32-libdrm" "lib32-libelf" "lib32-libglvnd" "libomxil-bellagio" "lib32-libunwind" "lib32-libxdamage" "lib32-libxxf86vm" "lib32-llvm-libs"
+ "lib32-lm_sensors" "lib32-wayland" "lib32-zstd" "lib32-libxshmfence" "libclc" "lib32-expat" "lib32-vulkan-icd-loader")
+ conflicts=("lib32-mesa" "lib32-opencl-mesa" "lib32-vulkan-intel" "lib32-vulkan-radeon" "lib32-vulkan-mesa" "lib32-vulkan-swrast" "lib32-vulkan-mesa-layers" "lib32-libva-mesa-driver" "lib32-mesa-vdpau"
+ "lib32-mesa-stable" "lib32-mesa-git")
+ provides=("lib32-mesa" "lib32-opencl-mesa" "lib32-vulkan-intel" "lib32-vulkan-radeon" "lib32-vulkan-swrast" "lib32-vulkan-driver" "lib32-vulkan-mesa-layers" "lib32-libva-mesa-driver"
+ "lib32-mesa-vdpau" "lib32-opengl-driver" "lib32-opencl-driver" "lib32-mesa-libgl")
+
+ # compiling mesa and installing to "$pkgdir"
+ DESTDIR="${pkgdir}" ninja $NINJAFLAGS -C mesa-$versiontag/build_32/ install
+
+ #Remove files provided by standard mesa build
+ rm -rf -v "$pkgdir"/etc
+ rm -rf -v "$pkgdir"/usr/include
+ rm -rf -v "$pkgdir"/usr/share/glvnd
+ rm -rf -v "$pkgdir"/usr/share/drirc.d
+ rm -rf -v "$pkgdir"/usr/share/freedreno
+ rm -rf -v "$pkgdir"/usr/share/vulkan/explicit_layer.d
+ rm -rf -v "$pkgdir"/usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json
+ rm -rf -v "$pkgdir"/usr/share/vulkan/implicit_layer.d
+ rm -rf -v "$pkgdir"/usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
+
+ # remove script file from /usr/bin
+ rm -v "${pkgdir}/usr/bin/mesa-overlay-control.py"
+ rm -rf -v "${pkgdir}/usr/bin"
+
+ # indirect rendering
+ ln -s /usr/lib32/libGLX_mesa.so.0 "${pkgdir}/usr/lib32/libGLX_indirect.so.0"
+
+ # installing license
+ install -Dt "$pkgdir"/usr/share/licenses/"$pkgname" -m644 LICENSE
+}