D729 - A stream's draws run in segments between its memory work

Status: decided Date: 2026-09-27

Memory work between two draws splits a stream's draws into segments, amending D712. The command processor carries each segment out in order: the memory work before it on the CPU, then its draws together on the device, prepared from the stream up to its last draw with every earlier draw replaced by a NOP, so every register write still reaches them. A fence between segments retires only after the draws before it ran.

Why: radeonsi separates the draws into different targets of one stream with end-of-pipe fences and prefetches (Craft's texture clears), which D712 left unexecuted. Silencing the other segments' draws keeps each segment's register state exactly the stream's, with no state carried by hand.

Rejected: