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

Reply via email to