-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
high-priorityHigh priority itemHigh priority itemiso-2.0-experimentIsometric Rendering 2.0 clean-sheet experimentIsometric Rendering 2.0 clean-sheet experimentperformancePerformance optimizationPerformance optimizationrenderingRendering engineRendering engine
Milestone
Description
Spec reference
IsoRenderingPlanV2.1.md §7 Performance; performance.instructions.md
Goal
The iso 2.0 demo world renders at 60+ FPS on a standard desktop browser with:
- 7×7 visible tile range (49 terrain + up to 49 nano stacks)
- Player movement + animation
- No frame-rate drops on new chunk load (chunk bake pre-emptive)
Technical requirements
- Dirty-frame skip: only re-render when player moved, animation ticked, or world changed
- Chunk bake: off-screen canvas pre-render of base terrain per chunk
- SVG image cache:
loadSvgImagestores decoded HTMLImageElement, never re-decodes - NanoStack cache:
_nanoStackCachein nano-tile-defs.ts prevents re-alloc per frame - Frame budget: ≤16.7ms total per rendered frame
Acceptance criteria (ALL required to close)
- Demo world runs in browser at 60+ FPS (verified via browser perf panel or built-in FPS counter).
- FPS counter shown in debug HUD (F5 or dev flag to enable).
- Frame time log: 100 consecutive frames, all ≤16.7ms (no spikes >33ms).
- Chunk boundary cross: no frame-rate drop below 58 FPS on new chunk load.
- Screenshot of FPS counter showing 60+ committed to
ProgressEvaluations/fps-60-verified.png.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
high-priorityHigh priority itemHigh priority itemiso-2.0-experimentIsometric Rendering 2.0 clean-sheet experimentIsometric Rendering 2.0 clean-sheet experimentperformancePerformance optimizationPerformance optimizationrenderingRendering engineRendering engine