D853 - A four-channel 32-bit float target is drawn and written back as it is held

Status: decided Date: 2026-10-14

A colour target whose CB_COLOR0_INFO names COLOR_32_32_32_32, NUMBER_FLOAT and SWAP_STD holds four 32-bit floats a texel, red first, sixteen bytes. It lies by its own layout: for 64KB_R_X, 64 x 64-texel blocks with addrlib's 128-bpp equation (tiling.rs RX_BPP16_X_BITS). It is drawn through a Vulkan R32G32B32A32_SFLOAT attachment of the same format, sixteen bytes a texel in its image and buffers, so seeding and write-back move the guest's four words a texel untouched (D773, D845). Any other swap stays refused.

Why: COLOR_32_32_32_32 is what Mesa targets a four-channel 32-bit format at (ac_formats.c 529), and SWAP_STD on four channels is XYZW (612). Grand Theft Auto V draws into a 1 x 1 target of it, past its 3840 x 2160 integer one (D852).

Open: Vulkan does not require blending on R32G32B32A32_SFLOAT, as it does not on D844's R32_SFLOAT. The desktop hosts orbistoun runs on offer it; a host without it would fail the pipeline rather than draw without blending.

Rejected: