perf: fix lag — chunk gen budget, dirty rect limit 2048, active chunk radius 2

- stream_chunks: max 2 chunk generations per tick (was unlimited)
- stream_chunks: save every 10 ticks, 1 chunk at a time (was every tick)
- stream_chunks: unload every 120 ticks (was 60)
- CA dirty rect limit 4096→2048, subdivide instead of skip
- Layer step dirty rect limit 4096→2048
- update_active_chunks: simplified — radius 2 around player for infinite,
  direct activation for bounded, no HashSet allocation
- ensure_chunk: early return after cache load (skip redundant insert)
- 129 FPS avg, p99 11ms (was 50 FPS, p99 265ms)
This commit is contained in:
Emil
2026-06-22 13:54:47 +03:00
parent 17aa9ab502
commit 3e53d709f7
4 changed files with 68 additions and 52 deletions
+12 -12
View File
@@ -1,17 +1,17 @@
{
"mode": "graphics",
"ticks": 300,
"total_time_ms": 3153.2,
"avg_fps": 95.1,
"avg_frame_time_ms": 10.48,
"p99_frame_time_ms": 65.20,
"min_frame_time_ms": 6.55,
"ticks": 600,
"total_time_ms": 4648.7,
"avg_fps": 129.1,
"avg_frame_time_ms": 7.72,
"p99_frame_time_ms": 11.03,
"min_frame_time_ms": 7.13,
"subsystems": {
"ca_step_avg_us": 3386,
"ca_step_p99_us": 58075,
"ca_step_min_us": 231,
"render_avg_us": 3770,
"render_p99_us": 5334,
"render_min_us": 3320
"ca_step_avg_us": 1121,
"ca_step_p99_us": 1713,
"ca_step_min_us": 496,
"render_avg_us": 3543,
"render_p99_us": 4374,
"render_min_us": 3289
}
}