Respawning animesh become invisible after a while (suspected slot/skin leak) #222

Closed
opened 2026-10-01 05:41:43 +00:00 by sky_line · 0 comments
Owner

Repro (user report): a sim running a Halloween event where animesh creatures are fought. They're destroyed and continuously respawn (new objects each time). After a while, newly spawned creatures are invisible and stay that way.

Suspect: a leak in a fixed-capacity per-avatar/animesh resource, so that after N spawn/despawn cycles new animesh instances can't get one and silently don't draw. Each respawn is a new object (new UUID, new skeleton), so anything keyed per animesh object that isn't released on kill fills up.

Places to check (fixed caps / per-object allocations):

  • Avatar joint-table slots: the cull's AV_VIS_SLOTS = 256 (clean_cull.comp, av_vis[]); worn-attachment skin_id = joint-table slot. If animesh skeletons take a slot and don't return it on object death, slot 257+ is never visible.
  • LLCleanSkinStore: skin palettes / skin meta per skeleton (keyed by avatar UUID since 052c866176), flexi pseudo-slots.
  • Pre-skin / rig caps: u_skin_vert_cap / u_work_cap (R_RIGCAP drops in the cull) if dead animesh still hold ranges.
  • RT rig groups (LLCleanRTVK::mRig, keyed by owner): only matters for shadows, not visibility.
  • Instance store: rows released on releaseObject for killed animesh?

Diagnose: watch counts as creatures respawn (joint-table slots in use, skin store entries, R_RIGCAP / R_RIGNOSKIN cull drop reasons). The point where they turn invisible should line up with one of them hitting its cap. A teleport out and back (or relog) clearing it would confirm a leak rather than a content issue.

Repro (user report): a sim running a Halloween event where **animesh creatures** are fought. They're destroyed and continuously **respawn** (new objects each time). After a while, newly spawned creatures are **invisible** and stay that way. Suspect: a leak in a fixed-capacity per-avatar/animesh resource, so that after N spawn/despawn cycles new animesh instances can't get one and silently don't draw. Each respawn is a new object (new UUID, new skeleton), so anything keyed per animesh object that isn't released on kill fills up. Places to check (fixed caps / per-object allocations): - **Avatar joint-table slots**: the cull's `AV_VIS_SLOTS = 256` (`clean_cull.comp`, `av_vis[]`); worn-attachment `skin_id` = joint-table slot. If animesh skeletons take a slot and don't return it on object death, slot 257+ is never visible. - **LLCleanSkinStore**: skin palettes / skin meta per skeleton (keyed by avatar UUID since 052c866176), flexi pseudo-slots. - **Pre-skin / rig caps**: `u_skin_vert_cap` / `u_work_cap` (`R_RIGCAP` drops in the cull) if dead animesh still hold ranges. - **RT rig groups** (`LLCleanRTVK::mRig`, keyed by owner): only matters for shadows, not visibility. - Instance store: rows released on `releaseObject` for killed animesh? Diagnose: watch counts as creatures respawn (joint-table slots in use, skin store entries, `R_RIGCAP` / `R_RIGNOSKIN` cull drop reasons). The point where they turn invisible should line up with one of them hitting its cap. A teleport out and back (or relog) clearing it would confirm a leak rather than a content issue.
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#222
No description provided.