MESHTEN LAB•Graphics & Engine
August 12, 2026•Performance Engineering

Reaching 120 FPS at Native 4K: The 3.5 ms That Wasn't Where We Looked

A CPU-bound frame, an 80% sub-bracket, four neutral fixes, and twelve NPCs sharing one 103,440-vertex mesh.

Core Finding:At a fixed 4K camera anchor the frame was CPU-bound: a 10.50 ms wall against a 2.41 ms GPU envelope. Sub-bracketing the CPU prep showed one region, visibility prep, owned 80.0% of it. Four candidate fixes measured neutral or near-neutral before the true owner was found: twelve wandering NPCs whose bounds were re-derived from every vertex each frame. Replacing that with skeleton bone bounds cut visibility prep from 3.23 ms to 0.107 ms.

Visibility prep after bone bounds

3.23 ms to 0.107 ms

After switching to skeleton bone bounds: visibility prep 3.23 ms to 0.107 ms; 4K wall 8.15 to 4.98 ms in one A/B; 4K bench whole-path p50 6.75 ms (about 148 FPS).

Visibility prep share of CPU prep

80.0%

Sub-bracket attribution: visibility prep 3.571 ms = 80.0% of CPU prep, sweeping 2,397 entities to draw 50, with about 0 bounds rebuilt per frame. Sub-brackets summed to 4.409 ms vs a 4.461 ms parent (+0.051 ms residual, +1.14%).

Baseline CPU wall p50

10.499 ms

Baseline native 4K: CPU wall p50 10.499 ms (95.2 FPS); GPU device envelope p50 2.411 ms.

Actual owner

12 wandering NPCs

Actual owner: 12 wandering NPCs sharing one 103,440-vertex rest mesh, causing 12 full bounds walks of about 1.24M vertices per frame.

Empirical Findings Table

CPU-bound native 4K frame, sub-bracket attribution, and the real owner
Telemetry MetricMeasured ValueContext & Observability
Visibility prep after bone bounds3.23 ms to 0.107 msAfter switching to skeleton bone bounds: visibility prep 3.23 ms to 0.107 ms; 4K wall 8.15 to 4.98 ms in one A/B; 4K bench whole-path p50 6.75 ms (about 148 FPS).
Visibility prep share of CPU prep80.0%Sub-bracket attribution: visibility prep 3.571 ms = 80.0% of CPU prep, sweeping 2,397 entities to draw 50, with about 0 bounds rebuilt per frame. Sub-brackets summed to 4.409 ms vs a 4.461 ms parent (+0.051 ms residual, +1.14%).
Baseline CPU wall p5010.499 msBaseline native 4K: CPU wall p50 10.499 ms (95.2 FPS); GPU device envelope p50 2.411 ms.
Actual owner12 wandering NPCsActual owner: 12 wandering NPCs sharing one 103,440-vertex rest mesh, causing 12 full bounds walks of about 1.24M vertices per frame.
Prep bracket share of intercept78%Wall vs render scale fit: T(s) = 5.63 + 4.87·s² ms. The CPU prep bracket was 4.378 ms, 78% of the intercept and 42% of the native wall, and did not change with render scale.
Candidate fixes before the ownerneutralCandidate fixes in sequence: grid pre-filter neutral; static/dynamic partition neutral; flat cache 8%; supplied bounds zero; a static-prop premise falsified.
Bounds containment failures0 failuresContainment check of the new bounds against posed vertices: 0 failures over 14,336 samples.

Engineering Action Directives

  • When the GPU envelope is a fraction of the wall, shader and resolution work cannot close the gap; attributing the CPU side, with a work counter beside each timer, is what turned a single 4 ms number into a specific owner.
  • The counters ruled out the plausible suspects (descriptor churn, vector growth, static rebuilds) but did not name the true cause. That took a further bisection, which suggests attribution narrows the search but does not end it.

Methodology Boundaries & Limits

  • One scene and camera anchor; other anchors with more water, foliage or crowds have different owners.
  • Sub-bracket p95/p99 were unavailable because the telemetry sampler was too sparse at 4K; only window-median p50 is reported.
  • The 3.571 ms and 3.23 ms visibility-prep figures come from different runs and builds and should not be subtracted from each other.
  • Hardware is not recorded in these sources; the GPU in the engine's earlier ladder measurements was an RTX 5080.