mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
Structure
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 and are reftested against the screenshot in the directory.
Feature matrix
| 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 | ⭐ | |||||||||
| comparison samplers | ⭐ | |||||||||
| subresource views | ⭐ | ⭐ | ||||||||
| cubemaps | ⭐ | |||||||||
| multisampling | ⭐ | |||||||||
| off-screen rendering | ⭐ | ⭐ | ⭐ | |||||||
| stencil testing | ||||||||||
| depth testing | ⭐ | ⭐ | ⭐ | |||||||
| depth biasing | ⭐ | |||||||||
| read-only depth | ⭐ | |||||||||
| blending | ⭐ | ⭐ | ⭐ | |||||||
| render bundles | ⭐ | ⭐ | ||||||||
| compute passes | ⭐ | |||||||||
| error scopes | ⭐ | |||||||||
| optional extensions | ⭐ | |||||||||
| - SPIR-V shaders | ||||||||||
| - binding array | ⭐ | |||||||||
| - push constants | ||||||||||
| - depth clamping | ⭐ | |||||||||
| - compressed textures | ⭐ | |||||||||
| - polygon mode | ⭐ | |||||||||
| - queries | ⭐ | |||||||||
| - conservative rasterization | ⭐ | |||||||||
| integrations | ||||||||||
| - staging belt | ⭐ | |||||||||
| - typed arena | ||||||||||
| - obj loading | ⭐ |
Hacking
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>