Make output buffer copying optional#423
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the fidget-wgpu voxel rendering API to make the GPU→CPU readback/copy step optional, enabling tighter integration with GPU-only pipelines by allowing callers to skip producing a mapped CPU buffer.
Changes:
- Split “render buffers” from “readback buffers” by introducing
ImageReadBufferand addingContext::image_buffer(&Buffers). - Update
Context::{run, run_with_vars, run_async, submit, map_image}to take&Buffersplus an explicit&mut ImageReadBuffer(orOption<&mut ImageReadBuffer>forsubmit*), so output copying can be omitted. - Adjust buffer sizing checks in
GenericFlexBufferand update tests/demo CLI to the new calling pattern.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| fidget/tests/voxel_render.rs | Updates voxel rendering tests to use Buffers + ImageReadBuffer. |
| fidget-wgpu/src/voxel.rs | Introduces ImageReadBuffer, makes submit/readback optional, and updates mapping/readback flow. |
| fidget-wgpu/src/lib.rs | Refactors GenericFlexBuffer size checking to validate from item counts consistently. |
| demos/cli/src/main.rs | Updates CLI demo to use submit(..., Some(&mut out), ...) and map from ImageReadBuffer. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
This allows us to more tightly integrate with complex GPU pipelines.