Date: Tuesday, May 16, 2023 @ 00:19:05 Author: heftig Revision: 1461889
23.1.0-1 Modified: lib32-mesa/trunk/PKGBUILD Deleted: lib32-mesa/trunk/0001-intel-fs-fix-scheduling-of-HALT-instructions.patch lib32-mesa/trunk/0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch lib32-mesa/trunk/0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch -----------------------------------------------------------------+ 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch | 130 --- 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch | 38 - 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch | 50 - PKGBUILD | 354 ++++++---- 4 files changed, 229 insertions(+), 343 deletions(-) Deleted: 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch =================================================================== --- 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch 2023-05-15 23:12:57 UTC (rev 1461888) +++ 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch 2023-05-16 00:19:05 UTC (rev 1461889) @@ -1,130 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Lionel Landwerlin <[email protected]> -Date: Mon, 3 Apr 2023 14:52:59 +0300 -Subject: [PATCH] intel/fs: fix scheduling of HALT instructions - -With the following test : - -dEQP-VK.spirv_assembly.instruction.terminate_invocation.terminate.no_out_of_bounds_load - -There is a : - -shader_start: - ... <- no control flow - g0 = some_alu - g1 = fbl - g2 = broadcast g3, g1 - g4 = get_buffer_size g2 - ... <- no control flow - halt <- on some lanes - g5 = send <surface>, g4 - -eliminate_find_live_channel will remove the fbl/broadcast because it -assumes lane0 is active at get_buffer_size : - -shader_start: - ... <- no control flow - g0 = some_alu - g4 = get_buffer_size g0 - ... <- no control flow - halt <- on some lanes - g5 = send <surface>, g4 - -But then the instruction scheduler will move the get_buffer_size after -the halt : - -shader_start: - ... <- no control flow - halt <- on some lanes - g0 = some_alu - g4 = get_buffer_size g0 - g5 = send <surface>, g4 - -get_buffer_size pulls the surface index from lane0 in g0 which could -have been turned off by the halt and we end up accessing an invalid -surface handle. - -Signed-off-by: Lionel Landwerlin <[email protected]> -Cc: mesa-stable ---- - .../compiler/brw_schedule_instructions.cpp | 46 +++++++++++++++++++ - 1 file changed, 46 insertions(+) - -diff --git a/src/intel/compiler/brw_schedule_instructions.cpp b/src/intel/compiler/brw_schedule_instructions.cpp -index 3286e3f83b96..43f63784b2e8 100644 ---- a/src/intel/compiler/brw_schedule_instructions.cpp -+++ b/src/intel/compiler/brw_schedule_instructions.cpp -@@ -651,6 +651,7 @@ public: - ralloc_free(this->mem_ctx); - } - void add_barrier_deps(schedule_node *n); -+ void add_cross_lane_deps(schedule_node *n); - void add_dep(schedule_node *before, schedule_node *after, int latency); - void add_dep(schedule_node *before, schedule_node *after); - -@@ -1098,6 +1099,28 @@ is_scheduling_barrier(const backend_instruction *inst) - inst->has_side_effects(); - } - -+static bool -+has_cross_lane_access(const fs_inst *inst) -+{ -+ if (inst->opcode == SHADER_OPCODE_BROADCAST || -+ inst->opcode == SHADER_OPCODE_READ_SR_REG || -+ inst->opcode == SHADER_OPCODE_CLUSTER_BROADCAST || -+ inst->opcode == SHADER_OPCODE_SHUFFLE || -+ inst->opcode == FS_OPCODE_LOAD_LIVE_CHANNELS || -+ inst->opcode == SHADER_OPCODE_FIND_LAST_LIVE_CHANNEL || -+ inst->opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL) -+ return true; -+ -+ for (unsigned s = 0; s < inst->sources; s++) { -+ if (inst->src[s].file == VGRF) { -+ if (inst->src[s].stride == 0) -+ return true; -+ } -+ } -+ -+ return false; -+} -+ - /** - * Sometimes we really want this node to execute after everything that - * was before it and before everything that followed it. This adds -@@ -1128,6 +1151,25 @@ instruction_scheduler::add_barrier_deps(schedule_node *n) - } - } - -+/** -+ * Because some instructions like HALT can disable lanes, scheduling prior to -+ * a cross lane access should not be allowed, otherwise we could end up with -+ * later instructions accessing uninitialized data. -+ */ -+void -+instruction_scheduler::add_cross_lane_deps(schedule_node *n) -+{ -+ schedule_node *prev = (schedule_node *)n->prev; -+ -+ if (prev) { -+ while (!prev->is_head_sentinel()) { -+ if (has_cross_lane_access((fs_inst *)prev->inst)) -+ add_dep(prev, n, 0); -+ prev = (schedule_node *)prev->prev; -+ } -+ } -+} -+ - /* instruction scheduling needs to be aware of when an MRF write - * actually writes 2 MRFs. - */ -@@ -1165,6 +1207,10 @@ fs_instruction_scheduler::calculate_deps() - if (is_scheduling_barrier(inst)) - add_barrier_deps(n); - -+ if (inst->opcode == BRW_OPCODE_HALT || -+ inst->opcode == SHADER_OPCODE_HALT_TARGET) -+ add_cross_lane_deps(n); -+ - /* read-after-write deps. */ - for (int i = 0; i < inst->sources; i++) { - if (inst->src[i].file == VGRF) { Deleted: 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch =================================================================== --- 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch 2023-05-15 23:12:57 UTC (rev 1461888) +++ 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch 2023-05-16 00:19:05 UTC (rev 1461889) @@ -1,38 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Alexandros Frantzis <[email protected]> -Date: Thu, 2 Mar 2023 09:35:08 +0200 -Subject: [PATCH] egl/wayland: Fix destruction of event queue with proxies - still attached. - -Destroy the display wrapper proxy before destroying the event queue that -the proxy is attached to. - -This silences a warning that libwayland 1.22 emits for programs that use -EGL/Wayland: - -warning: queue 0x562a5ed2cd20 destroyed while proxies still attached: - wl_display@1 still attached - -Signed-off-by: Alexandros Frantzis <[email protected]> -Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21646> ---- - src/egl/drivers/dri2/platform_wayland.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c -index 32b0ff70002d..962bc34a2166 100644 ---- a/src/egl/drivers/dri2/platform_wayland.c -+++ b/src/egl/drivers/dri2/platform_wayland.c -@@ -2800,10 +2800,10 @@ dri2_teardown_wayland(struct dri2_egl_display *dri2_dpy) - wl_shm_destroy(dri2_dpy->wl_shm); - if (dri2_dpy->wl_registry) - wl_registry_destroy(dri2_dpy->wl_registry); -- if (dri2_dpy->wl_queue) -- wl_event_queue_destroy(dri2_dpy->wl_queue); - if (dri2_dpy->wl_dpy_wrapper) - wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper); -+ if (dri2_dpy->wl_queue) -+ wl_event_queue_destroy(dri2_dpy->wl_queue); - - if (dri2_dpy->own_device) - wl_display_disconnect(dri2_dpy->wl_dpy); Deleted: 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch =================================================================== --- 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch 2023-05-15 23:12:57 UTC (rev 1461888) +++ 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch 2023-05-16 00:19:05 UTC (rev 1461889) @@ -1,50 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Alexandros Frantzis <[email protected]> -Date: Thu, 2 Mar 2023 10:10:42 +0200 -Subject: [PATCH] vulkan/wsi/wayland: Fix destruction of event queue with - proxies still attached. - -Destroy the surface dmabuf feedback proxy before destroying the event -queue that the proxy is attached to. - -This silences a warning that libwayland 1.22 emits for programs that use -Vulkan/Wayland: - -warning: queue 0x557a4efbcf70 destroyed while proxies still attached: - zwp_linux_dmabuf_feedback_v1@18 still attached - -Signed-off-by: Alexandros Frantzis <[email protected]> -Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647> ---- - src/vulkan/wsi/wsi_common_wayland.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c -index 0c6560371f75..6a241bcfabe1 100644 ---- a/src/vulkan/wsi/wsi_common_wayland.c -+++ b/src/vulkan/wsi/wsi_common_wayland.c -@@ -1156,18 +1156,18 @@ wsi_wl_surface_destroy(VkIcdSurfaceBase *icd_surface, VkInstance _instance, - struct wsi_wl_surface *wsi_wl_surface = - wl_container_of((VkIcdSurfaceWayland *)icd_surface, wsi_wl_surface, base); - -- if (wsi_wl_surface->surface) -- wl_proxy_wrapper_destroy(wsi_wl_surface->surface); -- -- if (wsi_wl_surface->display) -- wsi_wl_display_destroy(wsi_wl_surface->display); -- - if (wsi_wl_surface->wl_dmabuf_feedback) { - zwp_linux_dmabuf_feedback_v1_destroy(wsi_wl_surface->wl_dmabuf_feedback); - dmabuf_feedback_fini(&wsi_wl_surface->dmabuf_feedback); - dmabuf_feedback_fini(&wsi_wl_surface->pending_dmabuf_feedback); - } - -+ if (wsi_wl_surface->surface) -+ wl_proxy_wrapper_destroy(wsi_wl_surface->surface); -+ -+ if (wsi_wl_surface->display) -+ wsi_wl_display_destroy(wsi_wl_surface->display); -+ - vk_free2(&instance->alloc, pAllocator, wsi_wl_surface); - } - Modified: PKGBUILD =================================================================== --- PKGBUILD 2023-05-15 23:12:57 UTC (rev 1461888) +++ PKGBUILD 2023-05-16 00:19:05 UTC (rev 1461889) @@ -4,35 +4,66 @@ # Contributor: Andreas Radke <[email protected]> pkgbase=lib32-mesa -pkgname=('lib32-vulkan-mesa-layers' 'lib32-opencl-mesa' 'lib32-vulkan-intel' 'lib32-vulkan-radeon' 'lib32-vulkan-virtio' 'lib32-libva-mesa-driver' 'lib32-mesa-vdpau' 'lib32-mesa') +pkgname=( + 'lib32-vulkan-mesa-layers' + 'lib32-opencl-mesa' + 'lib32-vulkan-intel' + 'lib32-vulkan-radeon' + 'lib32-vulkan-swrast' + 'lib32-vulkan-virtio' + 'lib32-libva-mesa-driver' + 'lib32-mesa-vdpau' + 'lib32-mesa' +) +pkgver=23.1.0 +pkgrel=1 pkgdesc="An open-source implementation of the OpenGL specification (32-bit)" -pkgver=23.0.3 -pkgrel=1 +url="https://www.mesa3d.org/" arch=('x86_64') -makedepends=('python-mako' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'xorgproto' 'lib32-libdrm' - 'lib32-libxshmfence' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libvdpau' - 'lib32-libva' 'lib32-wayland' 'wayland-protocols' 'lib32-zstd' 'lib32-libelf' - 'lib32-llvm' 'libclc' 'clang' 'lib32-clang' 'lib32-libglvnd' 'lib32-libunwind' - 'lib32-lm_sensors' 'lib32-libxrandr' 'lib32-vulkan-icd-loader' 'lib32-systemd' - 'glslang' 'cmake' 'meson') -url="https://www.mesa3d.org/" license=('custom') -source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} - 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch - 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch - 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch - LICENSE) -sha256sums=('386362a5d80df3b096636b67f340e1ce67b705b44767d5bdd11d2ed1037192d5' +makedepends=( + 'lib32-clang' + 'lib32-expat' + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-libglvnd' + 'lib32-libunwind' + 'lib32-libva' + 'lib32-libvdpau' + 'lib32-libx11' + 'lib32-libxdamage' + 'lib32-libxml2' + 'lib32-libxrandr' + 'lib32-libxshmfence' + 'lib32-libxxf86vm' + 'lib32-llvm' + 'lib32-lm_sensors' + 'lib32-systemd' + 'lib32-vulkan-icd-loader' + 'lib32-wayland' + 'lib32-zstd' + + # shared with lib32-mesa + 'clang' + 'cmake' + 'elfutils' + 'glslang' + 'libclc' + 'meson' + 'python-mako' + 'wayland-protocols' + 'xorgproto' + +) +source=( + https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} + LICENSE +) +sha256sums=('a9dde3c76571c4806245a05bda1cceee347c3267127e9e549e4f4e225d92e992' 'SKIP' - 'dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40' - 'c25493de3e5930702acf833d182aeca0895d6a9d9e830dca15c42d130e25c41c' - 'db2be7ae0540d65e77449eda1af66200e27af382183fdcd0c87f99db3520b80a' '7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537') -b2sums=('e716d9ddce3da649239c1bc37ec208b9669f316f6b547ca0c69937043f371f0d59ead34fec427297171916045061ddb8783d126f6dec5ece90a0719003fe2c40' +b2sums=('47cc90da14a2c33bb54c7811e99b439fadef81a15b63e535210a329bad5e2524fcb415cc5ed51a8deb65ccc9a341af78f02178c93758f09946978179e494382c' 'SKIP' - '37d1d070c45c85bce8abe3524a3f8d9ac9ed6326a3eec653cd89fffce3630b08eb9b96b11aeb495488230449c99f9b508f73a15e53265d2b159286b0e2dda7cc' - 'ae891637318fdbb8dd58285098af7bea709fb032969a5671eb225a4a471bf9422fac2a6cb0fd188aad96ea5a03eb043f646f5d371dd655a100046adb1c91bd7d' - 'a7312e0931904e659b3d33fcb37b13bcadab943c6040dd2b58ea191db350b50c1ba588e334b7e59b513bd6155797e29dc1bd1a6a35a278b3824d06534f2c9d17' '1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <[email protected]> '946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <[email protected]> @@ -43,22 +74,46 @@ prepare() { cd mesa-$pkgver +} - # https://gitlab.freedesktop.org/mesa/mesa/-/issues/7110 - # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20765 - patch -Np1 -i ../0001-intel-fs-fix-scheduling-of-HALT-instructions.patch +_libdir=usr/lib32 - # https://bugs.archlinux.org/task/78137 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1826583 - # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21646 - patch -Np1 -i ../0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch +build() { + local meson_options=( + --libdir=/$_libdir + -D android-libbacktrace=disabled + -D b_ndebug=true + -D dri3=enabled + -D egl=enabled + -D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink + -D gallium-extra-hud=true + -D gallium-nine=true + -D gallium-omx=disabled + -D gallium-opencl=icd + -D gallium-rusticl=false + -D gallium-va=enabled + -D gallium-vdpau=enabled + -D gallium-xa=enabled + -D gbm=enabled + -D gles1=disabled + -D gles2=enabled + -D glvnd=true + -D glx=dri + -D intel-clc=disabled + -D libunwind=enabled + -D llvm=enabled + -D lmsensors=enabled + -D microsoft-clc=disabled + -D osmesa=true + -D platforms=x11,wayland + -D rust_std=2021 + -D shared-glapi=enabled + -D valgrind=disabled + -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc + -D vulkan-drivers=amd,intel,intel_hasvk,swrast,virtio-experimental + -D vulkan-layers=device-select,intel-nullhw,overlay + ) - # https://bugs.archlinux.org/task/78142 - # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647 - patch -Np1 -i ../0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch -} - -build() { # Build only minimal debug info to reduce size CFLAGS+=' -g1' CXXFLAGS+=' -g1' @@ -68,42 +123,8 @@ export PKG_CONFIG="i686-pc-linux-gnu-pkg-config" export LLVM_CONFIG="llvm-config32" - # swr driver is broken with some cpu see FS#66972 - - arch-meson mesa-$pkgver build \ - --libdir=/usr/lib32 \ - -D b_ndebug=true \ - -D platforms=x11,wayland \ - -D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink \ - -D vulkan-drivers=amd,intel,intel_hasvk,virtio-experimental \ - -D vulkan-layers=device-select,intel-nullhw,overlay \ - -D dri3=enabled \ - -D egl=enabled \ - -D gallium-extra-hud=true \ - -D gallium-nine=true \ - -D gallium-omx=disabled \ - -D gallium-opencl=icd \ - -D gallium-va=enabled \ - -D gallium-vdpau=enabled \ - -D gallium-xa=enabled \ - -D gbm=enabled \ - -D gles1=disabled \ - -D gles2=enabled \ - -D glvnd=true \ - -D glx=dri \ - -D libunwind=enabled \ - -D llvm=enabled \ - -D lmsensors=enabled \ - -D osmesa=true \ - -D shared-glapi=enabled \ - -D microsoft-clc=disabled \ - -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \ - -D valgrind=disabled - - # Print config - meson configure build - - ninja -C build + arch-meson mesa-$pkgver build "${meson_options[@]}" + meson configure build # Print config meson compile -C build # fake installation to be seperated into packages @@ -123,30 +144,43 @@ package_lib32-vulkan-mesa-layers() { pkgdesc="Mesa's Vulkan layers (32-bit)" - depends=('lib32-libdrm' 'lib32-libxcb' 'lib32-wayland') - depends+=('vulkan-mesa-layers') + depends=( + 'lib32-libdrm' + 'lib32-libxcb' + 'lib32-wayland' + + 'vulkan-mesa-layers' + ) conflicts=('lib32-vulkan-mesa-layer') replaces=('lib32-vulkan-mesa-layer') rm -rv fakeinstall/usr/share/vulkan/explicit_layer.d rm -rv fakeinstall/usr/share/vulkan/implicit_layer.d - rm -rv fakeinstall/usr/bin/mesa-overlay-control.py + _install fakeinstall/$_libdir/libVkLayer_*.so + rm -v fakeinstall/usr/bin/mesa-overlay-control.py - _install fakeinstall/usr/lib32/libVkLayer_*.so - install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } package_lib32-opencl-mesa() { pkgdesc="OpenCL support for AMD/ATI Radeon mesa drivers (32-bit)" - depends=('lib32-expat' 'lib32-libdrm' 'lib32-libelf' 'lib32-clang' 'lib32-zstd') - depends+=('opencl-mesa') + depends=( + 'lib32-clang' + 'lib32-expat' + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-zstd' + + 'libclc' + 'spirv-llvm-translator' + 'opencl-mesa' + ) optdepends=('opencl-headers: headers necessary for OpenCL development') provides=('lib32-opencl-driver') rm -rv fakeinstall/etc/OpenCL - _install fakeinstall/usr/lib32/lib*OpenCL* - _install fakeinstall/usr/lib32/gallium-pipe + _install fakeinstall/$_libdir/lib*OpenCL* + _install fakeinstall/$_libdir/gallium-pipe install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -153,13 +187,19 @@ package_lib32-vulkan-intel() { pkgdesc="Intel's Vulkan mesa driver (32-bit)" - depends=('lib32-wayland' 'lib32-libx11' 'lib32-libxshmfence' 'lib32-libdrm' 'lib32-zstd' - 'lib32-systemd') + depends=( + 'lib32-libdrm' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-systemd' + 'lib32-wayland' + 'lib32-zstd' + ) optdepends=('lib32-vulkan-mesa-layers: additional vulkan layers') provides=('lib32-vulkan-driver') _install fakeinstall/usr/share/vulkan/icd.d/intel_*.json - _install fakeinstall/usr/lib32/libvulkan_intel*.so + _install fakeinstall/$_libdir/libvulkan_intel*.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -166,91 +206,155 @@ package_lib32-vulkan-radeon() { pkgdesc="Radeon's Vulkan mesa driver (32-bit)" - depends=('lib32-wayland' 'lib32-libx11' 'lib32-libxshmfence' 'lib32-libelf' 'lib32-libdrm' - 'lib32-zstd' 'lib32-llvm-libs' 'lib32-systemd') - depends+=('vulkan-radeon') + depends=( + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-llvm-libs' + 'lib32-systemd' + 'lib32-wayland' + 'lib32-zstd' + + 'vulkan-radeon' + ) optdepends=('lib32-vulkan-mesa-layers: additional vulkan layers') provides=('lib32-vulkan-driver') + rm -v fakeinstall/usr/share/drirc.d/00-radv-defaults.conf _install fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json - _install fakeinstall/usr/lib32/libvulkan_radeon.so + _install fakeinstall/$_libdir/libvulkan_radeon.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } +package_lib32-vulkan-swrast() { + pkgdesc="Vulkan software rasteriser driver (32-bit)" + depends=( + 'lib32-libdrm' + 'lib32-libunwind' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-llvm-libs' + 'lib32-systemd' + 'lib32-wayland' + 'lib32-zstd' + ) + optdepends=('lib32-vulkan-mesa-layers: additional vulkan layers') + conflicts=('lib32-vulkan-mesa') + replaces=('lib32-vulkan-mesa') + provides=('lib32-vulkan-driver') + + _install fakeinstall/usr/share/vulkan/icd.d/lvp_icd*.json + _install fakeinstall/$_libdir/libvulkan_lvp.so + + install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE +} + package_lib32-vulkan-virtio() { - pkgdesc="Venus Vulkan mesa driver (32-bit)" - depends=('lib32-wayland' 'lib32-libx11' 'lib32-libxshmfence' 'lib32-libdrm' 'lib32-zstd' - 'lib32-systemd') + pkgdesc="Venus Vulkan mesa driver for Virtual Machines (32-bit)" + depends=( + 'lib32-libdrm' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-systemd' + 'lib32-wayland' + 'lib32-zstd' + ) optdepends=('lib32-vulkan-mesa-layers: additional vulkan layers') provides=('lib32-vulkan-driver') _install fakeinstall/usr/share/vulkan/icd.d/virtio_icd*.json - _install fakeinstall/usr/lib32/libvulkan_virtio.so + _install fakeinstall/$_libdir/libvulkan_virtio.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } package_lib32-libva-mesa-driver() { - pkgdesc="VA-API implementation for gallium (32-bit)" - depends=('lib32-libdrm' 'lib32-libx11' 'lib32-llvm-libs' 'lib32-expat' 'lib32-libelf' - 'lib32-libxshmfence' 'lib32-zstd') - depends+=('libexpat.so') + pkgdesc="VA-API drivers (32-bit)" + depends=( + 'lib32-expat' + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-llvm-libs' + 'lib32-zstd' + ) provides=('lib32-libva-driver') - _install fakeinstall/usr/lib32/dri/*_drv_video.so + _install fakeinstall/$_libdir/dri/*_drv_video.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } package_lib32-mesa-vdpau() { - pkgdesc="Mesa VDPAU drivers (32-bit)" - depends=('lib32-libdrm' 'lib32-libx11' 'lib32-llvm-libs' 'lib32-expat' 'lib32-libelf' - 'lib32-libxshmfence' 'lib32-zstd') - depends+=('libexpat.so') + pkgdesc="VDPAU drivers (32-bit)" + depends=( + 'lib32-expat' + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-libx11' + 'lib32-libxshmfence' + 'lib32-llvm-libs' + 'lib32-zstd' + ) provides=('lib32-vdpau-driver') - _install fakeinstall/usr/lib32/vdpau + _install fakeinstall/$_libdir/vdpau install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } package_lib32-mesa() { - depends=('lib32-libdrm' 'lib32-wayland' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libxshmfence' - 'lib32-libelf' 'lib32-libunwind' 'lib32-llvm-libs' 'lib32-lm_sensors' 'lib32-libglvnd' - 'lib32-zstd' 'lib32-vulkan-icd-loader') - depends+=('libsensors.so' 'libexpat.so') - depends+=('mesa') - optdepends=('opengl-man-pages: for the OpenGL API man pages' - 'lib32-mesa-vdpau: for accelerated video playback' - 'lib32-libva-mesa-driver: for accelerated video playback') - provides=('lib32-mesa-libgl' 'lib32-opengl-driver') + depends=( + 'lib32-libdrm' + 'lib32-libelf' + 'lib32-libglvnd' + 'lib32-libunwind' + 'lib32-libxdamage' + 'lib32-libxshmfence' + 'lib32-libxxf86vm' + 'lib32-llvm-libs' + 'lib32-lm_sensors' + 'lib32-vulkan-icd-loader' + 'lib32-wayland' + 'lib32-zstd' + + 'mesa' + ) + optdepends=( + 'lib32-libva-mesa-driver: for accelerated video playback' + 'lib32-mesa-vdpau: for accelerated video playback' + 'opengl-man-pages: for the OpenGL API man pages' + ) + provides=( + 'lib32-mesa-libgl' + 'lib32-opengl-driver' + ) conflicts=('lib32-mesa-libgl') replaces=('lib32-mesa-libgl') - rm -rv fakeinstall/usr/share/drirc.d/00-mesa-defaults.conf - rm -rv fakeinstall/usr/share/drirc.d/00-radv-defaults.conf - rm -rv fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json + rm -v fakeinstall/usr/share/drirc.d/00-mesa-defaults.conf + rm -v fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast, swr - _install fakeinstall/usr/lib32/dri/*_dri.so + _install fakeinstall/$_libdir/dri/*_dri.so - #_install fakeinstall/usr/lib32/bellagio - _install fakeinstall/usr/lib32/d3d - _install fakeinstall/usr/lib32/lib{gbm,glapi}.so* - _install fakeinstall/usr/lib32/libOSMesa.so* - _install fakeinstall/usr/lib32/libxatracker.so* - #_install fakeinstall/usr/lib32/libswrAVX*.so* + _install fakeinstall/$_libdir/d3d + _install fakeinstall/$_libdir/lib{gbm,glapi}.so* + _install fakeinstall/$_libdir/libOSMesa.so* + _install fakeinstall/$_libdir/libxatracker.so* rm -rv fakeinstall/usr/include - _install fakeinstall/usr/lib32/pkgconfig + _install fakeinstall/$_libdir/pkgconfig # libglvnd support - _install fakeinstall/usr/lib32/libGLX_mesa.so* - _install fakeinstall/usr/lib32/libEGL_mesa.so* + _install fakeinstall/$_libdir/libGLX_mesa.so* + _install fakeinstall/$_libdir/libEGL_mesa.so* # indirect rendering - ln -s /usr/lib32/libGLX_mesa.so.0 "${pkgdir}/usr/lib32/libGLX_indirect.so.0" + ln -sr "$pkgdir"/$_libdir/libGLX_{mesa,indirect}.so.0 # make sure there are no files left to install find fakeinstall -depth -print0 | xargs -0 rmdir
