Date: Tuesday, May 16, 2023 @ 00:19:03 Author: heftig Revision: 477943
23.1.0-1 Modified: mesa/trunk/PKGBUILD Deleted: mesa/trunk/0001-intel-fs-fix-scheduling-of-HALT-instructions.patch mesa/trunk/0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch mesa/trunk/0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch mesa/trunk/0004-rusticl-Fix-bindgen-invocation.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 - 0004-rusticl-Fix-bindgen-invocation.patch | 23 PKGBUILD | 340 ++++++---- 5 files changed, 225 insertions(+), 356 deletions(-) Deleted: 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch =================================================================== --- 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch 2023-05-15 23:48:44 UTC (rev 477942) +++ 0001-intel-fs-fix-scheduling-of-HALT-instructions.patch 2023-05-16 00:19:03 UTC (rev 477943) @@ -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:48:44 UTC (rev 477942) +++ 0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch 2023-05-16 00:19:03 UTC (rev 477943) @@ -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:48:44 UTC (rev 477942) +++ 0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch 2023-05-16 00:19:03 UTC (rev 477943) @@ -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); - } - Deleted: 0004-rusticl-Fix-bindgen-invocation.patch =================================================================== --- 0004-rusticl-Fix-bindgen-invocation.patch 2023-05-15 23:48:44 UTC (rev 477942) +++ 0004-rusticl-Fix-bindgen-invocation.patch 2023-05-16 00:19:03 UTC (rev 477943) @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <[email protected]> -Date: Sat, 22 Apr 2023 01:21:20 +0000 -Subject: [PATCH] rusticl: Fix bindgen invocation - -The deprecated `--size_t-is-usize` was removed in bindgen 0.65.1, being -enabled by default. ---- - src/gallium/frontends/rusticl/meson.build | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/gallium/frontends/rusticl/meson.build b/src/gallium/frontends/rusticl/meson.build -index e53b50a9b8b8..9fa024cb8db4 100644 ---- a/src/gallium/frontends/rusticl/meson.build -+++ b/src/gallium/frontends/rusticl/meson.build -@@ -92,7 +92,6 @@ rusticl_gen_args = [ - rusticl_bindgen_args = [ - '--no-convert-floats', - '--use-array-pointers-in-arguments', -- '--size_t-is-usize', - '--default-enum-style', 'rust', - '--with-derive-partialeq', - '--with-derive-eq', Modified: PKGBUILD =================================================================== --- PKGBUILD 2023-05-15 23:48:44 UTC (rev 477942) +++ PKGBUILD 2023-05-16 00:19:03 UTC (rev 477943) @@ -4,38 +4,83 @@ # Contributor: Andreas Radke <[email protected]> pkgbase=mesa -pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa') +pkgname=( + 'vulkan-mesa-layers' + 'opencl-mesa' + 'vulkan-intel' + 'vulkan-radeon' + 'vulkan-swrast' + 'vulkan-virtio' + 'libva-mesa-driver' + 'mesa-vdpau' + 'mesa' +) +pkgver=23.1.0 +pkgrel=1 pkgdesc="An open-source implementation of the OpenGL specification" -pkgver=23.0.3 -pkgrel=1 +url="https://www.mesa3d.org/" arch=('x86_64') -makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm' - 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm' - 'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors' 'libxrandr' - 'systemd' 'valgrind' 'glslang' 'vulkan-icd-loader' 'directx-headers' 'cmake' 'meson') -makedepends+=('python-ply' 'spirv-llvm-translator') # intel-clc dependencies -makedepends+=('rust' 'rust-bindgen' 'spirv-tools') # rusticl dependencies -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 - 0004-rusticl-Fix-bindgen-invocation.patch - LICENSE) -sha256sums=('386362a5d80df3b096636b67f340e1ce67b705b44767d5bdd11d2ed1037192d5' +makedepends=( + 'clang' + 'expat' + 'libdrm' + 'libelf' + 'libglvnd' + 'libunwind' + 'libva' + 'libvdpau' + 'libx11' + 'libxdamage' + 'libxml2' + 'libxrandr' + 'libxshmfence' + 'libxxf86vm' + 'llvm' + 'lm_sensors' + 'systemd' + 'vulkan-icd-loader' + 'wayland' + 'zstd' + + # shared with lib32-mesa + 'clang' + 'cmake' + 'elfutils' + 'glslang' + 'libclc' + 'meson' + 'python-mako' + 'wayland-protocols' + 'xorgproto' + + # valgrind deps + 'valgrind' + + # d3d12 deps + 'directx-headers' + + # gallium-omx deps + 'libomxil-bellagio' + + # gallium-rusticl deps + 'rust' + 'rust-bindgen' + 'spirv-tools' + + # intel-clc deps + 'python-ply' + 'spirv-llvm-translator' +) +source=( + https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig} + LICENSE +) +sha256sums=('a9dde3c76571c4806245a05bda1cceee347c3267127e9e549e4f4e225d92e992' 'SKIP' - 'dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40' - 'c25493de3e5930702acf833d182aeca0895d6a9d9e830dca15c42d130e25c41c' - 'db2be7ae0540d65e77449eda1af66200e27af382183fdcd0c87f99db3520b80a' - 'b3aaccd6ce5c6d417801baafa056d4dfb2a13bf9b480fb980e9af6d0d071cedb' '7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537') -b2sums=('e716d9ddce3da649239c1bc37ec208b9669f316f6b547ca0c69937043f371f0d59ead34fec427297171916045061ddb8783d126f6dec5ece90a0719003fe2c40' +b2sums=('47cc90da14a2c33bb54c7811e99b439fadef81a15b63e535210a329bad5e2524fcb415cc5ed51a8deb65ccc9a341af78f02178c93758f09946978179e494382c' 'SKIP' - '37d1d070c45c85bce8abe3524a3f8d9ac9ed6326a3eec653cd89fffce3630b08eb9b96b11aeb495488230449c99f9b508f73a15e53265d2b159286b0e2dda7cc' - 'ae891637318fdbb8dd58285098af7bea709fb032969a5671eb225a4a471bf9422fac2a6cb0fd188aad96ea5a03eb043f646f5d371dd655a100046adb1c91bd7d' - 'a7312e0931904e659b3d33fcb37b13bcadab943c6040dd2b58ea191db350b50c1ba588e334b7e59b513bd6155797e29dc1bd1a6a35a278b3824d06534f2c9d17' - '58c374ae45f84996a7bf248d0f2dd97fb003f30b2ecda5654561679b90c53830efdff10f990295390cdf8d9d676deeb756b3037c070966a6441670bf8dcb2223' '1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <[email protected]> '946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <[email protected]> @@ -46,65 +91,52 @@ 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/lib - # 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,d3d12 + -D gallium-extra-hud=true + -D gallium-nine=true + -D gallium-omx=bellagio + -D gallium-opencl=icd + -D gallium-rusticl=true + -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=enabled + -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=enabled + -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 - - # Fix build failure with rust-bindgen 0.65.1 - patch -Np1 -i ../0004-rusticl-Fix-bindgen-invocation.patch -} - -build() { # Build only minimal debug info to reduce size CFLAGS+=' -g1' CXXFLAGS+=' -g1' - arch-meson mesa-$pkgver build \ - -D b_ndebug=true \ - -D platforms=x11,wayland \ - -D gallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,i915,iris,crocus,zink,d3d12 \ - -D vulkan-drivers=amd,intel,intel_hasvk,swrast,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=bellagio \ - -D gallium-opencl=icd \ - -D gallium-va=enabled \ - -D gallium-vdpau=enabled \ - -D gallium-xa=enabled \ - -D gallium-rusticl=true \ - -D rust_std=2021 \ - -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 intel-clc=enabled \ - -D microsoft-clc=disabled \ - -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \ - -D valgrind=enabled - - # 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 @@ -124,13 +156,19 @@ package_vulkan-mesa-layers() { pkgdesc="Mesa's Vulkan layers" - depends=('libdrm' 'libxcb' 'wayland' 'python') + depends=( + 'libdrm' + 'libxcb' + 'wayland' + + 'python' + ) conflicts=('vulkan-mesa-layer') replaces=('vulkan-mesa-layer') _install fakeinstall/usr/share/vulkan/explicit_layer.d _install fakeinstall/usr/share/vulkan/implicit_layer.d - _install fakeinstall/usr/lib/libVkLayer_*.so + _install fakeinstall/$_libdir/libVkLayer_*.so _install fakeinstall/usr/bin/mesa-overlay-control.py install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE @@ -138,13 +176,22 @@ package_opencl-mesa() { pkgdesc="OpenCL support with clover and rusticl for mesa drivers" - depends=('libdrm' 'libclc' 'clang' 'expat' 'spirv-llvm-translator') + depends=( + 'clang' + 'expat' + 'libdrm' + 'libelf' + 'zstd' + + 'libclc' + 'spirv-llvm-translator' + ) optdepends=('opencl-headers: headers necessary for OpenCL development') provides=('opencl-driver') _install fakeinstall/etc/OpenCL - _install fakeinstall/usr/lib/lib*OpenCL* - _install fakeinstall/usr/lib/gallium-pipe + _install fakeinstall/$_libdir/lib*OpenCL* + _install fakeinstall/$_libdir/gallium-pipe install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -151,12 +198,19 @@ package_vulkan-intel() { pkgdesc="Intel's Vulkan mesa driver" - depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'systemd-libs') + depends=( + 'libdrm' + 'libx11' + 'libxshmfence' + 'systemd' + 'wayland' + 'zstd' + ) optdepends=('vulkan-mesa-layers: additional vulkan layers') provides=('vulkan-driver') _install fakeinstall/usr/share/vulkan/icd.d/intel_*.json - _install fakeinstall/usr/lib/libvulkan_intel*.so + _install fakeinstall/$_libdir/libvulkan_intel*.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -163,13 +217,22 @@ package_vulkan-radeon() { pkgdesc="Radeon's Vulkan mesa driver" - depends=('wayland' 'libx11' 'libxshmfence' 'libelf' 'libdrm' 'llvm-libs' 'systemd-libs') + depends=( + 'libdrm' + 'libelf' + 'libx11' + 'libxshmfence' + 'llvm-libs' + 'systemd' + 'wayland' + 'zstd' + ) optdepends=('vulkan-mesa-layers: additional vulkan layers') provides=('vulkan-driver') _install fakeinstall/usr/share/drirc.d/00-radv-defaults.conf _install fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json - _install fakeinstall/usr/lib/libvulkan_radeon.so + _install fakeinstall/$_libdir/libvulkan_radeon.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -176,7 +239,16 @@ package_vulkan-swrast() { pkgdesc="Vulkan software rasteriser driver" - depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'llvm-libs' 'systemd-libs' 'libunwind') + depends=( + 'libdrm' + 'libunwind' + 'libx11' + 'libxshmfence' + 'llvm-libs' + 'systemd' + 'wayland' + 'zstd' + ) optdepends=('vulkan-mesa-layers: additional vulkan layers') conflicts=('vulkan-mesa') replaces=('vulkan-mesa') @@ -183,7 +255,7 @@ provides=('vulkan-driver') _install fakeinstall/usr/share/vulkan/icd.d/lvp_icd*.json - _install fakeinstall/usr/lib/libvulkan_lvp.so + _install fakeinstall/$_libdir/libvulkan_lvp.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -190,12 +262,19 @@ package_vulkan-virtio() { pkgdesc="Venus Vulkan mesa driver for Virtual Machines" - depends=('wayland' 'libx11' 'libxshmfence' 'libdrm' 'zstd' 'systemd-libs') + depends=( + 'libdrm' + 'libx11' + 'libxshmfence' + 'systemd' + 'wayland' + 'zstd' + ) optdepends=('vulkan-mesa-layers: additional vulkan layers') provides=('vulkan-driver') _install fakeinstall/usr/share/vulkan/icd.d/virtio_icd*.json - _install fakeinstall/usr/lib/libvulkan_virtio.so + _install fakeinstall/$_libdir/libvulkan_virtio.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -202,11 +281,18 @@ package_libva-mesa-driver() { pkgdesc="VA-API drivers" - depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') - depends+=('libexpat.so') + depends=( + 'expat' + 'libdrm' + 'libelf' + 'libx11' + 'libxshmfence' + 'llvm-libs' + 'zstd' + ) provides=('libva-driver') - _install fakeinstall/usr/lib/dri/*_drv_video.so + _install fakeinstall/$_libdir/dri/*_drv_video.so install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } @@ -213,24 +299,48 @@ package_mesa-vdpau() { pkgdesc="VDPAU drivers" - depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence') - depends+=('libexpat.so') + depends=( + 'expat' + 'libdrm' + 'libelf' + 'libx11' + 'libxshmfence' + 'llvm-libs' + 'zstd' + ) provides=('vdpau-driver') - _install fakeinstall/usr/lib/vdpau + _install fakeinstall/$_libdir/vdpau install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE } package_mesa() { - depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' - 'libomxil-bellagio' 'libunwind' 'llvm-libs' 'lm_sensors' 'libglvnd' - 'zstd' 'vulkan-icd-loader') - depends+=('libsensors.so' 'libexpat.so') - optdepends=('opengl-man-pages: for the OpenGL API man pages' - 'mesa-vdpau: for accelerated video playback' - 'libva-mesa-driver: for accelerated video playback') - provides=('mesa-libgl' 'opengl-driver') + depends=( + 'libdrm' + 'libelf' + 'libglvnd' + 'libunwind' + 'libxdamage' + 'libxshmfence' + 'libxxf86vm' + 'llvm-libs' + 'lm_sensors' + 'vulkan-icd-loader' + 'wayland' + 'zstd' + + 'libomxil-bellagio' + ) + optdepends=( + 'libva-mesa-driver: for accelerated video playback' + 'mesa-vdpau: for accelerated video playback' + 'opengl-man-pages: for the OpenGL API man pages' + ) + provides=( + 'mesa-libgl' + 'opengl-driver' + ) conflicts=('mesa-libgl') replaces=('mesa-libgl') @@ -238,23 +348,23 @@ _install fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast, swr - _install fakeinstall/usr/lib/dri/*_dri.so + _install fakeinstall/$_libdir/dri/*_dri.so - _install fakeinstall/usr/lib/bellagio - _install fakeinstall/usr/lib/d3d - _install fakeinstall/usr/lib/lib{gbm,glapi}.so* - _install fakeinstall/usr/lib/libOSMesa.so* - _install fakeinstall/usr/lib/libxatracker.so* + _install fakeinstall/$_libdir/bellagio + _install fakeinstall/$_libdir/d3d + _install fakeinstall/$_libdir/lib{gbm,glapi}.so* + _install fakeinstall/$_libdir/libOSMesa.so* + _install fakeinstall/$_libdir/libxatracker.so* _install fakeinstall/usr/include - _install fakeinstall/usr/lib/pkgconfig + _install fakeinstall/$_libdir/pkgconfig # libglvnd support - _install fakeinstall/usr/lib/libGLX_mesa.so* - _install fakeinstall/usr/lib/libEGL_mesa.so* + _install fakeinstall/$_libdir/libGLX_mesa.so* + _install fakeinstall/$_libdir/libEGL_mesa.so* # indirect rendering - ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/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
