Right-size the avatar joint-slot tables (no fixed cap) #762
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#762
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The renderer caches skinning joints for animated characters (avatars, animesh control avatars, and flexi prims packed 24 chains per slot) in a fixed table of avatar slots. The cap was a hard-coded 256 (raised to 1024 as a stopgap). Replace the fixed cap with buffers that are sized to demand and grow.
Today
LLCleanSkinStore::MAX_AVATARS), ~10-14 KB per slot.kAvVisSlots) with compile-time section offsets (kCasterBase,kAvBoxBase,kAvLodBase...) shared by C++ and GLSL.rig_bits, fixed words in a uniform struct).CLI1B_AV_SHIFT).kSkinAvRows/kRigAvRows.Goal
slot >> 5; slot index in its own word (or a field wide enough for any capacity).Notes