Five Optimizations That Measured Flat
Correct, byte-identical changes that did not move the frame, and why we record them anyway.
Fence sync vs queue drain
9.52 ms vs 9.45 ms
Fence sync replacing a per-frame queue drain: 9.52 ms vs 9.45 ms mean before (240 frames), recorded as flat.
Skipping redundant descriptor writes
9.35 ms skip vs 9.41 ms
Skipping redundant descriptor writes: 9.35 ms skip vs 9.41 ms forced writes (240 frames), recorded as flat; the scene was present-bound, not descriptor-bound.
Skipping shadow depth re-record
19.25 ms vs 19.34 ms
Skipping the shadow depth re-record on unchanged inputs: 19.25 ms vs 19.34 ms (60 frames). The plan had estimated 440 ms of savings, but that estimate predated an earlier fix.
Static-caster bounds cache
about 0.17 ms
Static-caster bounds cache for the shadow fit: about 0.17 ms whole-frame gain against an attributed ~3 ms. The cache reached steady state (2384 static, 12 dynamic casters, 0 rebuilds), but the 3.24 ms union cost was entirely the 12 moving NPCs' per-vertex walks, which no static cache can remove.
Empirical Findings Table
Five correct optimizations that measured flat on whole-frame time| Telemetry Metric | Measured Value | Context & Observability |
|---|---|---|
| Fence sync vs queue drain | 9.52 ms vs 9.45 ms | Fence sync replacing a per-frame queue drain: 9.52 ms vs 9.45 ms mean before (240 frames), recorded as flat. |
| Skipping redundant descriptor writes | 9.35 ms skip vs 9.41 ms | Skipping redundant descriptor writes: 9.35 ms skip vs 9.41 ms forced writes (240 frames), recorded as flat; the scene was present-bound, not descriptor-bound. |
| Skipping shadow depth re-record | 19.25 ms vs 19.34 ms | Skipping the shadow depth re-record on unchanged inputs: 19.25 ms vs 19.34 ms (60 frames). The plan had estimated 440 ms of savings, but that estimate predated an earlier fix. |
| Static-caster bounds cache | about 0.17 ms | Static-caster bounds cache for the shadow fit: about 0.17 ms whole-frame gain against an attributed ~3 ms. The cache reached steady state (2384 static, 12 dynamic casters, 0 rebuilds), but the 3.24 ms union cost was entirely the 12 moving NPCs' per-vertex walks, which no static cache can remove. |
| Skipping dead uniform writes | 371 to 48 | Skipping dead per-member uniform writes in crowd batches: writes fell from 371 to 48 at N=1024, but whole-frame time moved 27.06 to 26.70 ms (1024) and 7.49 to 7.47 ms (256), within noise. The earlier recon estimate for this bracket was about a 1000x over-estimate; its actual cost was about 0.02 ms. |
Engineering Action Directives
- A profile that attributes cost to a code region is a hypothesis, not a measurement of what removing that region will save. In two of these five, the region was right but the reason it was expensive was wrong, and only a whole-frame A/B showed it.
- Keeping flat results in the record, with the switch that reproduces them, seems to prevent the same idea from being re-proposed later as an untested win.
Methodology Boundaries & Limits
- Small run counts (60 to 240 frames) and mean-only statistics for most rows; differences of 0.05 to 0.1 ms are inside the run-to-run noise we observed, so none of these rows supports a claim of a small gain or a small loss.
- Each null is specific to the scene at that commit. Several changes were kept because they would matter in heavier scenes, which was not measured here.