tag

#perf-drop

10 items (10 fixes)

fixes
26.07.08e
"A frame-budget method for stylized s&box scenes"

Census tris × instances before decimating; prefer BoxCollider over ModelCollider for decorative props.

26.07.08e
"Chunked mesh generation is math-bound, not draw-call-bound"

For a chunked runtime-mesh generator, REGEN (single-threaded generation CPU) is the binding resource, not fps or draw calls. Quartering the chunk count produces zero regen change; the lever is threading the passes.

26.07.08e
"Collider choice that actually costs you"

BoxCollider is cheap and follows WorldScale; Capsule/ModelCollider don't scale with WorldScale and ModelCollider is costly on clutter.

26.07.08e
"Decimating AI meshes without wrecking them"

Census tris × instances first: silhouette fails before UVs; inject usemtl after scripted OBJ export.

26.07.08e
"Editor auto-exposure makes screenshot comparisons report false positives"

Two screenshots of byte-identical geometry differ by tens of percent because editor auto-exposure adapts over wall-clock frames: settle the viewport and exposure-normalize before comparing.

26.07.22
"Editor play mode is hard-capped at 60 fps: cvars won't lift it"

Editor-embedded play mode pins at exactly 60 fps regardless of cvars. The cap is the compositor's vsync on the editor window, not the engine frame sync. Under the cap even the p50 pins to 16.67 ms: read the tail (p99, worst frame, over-budget count), not the median.

26.07.22
"Editor vsync hides physics cost: time the step directly"

Frame fps pins at 60 in the editor regardless of physics load: implement IScenePhysicsEvents.PrePhysicsStep/PostPhysicsStep with a Stopwatch to get the true, vsync-free CPU cost of the solver step.

26.07.08e
"Heavy work without frame hitches"

GameTask.RunInThreadAsync for parse/math; main thread only for engine objects; Yield every N items for loading UI.

26.07.08e
"Keep quaternion keys hemisphere-continuous"

Converting euler poses per-key can land on q vs -q. The interpolation takes a violent 360-degree detour. Negate the quat if dot(prev, new) < 0.

26.07.08e
"Single-tick ground-check flicker machine-guns the landing squash"

A trace-based ground controller flickers Ground/Air on seams, re-firing landing VFX mid-run. Require minimum air time before a JustLanded counts.

Want to know when new guides or fixes drop? Join the community to help build this out. Report gotchas, flag outdated fixes, or just lurk.

Join the Discord