Hitch (2-3 s) ~30-60 s after a region unloads: deferred cleanup of the dropped region's assets in one burst #290
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#290
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?
Report: teleporting Horse Heights → Cloudsdale works and the old region unloads correctly (the region-reachability fix:
Dropping region Horse Heights ...: unreachableat 09:42:20). But about 30-60 s after its objects disappear, the viewer hitches for 2-3 seconds.Section/hitch logging was off in that session, so there's no
HITCH/SECTIONSbreakdown yet. Repro withRenderVKSectionLog/ GPU timers on, teleport between two busy regions far apart, and capture theHITCHline.State around it (VKMem at 09:42:40): inst 70k, mat freed 24966, mesh garbage v2724 i189 (high), CPU texture copies large, memgov comfortable.
The delay points at timed/deferred cleanup, not the drop itself. Suspects to check
VK_STALE_THUMB_SEC(15 s) / idle-thumb (30 s) they all become eligible together. Scale-down jobs are capped in flight (32/128), but the main-thread part (applyVKDemand,vkScaleDownCpuCopyposting,LLImageRawfrees) may still burst. The 30-60 s timing matches these timers.vkFreeMemory/ suballocator frees.malloc_trimafter hundreds of MB freed (the memory governor's trim cadence), or freeing LLViewerFetchedTexture / LLImageRaw objects in bulk on the main thread (gTextureListcleanup of zero-ref images).saveObjectCache), or texture cache writes.vkDeviceWaitIdlein any resize/free path triggered by the shrink.Fix direction
RenderVKTexResidencyBudgetMs): spread evictions, frees, compaction and trims across frames; offload bulk frees to a worker; never do whole-region cleanup in one frame.