One multisampled render target writes beauty and normal attachments. The resolved color textures feed the preview and async readback; depth has its own resolve policy.
Initializing-
Creating the multisampled attachment matrix.
backend
-
target samples
-
draw calls
-
view
-
Resolve matrixtarget rebuild
Target ownershipwaiting
size
-
active samples
-
color count
-
depth resolve
-
The target owns two color attachments and one depth texture.
Beautytexture 0 / output
-
readbacks
0
pixel
-
Normaltexture 1
-
readbacks
0
pixel
-
Depthdepth texture
-
preview
linear
color API
not read
Timing and readbackwaiting
CPU frames
-
CPU avg
-
CPU p95
-
readbacks
0
last read
-
bytes/pixel
-
Color readback addresses a resolved attachment by texture index: 0 for beauty, 1 for normal.
Scene -> MSAA { beauty, normal } + depth -> resolve -> preview / readback
With 4 samples, the color textures remain the post-resolve outputs. Turning depth resolve off is intentionally a different contract: WebGL leaves the depth texture untouched; WebGPU samples multisampled depth directly in this pinned version.