Source: mesa
Version: 26.2.1-4
Severity: normal
Tags: patch, arch
Dear maintainer,
The Debian Mesa packaging enables the NVK Vulkan driver on ppc64, but NVK does
not build successfully on this architecture.
The failure is reproducible with both Mesa 26.1 and Mesa 26.2 when NVK is
enabled for ppc64.
During the Mesa build, generation of the NVK OpenCL/SPIR-V module fails in
mesa_clc:
FAILED: src/nouveau/vulkan/nvkcl.spv
(file=input,line=0,column=0,index=6): Invalid extended instruction import
'nepOs.LC'
(file=input,line=0,column=0,index=0): Failed to build module 1 out of 2.
The appropriate solution is to exclude ppc64 from the architectures on which
Debian enables NVK.
I changed debian/rules so that NVK_ARCHS is:
NVK_ARCHS = amd64 arm64 armhf i386 riscv64 x32
with ppc64 removed.
I have tested this change on real ppc64 hardware (PowerPC 970/iMac G5) with
Mesa 26.2.1. The complete Debian package build succeeds with NVK excluded from
ppc64.
This does not disable Vulkan support generally on ppc64. The other Vulkan
drivers remain enabled, and mesa-vulkan-drivers is still built for ppc64.
The patch also removes the ppc64-specific code in regen_control which
previously deleted the mesa-vulkan-drivers package from debian/control.
The attached patch is:
mesa-nvk-ppc64.patch
Please exclude ppc64 from NVK_ARCHS in the Debian Mesa packaging.
Best regards,
Jeroen Diederen
-- System Information:
Debian Release: forky/sid
APT prefers unreleased
APT policy: (500, 'unreleased'), (500, 'unstable')
Architecture: ppc64
Kernel: Linux 7.1.12+deb14-powerpc64 (SMP w/1 CPU thread; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
--- a/debian/rules
+++ b/debian/rules
@@ -53,7 +53,7 @@
LLVM_ARCHS = amd64 arm64 armhf i386 loong64 powerpc ppc64 ppc64el riscv64
s390x sparc64 x32
RUSTICL_ARCHS = amd64 arm64 armhf i386 loong64 ppc64el riscv64 x32
-NVK_ARCHS = amd64 arm64 armhf i386 ppc64 riscv64 x32
+NVK_ARCHS = amd64 arm64 armhf i386 riscv64 x32
VALGRIND_ARCHS = amd64 arm64 armhf i386 powerpc ppc64 ppc64el riscv64 s390x
# hurd doesn't do direct rendering
@@ -316,6 +316,3 @@
-e"s,@NVK_ARCHS@,$(NVK_ARCHS),g" \
-e"s,@VALGRIND_ARCHS@,$(VALGRIND_ARCHS),g" \
debian/control.in > debian/control
- if [ "$(DEB_HOST_ARCH)" = "ppc64" ]; then \
- sed -i '/^Package: mesa-vulkan-drivers$$/,/^$$/d'
debian/control; \
- fi