Avatar stuck at reduced animation rate at close range (fixed by zooming the camera) #725

Closed
opened 2026-10-12 15:26:43 +00:00 by sky_line · 3 comments
Owner

Seen (owner, 1.3.0 Beta 7+): one avatar about 10-15 m from the camera animates at a visibly reduced rate (choppy) while two others nearby animate at full rate. Zooming the camera in or out fixes it.

Context: GPU-animated avatars get a screen-size based animation rate (03d6fa21da "screen-size animation rate for GPU-animated avatars"): small on-screen avatars update less often, and their frames are held in between (held animation frames, #632; the renderer's vkAnimRateLimited() path). The reduced-tier controller (LLVOAvatar::cullAvatarsByPixelArea, VKAvLOD "reduced tier") is a separate cap on fully rendered avatars.

Symptom points to stale classification: an avatar at a near distance stays in the slow group until something (a camera zoom) re-evaluates it. Suspects:

  • the screen-size measure used for the rate (bounds / pixel area) is stale or wrong for this avatar (e.g. computed from an old position, a seated / animesh root, an avatar whose bounds didn't update, or before its mesh loaded);
  • hysteresis that only re-evaluates on a camera change, not on the avatar's own movement or load state;
  • the rate tier mixed up with the reduced (impostor-ish) tier or a held-frame flag that isn't cleared.

Wanted:

  • Fix the classification so an avatar this close is never rate-limited, re-evaluated on avatar movement / load / bounds change, not only on camera change.
  • A debug display (avatar tag or log on change) showing each avatar's animation rate tier and the screen size it was decided from.
**Seen (owner, 1.3.0 Beta 7+):** one avatar about 10-15 m from the camera animates at a visibly reduced rate (choppy) while two others nearby animate at full rate. Zooming the camera in or out fixes it. **Context:** GPU-animated avatars get a screen-size based animation rate (03d6fa21da "screen-size animation rate for GPU-animated avatars"): small on-screen avatars update less often, and their frames are held in between (held animation frames, #632; the renderer's `vkAnimRateLimited()` path). The reduced-tier controller (`LLVOAvatar::cullAvatarsByPixelArea`, VKAvLOD "reduced tier") is a separate cap on fully rendered avatars. **Symptom points to stale classification:** an avatar at a near distance stays in the slow group until something (a camera zoom) re-evaluates it. Suspects: - the screen-size measure used for the rate (bounds / pixel area) is stale or wrong for this avatar (e.g. computed from an old position, a seated / animesh root, an avatar whose bounds didn't update, or before its mesh loaded); - hysteresis that only re-evaluates on a camera change, not on the avatar's own movement or load state; - the rate tier mixed up with the reduced (impostor-ish) tier or a held-frame flag that isn't cleared. **Wanted:** - Fix the classification so an avatar this close is never rate-limited, re-evaluated on avatar movement / load / bounds change, not only on camera change. - A debug display (avatar tag or log on change) showing each avatar's animation rate tier and the screen size it was decided from.
sky_line added this to the Slipstream project 2026-10-12 15:26:43 +00:00
Author
Owner

Being investigated.

Being investigated.
Author
Owner

Fix pushed to main: close or large avatars animate at full rate whatever their rank, and the reduced-tier latch is released. Confirmed working by the owner; closes when the next beta ships.

Fix pushed to main: close or large avatars animate at full rate whatever their rank, and the reduced-tier latch is released. Confirmed working by the owner; closes when the next beta ships.
Author
Owner

Fixed in 1.3.0 Beta 8 (v1.3.0-beta.8). Thanks for the report!

Fixed in **1.3.0 Beta 8** (`v1.3.0-beta.8`). Thanks for the report!
sky_line 2026-10-13 00:26:17 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#725
No description provided.