demo · v142
Render-target Matrix
Which formats can you bind as render-attachment? blend? multisample? resolve? storage-bind? In base WebGPU it's a small set. Tier 1 adds HDR floats. Tier 2 adds the storage-bind permissions Unreal/Unity needed for compute-shader passes. The matrix below shows each format × capability for the adapter you're on.
not supported
base WebGPU
tier 1
tier 2
| format | render attachment | blend | multisample | resolve | storage binding |
|---|
real-world workloads
HDR tonemap pass
render scene at rgba16float → tonemap pass blends back to bgra8unorm
requires: rgba16float render-attachment + blend
tier 1GPU light-grid binning
compute shader writes a r32uint storage texture per tile
requires: r32uint storage binding
tier 22D sprite atlas
rgba8unorm sample + render
requires: base WebGPU
basescreen-space AO accumulation
4× MSAA on rgba16float with resolve
requires: rgba16float MSAA + resolve
tier 1checking adapter…
relevant markup
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice({
requiredFeatures: ["texture-formats-tier1", "texture-formats-tier2"]
});
see also
- Texture formats tier1/tier2 — feature index
- Format Tiers
- HDR Gradient: float16 vs 8-bit
- Spec