Added a sample that shows WebGPU running from a web worker #289
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 is a pretty simple sample, but it's covering a subject that I've seen a couple of questions about and I think i's useful to have readily available as a sanity check to ensure this method of using WebGPU works.
The sample itself is basically just a copy of the rotating cube sample, but with all the WebGPU code executing from a worker rather than the main thread.
canvas.transferToOffscreen()
is used to produce anOffscreenCanvas
on the main thread that's then transferred to the worker and used for rendering. The frame loop is managed worker-side withrequestAnimationFrame()
.If we feel it's useful we could set up variants/options for this sample that use the
transferToImageBitmap()
pattern for rendering and a main-thread-driven rendering loop, but I think it's probably OK to have it focus on simply demonstrating that you can use WebGPU in a worker.