Unity / C# / D3D12
Shader Hitch Pipeline
Unity graphics-state tracing and warmup, with a measured repair for repeated driver checks and full-route evidence from official Boat Attack and URP scenes.
Public source · Draft PR 4; native Boat Attack and URP evidence published; not merged
ENGINEERING CASE STUDY · DRAFT PR
Finding the work behind a half-second stall
Boat Attack exposed an avoidable cost in my warmup receipt path: each repeated environment check rehashed about 127 MB of loaded driver files on the main thread. Reusing the byte-attested snapshot removed that repeated work while retaining identity checks.
The first full byte hash still costs about 574 ms. The diagnostic processes and formal comparison cohorts are separate; these figures do not imply a general scheduler or GPU speedup.
Observe the whole route
The initial warmup arms showed 583–629 ms maximum Update intervals. First-pass P99 alone concealed this regression.
Attribute the overhead
Receipt writing synchronously rehashed four loaded driver DLLs. Native warmup batch timings did not include that extra CPU work.
Retain checks and reuse work
A process-local snapshot preserves byte hashes. Each capture checks device, module and file metadata; changed or failed probes invalidate the snapshot.
Repeat the original workload
Four processes per policy completed the original Boat Attack routes. Both the initial negative cohort and the repaired cohort remain inspectable.
Boat Attack before and after the repair

| Policy | Before repair (ms) | After repair (ms) |
|---|---|---|
| Disabled | 47.089 | 58.353 |
| All at once | 591.826 | 51.737 |
| Scheduled | 629.288 | 57.728 |
| Observed budget | 594.053 | 90.256 |
These are two sequential cohorts with different frozen Players and plans. Caches were retained. The before/after comparison supports a diagnosed overhead repair; the cohorts are not pooled as one unchanged experimental cell.
Inspect all 32 Boat Attack runs
| Cohort | Run | Policy | First-pass P99 (ms) | Whole-run max (ms) |
|---|---|---|---|---|
| Before | 1 | Disabled | 35.448 | 47.089 |
| Before | 2 | All at once | 34.032 | 584.435 |
| Before | 3 | Observed budget | 34.735 | 594.053 |
| Before | 4 | Scheduled | 32.926 | 629.288 |
| Before | 5 | All at once | 32.285 | 583.276 |
| Before | 6 | Scheduled | 36.859 | 584.297 |
| Before | 7 | Disabled | 34.352 | 44.595 |
| Before | 8 | Observed budget | 36.099 | 587.168 |
| Before | 9 | Scheduled | 34.716 | 595.050 |
| Before | 10 | Observed budget | 34.470 | 593.155 |
| Before | 11 | All at once | 36.729 | 585.566 |
| Before | 12 | Disabled | 35.140 | 43.982 |
| Before | 13 | Observed budget | 33.526 | 593.747 |
| Before | 14 | Disabled | 36.984 | 45.609 |
| Before | 15 | Scheduled | 35.673 | 584.487 |
| Before | 16 | All at once | 36.785 | 591.826 |
| After | 1 | Disabled | 40.516 | 58.353 |
| After | 2 | All at once | 37.707 | 49.883 |
| After | 3 | Observed budget | 37.879 | 90.256 |
| After | 4 | Scheduled | 39.266 | 50.172 |
| After | 5 | All at once | 38.459 | 46.435 |
| After | 6 | Scheduled | 39.902 | 57.728 |
| After | 7 | Disabled | 41.849 | 57.134 |
| After | 8 | Observed budget | 39.530 | 59.639 |
| After | 9 | Scheduled | 35.917 | 49.104 |
| After | 10 | Observed budget | 37.744 | 45.781 |
| After | 11 | All at once | 36.532 | 50.225 |
| After | 12 | Disabled | 38.869 | 46.289 |
| After | 13 | Observed budget | 38.189 | 49.239 |
| After | 14 | Disabled | 36.329 | 46.063 |
| After | 15 | Scheduled | 38.987 | 56.373 |
| After | 16 | All at once | 38.269 | 51.737 |
Download original points with full precision and provenance hashes
Four official URP scenes, with the outlier retained
Terminal, Garden, Oasis and Cockpit completed their original timelines in all 16 formal processes. Each policy used the same final Player. Outcomes remain mixed: the observed-budget arm includes an unexplained 381.3446 ms sampled Update interval.

Inspect all 16 URP runs
| Run | Policy | Observer time (s) | Maximum Update (ms) |
|---|---|---|---|
| 1 | Disabled | 264.745125 | 212.1705 |
| 2 | All at once | 264.896429 | 218.3915 |
| 3 | Observed budget | 264.854141 | 217.9709 |
| 4 | Scheduled | 265.136408 | 214.2184 |
| 5 | All at once | 264.579465 | 217.7115 |
| 6 | Scheduled | 264.819980 | 216.0261 |
| 7 | Disabled | 264.827879 | 220.8122 |
| 8 | Observed budget | 265.147337 | 381.3446 |
| 9 | Scheduled | 264.695923 | 217.3337 |
| 10 | Observed budget | 264.916918 | 218.6572 |
| 11 | All at once | 265.009663 | 221.4843 |
| 12 | Disabled | 264.573533 | 220.9166 |
| 13 | Observed budget | 264.792184 | 219.5831 |
| 14 | Disabled | 264.866628 | 217.6925 |
| 15 | Scheduled | 264.678605 | 212.8079 |
| 16 | All at once | 264.669977 | 217.3270 |
Download full-precision points, per-scene values and hardware conditions
What this result establishes
A specific repair to instrumentation overhead, and completed native integration on the recorded Boat Attack and URP routes. Overall scheduling speedup, useful first-draw coverage gains and Megacity acceptance remain unproven.
Windows · Unity 6000.1.0f1 · D3D12 / IL2CPP · AMD Radeon AI PRO R9700 · application, OS and driver caches retained. Figures and points are historical records, separate from this website’s live WebGPU lab.
All published diagnostic timings · Figure and data sources · Choose a role-specific CV
Work and recorded results
- Reduced repeated driver-attestation checks from ~563 ms to 0.27-0.42 ms in native Unity/D3D12 diagnostics; the repaired Boat Attack cohort completed 16/16 full routes. Draft PR; overall scheduler speedup remains unproven.
Scope of the evidence
- Draft PR 4 is not merged. Its published reports retain their own frozen Player, adapter and protocol identities; the current source link is not a claim that all native runs used this exact source revision.
- The initial full driver hash still costs about 574 ms. Reuse checks device, module and file metadata and invalidates changed identities.
- Boat Attack retains both 16-process cohorts (32 total); the repaired cohort recorded no sampled CPU Update interval above 200 ms. The separate URP cohort completed 16 processes across four original scene timelines. These are one Windows D3D12/IL2CPP hardware cell with caches retained, not GPU frame-time or general scheduler-speedup evidence.
- The URP 381.3446 ms interval remains unexplained. Useful first-draw coverage and overall scheduling speedup remain unproven; Megacity Main, six SubScenes and final Player acceptance are incomplete.
- The retained historical 384-object showcase reported cold-reveal P95 35.706 to 4.210 ms and about 20% longer total scheduled warmup; its image and numbers describe a separate historical workload.
Source and evidence
Reviewed source revision: 9c7fc7b75fa7ac1bca2e407821414cf5941e9b8c
Public source at this revision ↗
Current main: 6218483755b40f6fd3742754b9e71c53b74d3bd4. The draft evidence above is separate from this merged version.
- Repeated-check repair and Boat Attack cohorts
- Official URP four-scene full-timeline evidence
- Incomplete Megacity acceptance
- Separate historical showcase conditions
Updated 2026-09-14. CV wording and this page use the same project manifest.