Repository navigation
Add headless / offscreen mode to Vulkan backend and render tests - #274
Merged
Merged
Conversation
Vulkan backend: - Extract frame output abstraction (FrameOutput) from Swapchain and move per-frame fences into FrameSync, so that the backend can run without a surface / swapchain - Add HeadlessOutput, which blits the screen pass output into an image and reads it back via per-frame readback buffers (sync or async) - Make surface, present queue and swapchain extension optional - Track validation layer errors in Instance (used by render tests) - Add VkSetup.preferredDeviceType, forceDeviceName substring matching - Fix device selection falling back to first device instead of first suitable device, skip resolve image with numSamples = 1, fix source layout restore in ImageVk.copyFromImage Headless window subsystem (platform/headless): - HeadlessWindowSubsystem with Manual (tests) and Continuous (embedding) frame loops, frame capture / frame listeners, optional fixed time step - Thread-safe resize and input injection (HeadlessWindow, HeadlessInput) - Fails with a clear message if used with a non-Vulkan backend Render tests: - Headless render test harness comparing frames against reference images, failing on validation errors - Separate renderTest gradle task (not part of build / desktopTest) - Manually triggered GitHub workflow running tests on lavapipe Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Vulkan backend:
Headless window subsystem (platform/headless):
Render tests: