Repository navigation
fix(godot-ref): render the Godot reference on lavapipe on every host - #1119
Merged
Merged
Conversation
The comparison browser picked lavapipe, but `pnpm ref:godot` spawned Godot with no Vulkan driver filter. On a host with a GPU, Godot drew on the GPU while the browser drew on lavapipe, so the two sides of a comparison rasterised on different drivers. scripts/godot-ref/lavapipe.mjs now holds one setting, VK_LOADER_DRIVERS_SELECT='*lvp*', that the browser launch and the Godot spawn both pass. The bootstrap also reports the device that drew the frame, and ref:godot refuses a Vulkan frame from any device but llvmpipe, as the browser side does. Measured with Godot 4.6.3 (7d41c59c4) on a host with an NVIDIA GTX 1650, rendered on a virtual kwin_wayland compositor: - with no filter: Using Device #0: NVIDIA GeForce GTX 1650 - with the filter: Using Device #0: llvmpipe (LLVM 22.1.8, 256 bits)
There was a problem hiding this comment.
Claude review
Important: 0. Nit: 0. Pre-existing: 0. I found no defect that clears the REVIEW.md bar. The lavapipe loader setting reaches both the Godot spawn and the browser launch from one shared constant. The new device check refuses only a Vulkan frame drawn by a device other than llvmpipe, and it passes an OpenGL frame and a missing report. I read the diff only. I did not run any command or test.
Deploying textscene-inspector with
|
| Latest commit: |
e51e111
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://4bf64628.textscene-inspector.pages.dev |
| Branch Preview URL: | https://godot-ref-lavapipe.textscene-inspector.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
pnpm ref:godotnow renders on lavapipe on every host, the same Vulkan driver as the comparison browser it is measured against.The defect
The comparison browser picks lavapipe.
pnpm ref:godotspawned Godot with no Vulkan driver filter. On a host with a GPU, Godot drew on the GPU while the browser drew on lavapipe, so the two sides of a comparison rasterised on different drivers.The fix
scripts/godot-ref/lavapipe.mjsholds one setting,VK_LOADER_DRIVERS_SELECT='*lvp*'. The browser launch and the Godot spawn both pass it, so they cannot drift apart.RenderingServer.get_video_adapter_name()).ref:godotrefuses a Vulkan frame from any device but llvmpipe, as the browser side already refuses any renderer but llvmpipe. An OpenGL frame passes, because Xvfb draws it in software on every host.Verification
Godot 4.6.3 (
7d41c59c4, the commit the repo's ClassDB tables come from), on a host with an NVIDIA GTX 1650 and an Intel UHD 630. Godot rendered against a virtualkwin_waylandcompositor:Using Device #0: NVIDIA - NVIDIA GeForce GTX 1650.Using Device #0: Unknown - llvmpipe (LLVM 22.1.8, 256 bits).The unit tests pass:
run.test.mjsand the showcase launch tests, 101 passed.Not run: a full
pnpm ref:godotrender and the 15 engine tests inrun.test.mjs. They needxvfb-run, which this host does not have.Performance
No production code changes.
ref:godotis a developer tool. On a host with a GPU, its renders now take lavapipe's software speed, which is the speed a host with no GPU always had.