Skip to content

Iso 2.0 [11/12]: 60+ FPS Validated — Dirty-Frame Skip, Chunk Bake, SVG Cache #225

@putersdcat

Description

@putersdcat

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: loadSvgImage stores decoded HTMLImageElement, never re-decodes
  • NanoStack cache: _nanoStackCache in 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    high-priorityHigh priority itemiso-2.0-experimentIsometric Rendering 2.0 clean-sheet experimentperformancePerformance optimizationrenderingRendering engine

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions