WebGPURenderer: Render bundle work with multiple render targets #31906
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.
Currently, Three.js supports the WebGPU Render Bundle API through its
BundleGroupclass. It also supports rendering to multiple render targets on WebGPU.However, there seems to be no way to use both at the same time. We get a WebGPU error like
Attachment state of [RenderPipeline "renderPipeline_NodeMaterial_17"] is not compatible with [RenderBundleEncoder "renderBundleEncoder"]., because the render bundle encoder only contains a single target.In this pull request, I attempt to add support to multiple render targets when using render bundle, by including all targets in the render bundle encoder.
With this fix, it indeed becomes possible to use these features together. Still, I don't know if this is the best way to do it. I welcome feedback/discussion from someone more familiar with this part of the code.
This contribution is funded by Trimble