For the simplest examples without using any helping code (see framework.rs here), check out:
hellofor printing adapter informationhello-trianglefor graphics and presentationhello-computefor pure computing
Notably, capture example shows rendering without a surface/window. It reads back the contents and saves them to a file.
All the examples use WGSL shaders unless specified otherwise.
All framework-based examples render to the window.
| Feature | boids | bunnymark | cube | mipmap | msaa-line | shadow | skybox | texture-arrays | water | conservative-raster |
|---|---|---|---|---|---|---|---|---|---|---|
| vertex attributes | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | |||
| instancing | ⭐ | |||||||||
| lines and points | ⭐ | ⭐ | ||||||||
| dynamic buffer offsets | ⭐ | ⭐ | ||||||||
| implicit layout | ⭐ | |||||||||
| sampled color textures | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ⭐ | ||
| storage textures | ⭐ | |||||||||
| binding array | ⭐ | |||||||||
| comparison samplers | ⭐ | |||||||||
| subresource views | ⭐ | ⭐ | ||||||||
| cubemaps | ⭐ | |||||||||
| multisampling | ⭐ | |||||||||
| off-screen rendering | ⭐ | ⭐ | ⭐ | |||||||
| stencil testing | ||||||||||
| depth testing | ⭐ | ⭐ | ⭐ | |||||||
| depth biasing | ⭐ | |||||||||
| read-only depth | ⭐ | |||||||||
| blending | ⭐ | ⭐ | ⭐ | |||||||
| render bundles | ⭐ | ⭐ | ||||||||
| compute passes | ⭐ | |||||||||
| optional extensions | ⭐ | |||||||||
| - SPIR-V shaders | ⭐ | |||||||||
| - binding indexing | ⭐ | |||||||||
| - push constants | ⭐ | |||||||||
| - depth clamping | ⭐ | |||||||||
| - compressed textures | ⭐ | |||||||||
| - polygon mode | ⭐ | |||||||||
| - queries | ⭐ | |||||||||
| - conservative rasterization | ⭐ | |||||||||
| integrations | ||||||||||
| - staging belt | ||||||||||
| - typed arena | ||||||||||
| - obj loading | ⭐ |
You can record an API trace any of the framework-based examples by starting them as:
mkdir -p trace && WGPU_TRACE=trace cargo run --features trace --example <example-name>