Skip to content

ci(audience): swap llvmpipe -> lavapipe (Vulkan) for playmode-linux#758

Closed
ImmutableJeffrey wants to merge 3 commits into
chore/sdk-318-linux-playmode-xvfbfrom
chore/audience-linux-lavapipe-vulkan
Closed

ci(audience): swap llvmpipe -> lavapipe (Vulkan) for playmode-linux#758
ImmutableJeffrey wants to merge 3 commits into
chore/sdk-318-linux-playmode-xvfbfrom
chore/audience-linux-lavapipe-vulkan

Conversation

@ImmutableJeffrey

Copy link
Copy Markdown
Collaborator

Summary

  • Stacks on top of chore/sdk-318-linux-playmode-xvfb. Diff is lavapipe-only.
  • Installs mesa-vulkan-drivers and vulkan-tools inside the unityci/editor container before the xvfb-driven Unity run.
  • Sets MESA_VK_DEVICE_SELECT=lvp so multiple Vulkan ICDs do not race.
  • Drops -force-glcore from the Unity command line so Unity 6 picks its native Vulkan path.
  • Uploads vulkaninfo.txt as a CI artifact for post-run device confirmation.

Experiment success criteria (from spec)

  • Unity 6 Mono cell wall time under 15 min: declare win, propose merge into SDK-318 (and onward to main).
  • Unity 6 Mono cell wall time 15 to 22 min: marginal; close PR with measurements.
  • Unity 6 Mono cell wall time above 22 min or any test failure not present on the SDK-318 baseline: regression; close PR with findings.
  • Unity 2021.3 cells stay at or below their current 4 min on the SDK-318 baseline.

Test plan

  • All 6 playmode-linux cells run on this PR.
  • vulkaninfo.txt artifact present on at least one cell and shows llvmpipe (LLVM ...) as the selected device.
  • Compare cell wall times against the most recent SDK-318 same-day run; record numbers in PR comment.

🤖 Generated with Claude Code

@ImmutableJeffrey

Copy link
Copy Markdown
Collaborator Author

Closing without merging.

Findings from this branch's run:

  • Lavapipe was installed inside the container but Unity did not pick it up. Cell logs show Renderer: llvmpipe (LLVM 15.0.7, 256 bits), meaning Unity 6's Vulkan init failed and fell back to OpenGL on llvmpipe.
  • Likely cause: Vulkan ICD path inside the unityci/editor container differs from Unity's search path. MESA_VK_DEVICE_SELECT=lvp only matters once a Vulkan loader actually finds an ICD; on this image it never did.
  • Wall time on Unity 6 cells was within margin of the SDK-318 baseline (28 to 30 min vs 27 min). Tests passed/failed identically to baseline (39 passed, 1 failed, the 1 failure being SDK-341 which is tracked separately).
  • Even if the ICD discovery were fixed, software Vulkan still rasterises on CPU; the floor is the same as software OpenGL, and the speedup we needed is unlikely.

Not pursuing further. xvfb + llvmpipe on chore/sdk-318-linux-playmode-xvfb remains the Linux mechanism.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant