[mesa] Update to 26.2.3, add lavapipe feature - #54067
Ashwin Bhat (ashwinbhat) wants to merge 2 commits into
Conversation
@microsoft-github-policy-service agree company="Autodesk Inc" |
There was a problem hiding this comment.
There are build failures caused by the new lavapipe feature. Would you consider separating the PRs into an update and a second one to add the new feature?
Here's AI analysis of the CI errors, I created a PR in your fork with GPT-generated patches that fix some of these issues.
1. Lavapipe fails Windows Release builds
The x64 dynamic, x64 release-only, and x64 static-library/dynamic-CRT CI variants all fail in:
src/gallium/frontends/lavapipe/nir/lvp_nir_lower_cooperative_matrix.c
MSVC emits C4189 for three src_desc locals that are consumed only by assert; Mesa promotes warnings to errors, and NDEBUG removes those uses in Release. CI records the failures at upstream lines 457, 506, and 565. Debug gets past this source file, which explains the configuration-specific behavior.
2. Every Android configuration uses a removed Gallium driver value
The submitted port passes:
-Dgallium-drivers=['swrast']
Mesa 26.2.3's gallium-drivers choices no longer contain swrast; the software Gallium choices are softpipe and llvmpipe. (swrast remains the correct name for the Lavapipe Vulkan driver, so -Dvulkan-drivers=['swrast'] must not be changed.)
All x64, arm64, and arm-neon Android jobs fail at Meson option parsing before compilation. The patch selects softpipe without the llvm feature and llvmpipe with it. The choices were verified directly in Mesa 26.2.3's meson.options.
3. The submitted Lavapipe usage is wrong for a supported architecture
The new feature supports both x64 and x86, but ports/mesa/lavapipe-usage hard-codes lvp_icd.x86_64.json. Mesa derives that suffix from host_machine.cpu(), so the file name differs on x86.
Because vcpkg already separates architectures by triplet prefix, the patch configures -Dvulkan-manifest-per-architecture=false and documents the stable lvp_icd.json path for both supported architectures.
4. Version metadata and repository formatting are stale
The version validator reports that the submitted Mesa version entry records tree 172ea62fe079936a707434053571a84238445dc6, while the submitted port directory is 026c59b9c767af590cd978bcfd74fa06d8039b83.
The CI formatting artifact also changes:
- dependency and feature order in
ports/mesa/vcpkg.json; - the Mesa entries in
scripts/ci.feature.baseline.txt.
The patch runs the repository formatter and regenerates versions/m-/mesa.json after all port changes.
5. Installed licensing is incomplete
The submitted manifest declares MIT AND BSL-1.0 AND SGI-B-2.0, but the port installs only docs/license.rst, which says to consult the actual texts in licenses/. Mesa also compiles its local BLAKE3 1.8.2 copy from src/util/blake3 into libmesa_util; that copy is available under Apache-2.0 as an alternative to CC0.
Update mesa to 26.2.3
add lavapipe feature that builds Mesa's software Vulkan driver (-Dvulkan-drivers=['swrast']).
Lavapipe for Vulkan is useful on environments without a Vulkan-capable GPU for CI, headless rendering, and testing.
./vcpkg x-add-version --alland committing the result.