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 1

GPU light-grid binning

compute shader writes a r32uint storage texture per tile

requires: r32uint storage binding

tier 2

2D sprite atlas

rgba8unorm sample + render

requires: base WebGPU

base

screen-space AO accumulation

4× MSAA on rgba16float with resolve

requires: rgba16float MSAA + resolve

tier 1
checking adapter…

relevant markup

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice({
  requiredFeatures: ["texture-formats-tier1", "texture-formats-tier2"]
});

see also