Flexi prims attached to an avatar don't render #797

Closed
opened 2026-10-16 12:12:15 +00:00 by sky_line · 0 comments
Owner

Reported by a user, confirmed by the owner. Flexible (flexi) prims that are attached to an avatar (worn hair, tails, ribbons, etc.) do not render. Flexi prims rezzed in-world render normally. Likely a regression; the regressing commit is not identified yet.

What's been checked so far:

  • Simulation and upload look fine: the VKFlexi log line shows tracked flexis simulating and uploading their chain poses (tracked 28 simulated 4 ... failed 0 no-skin 0). It's not yet confirmed that the worn flexi is among the tracked ones.
  • The GPU cull should not hide it. av_vis defaults every joint-table slot to visible, and a worn attachment (bit 9) skips the frustum test in clean_cull.comp.

Suspects (being investigated):

  • Misclassification: a worn flexi carries bit0 (skinned), bit19 (flexi) and bit9 (worn attachment). Several paths read a worn attachment's skin_id as the wearer's joint-table slot, and the rigged partition in clean_cull.comp excludes _flexi.
  • Double transform: the chain is simulated in world space; if the attachment/wearer transform is also applied, the prim lands far from the avatar.
  • Recent changes on these paths:
    • avatar-mesh routing to the cluster path (flexi was meant to stay on the legacy path)
    • derender attachments (#202)
    • rigged per-frame capacity (0277489859)
    • joint table mat3x4 (e3c1d32910)
    • flexi swept-bounds cull (325f341379)

Repro: wear any object with a flexible prim (Features tab > Flexible Path) and look at your avatar. The flexi part is missing. The same object rezzed on the ground renders.

**Reported by a user, confirmed by the owner.** Flexible (flexi) prims that are **attached to an avatar** (worn hair, tails, ribbons, etc.) do not render. Flexi prims rezzed in-world render normally. Likely a regression; the regressing commit is not identified yet. **What's been checked so far:** - Simulation and upload look fine: the `VKFlexi` log line shows tracked flexis simulating and uploading their chain poses (`tracked 28 simulated 4 ... failed 0 no-skin 0`). It's not yet confirmed that the worn flexi is among the tracked ones. - The GPU cull should not hide it. `av_vis` defaults every joint-table slot to visible, and a worn attachment (bit 9) skips the frustum test in `clean_cull.comp`. **Suspects (being investigated):** - **Misclassification:** a worn flexi carries bit0 (skinned), bit19 (flexi) and bit9 (worn attachment). Several paths read a worn attachment's `skin_id` as the *wearer's* joint-table slot, and the rigged partition in `clean_cull.comp` excludes `_flexi`. - **Double transform:** the chain is simulated in world space; if the attachment/wearer transform is also applied, the prim lands far from the avatar. - **Recent changes on these paths:** - avatar-mesh routing to the cluster path (flexi was meant to stay on the legacy path) - derender attachments (#202) - rigged per-frame capacity (0277489859) - joint table mat3x4 (e3c1d32910) - flexi swept-bounds cull (325f341379) **Repro:** wear any object with a flexible prim (Features tab > Flexible Path) and look at your avatar. The flexi part is missing. The same object rezzed on the ground renders.
sky_line added this to the Slipstream project 2026-10-16 12:12:15 +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#797
No description provided.