A strip advances the three-vertex window on every kick, and the two entries
that stay live were being copied to do it. Address the window through a
rolling head instead, over four slots so the wrap is a mask, and the slide
becomes a single index update. The fan origin is the oldest entry, so fan
maintenance keeps the head where it is and overwrites the middle vertex.
shift_vertex_queue drops from seven stores to two under both compilers, and a
kick from eleven to six under gcc and twelve to seven under clang. The harness
measures a further -12% to -16% per vertex on strips over the whole-word kick,
on both compilers, with no case regressing.
The equivalence lane drives both queue shapes from one script across all seven
topologies, topology changes mid-stream, ADC skips and the invalid-kick flush,
and requires an identical primitive stream.
Covers the GSInterface vertex queue and the two kick bodies. The oracle pins
any candidate position build byte-for-byte against the scalar one across
randomised register state and offset extremes; the equivalence lane drives
both queue shapes through list, strip and fan topologies and requires the same
(position, attribute) triples to reach drawing_kick_append; the bench reports
ns/vertex per candidate.
build.sh runs all three under g++ and clang++ in turn. Both are required: the
hand-SIMD attribute build measures -40% on g++ and +16..76% on clang++, so a
number from one compiler decides nothing here.