From 6d0cdfe0f549d3b7fd1f5026d3448065c1e6e846 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Fri, 3 Jul 2026 12:55:29 -0400 Subject: [PATCH] ci: fix lavapipe adapter discovery in the GPU Render job (F-014) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first run showed lavapipe installed and visible to vulkaninfo (DRIVER_ID_MESA_LLVMPIPE), but the render tests still found no wgpu adapter and — correctly — hard-failed under PMACS_REQUIRE_GPU. Cause: VK_ICD_FILENAMES pinned an ICD path that doesn't match the runner, which overrides the loader's default discovery and hides every ICD. Drop it and rely on default discovery (which vulkaninfo uses); also `ls` the icd.d dir for future debugging. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_014TXbAwk27agwhrNNrhLi2U --- .github/workflows/ci.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index caa3789..4bce42f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,14 +57,18 @@ jobs: sudo apt-get update sudo apt-get install -y mesa-vulkan-drivers vulkan-tools - name: Confirm a Vulkan adapter is present - run: vulkaninfo --summary || true + run: | + ls -la /usr/share/vulkan/icd.d/ || true + vulkaninfo --summary || true - name: pmacs-gpu tests (render harness included) env: - # Force the Vulkan backend + lavapipe ICD so wgpu finds the - # software adapter; PMACS_REQUIRE_GPU turns a missing adapter - # into a hard failure so a broken setup can't pass as skipped. + # Force the Vulkan backend so wgpu uses lavapipe. Do NOT set + # VK_ICD_FILENAMES — the loader's default ICD discovery already + # finds lavapipe (vulkaninfo above proves it), and pinning a + # path that doesn't match the runner hides every ICD. The + # PMACS_REQUIRE_GPU guard turns a missing adapter into a hard + # failure so a broken setup can't pass as a silent skip. WGPU_BACKEND: vulkan - VK_ICD_FILENAMES: /usr/share/vulkan/icd.d/lvp_icd.x86_64.json LIBGL_ALWAYS_SOFTWARE: "1" PMACS_REQUIRE_GPU: "1" run: cargo test -p pmacs-gpu -- --test-threads=1