WebGPURenderer: Add ReadbackBuffer as parameter#33315
Closed
sunag wants to merge 4 commits intomrdoob:devfrom
Closed
WebGPURenderer: Add ReadbackBuffer as parameter#33315sunag wants to merge 4 commits intomrdoob:devfrom
ReadbackBuffer as parameter#33315sunag wants to merge 4 commits intomrdoob:devfrom
Conversation
📦 Bundle sizeFull ESM build, minified and gzipped.
🌳 Bundle size after tree-shakingMinimal build including a renderer, camera, empty scene, and dependencies.
|
Collaborator
Author
|
Closing in favor of #33322 |
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.
Fixes #33281
Description
Add
ReadbackBufferas a parameter; this should help share the GPU buffer between attributes.Function signature
Single function signature.
Simple usage
The same readback buffer will be used for all subsequent requests if you use the simple method
await renderer.getArrayBufferAsync(attribute); you can useattribute.dispose()to discard the readback buffer.Obtain multiple data from the same readback asynchronously
To obtain fractions of the same buffer in parallel, it will be necessary to use instances of
ReadbackBuffer. If the dev does not use them, they will receive an alert with instructions.Note: It will only appear if it uses the same
ReadBufferconcurrently.Notes
Based on previous feedback, I am using
slice()to clone theArrayBufferand then discarding the mapped one; this also allowed me to remove the need for theReadbackBuffer.release()method, making the API simpler./cc @gkjohnson