Cluster LOD: pack small faces' root pages together (page pool ~22% full) #769
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#769
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?
Cluster LOD's page pool is still mostly empty slots. In-world (Cloudsdale, 68 rigged characters, builder v3 with root-page packing):
fill 22% (roots 17%, 51/236 MB payload/slots),pages res 3023/4096 (roots 2739)for 2716 faces.Cause
Builder v3 lets a face's coarsest groups fill its own last root page, but every face still pins at least one 80 KB root page. Small faces dominate: of ~25.8k cached faces, 31% have <= 64 LOD0 triangles (median 2 DAG levels), so most root pages hold 1-5 KB of payload in an 80 KB slot.
Proposal
Pack the roots (and other small groups) of many faces into shared pages, or give pinned root data its own small-block sub-allocator:
Expected: roughly 150-180 MB back at that scene; small meshes stop costing 80 KB+ each. Related: cluster LOD memory is currently a net cost vs legacy (
LOD on COSTS 580 MB vs the LOD-off estimate 343 MBthere).