D779 - A draw with no colour buffer bound writes depth alone
Status: decided Date: 2026-10-09
known_by: published (gfx103.json
ColorFormat COLOR_INVALID = 0; radeonsi writes
it for an empty colour slot, si_state.c:2720-2724)
A submission whose CB_COLOR0_INFO.FORMAT is
COLOR_INVALID has no colour buffer bound. Its draws run
with their colour going nowhere: the drawer keeps their depth, which is
never written back because the guest's depth tiling is unmeasured. The
colour the drawer produces is discarded. Any frame pending for a target
is written back first. The drawer's colour is then forgotten, so the
next colour draw starts from what guest memory holds.
Why: PPSA02664 draws depth passes with colour target
zero left COLOR_INVALID. They were refused as a target no
frame can be written back to, and nothing after them retired. Drawing
them against a target of their own extent would put depth-pass colour
where a frame is kept.