-
Notifications
You must be signed in to change notification settings - Fork 952
Learning wgpu
- wgpu examples, see Running the examples
- extensive wgpu tutorial https://sotrh.github.io/learn-wgpu/
- API docs https://docs.rs/wgpu/latest/wgpu/
- WebGPU specification (which wgpu follows closely) https://www.w3.org/TR/webgpu/
-
wgpu::Device
- All resource creation
- All functions are &self (no mut!)
-
wgpu::Queue
- All gpu work submission
Typically created once on startup, one each. Created with set of Features & Limits, enforced independently of actual capabilities (E.g. texture size/formats, number of bound resources, native extensions, …)
A slightly simplified overview of what you need to set up before rendering a frame.
Round boxes: Temporary desc structs
Cornered boxes: Resources created from a wgpu::Device
Bold: What you deal with on a per-frame basis
BindGroupLayoutEntry have (mostly) corresponding types to BindingResources.
Compute Pipelines follow a similar pattern.
A simplified overview of what you need to do to draw a frame.
Full lines: Needed for creation
Dashed lines: Providing provided as "information"
Finish consumes a CommandEncoder
Submit consumes a CommandBuffer
The TextureView
on RenderPassColorAttachment
could be from a Surface
, a special target for the final output!