use a per-tile buffer for rendering, and reuse it to do damage-based updates