mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
6.6 KiB
6.6 KiB
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 | stencil-triangles |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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>