RAM: drop the renderer's CPU copy of the GPU geometry buffers (~2 GB in heavy regions) #584
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#584
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?
A jemalloc heap profile in a heavy region (2026-10-09; 7.1 GB live heap, unsampled) attributes about 2.1 GB to
LLCleanRendererVK::fillFromCleanStores/placeSlot. That is a full CPU copy of the GPU mega-buffers (mCpuVerts,mCpuIdx,mCpuWeights, plus the slot table), including freed ranges and vector growth capacity.The GPU buffers are authoritative, and the meshstore keeps the quantized per-slot mirror (#573/#582) that the packer reads from, so this third copy only serves placement and repack.
Goal
Remove the CPU shadow of the GPU geometry buffers.
vkCmdCopyBufferbetween ranges (or into a new buffer) instead of rebuilding a CPU image.Done when
fillFromCleanStoresno longer shows in heap profiles beyond small bookkeeping.Shipped in a published release and tested; closing (testing-lane sweep 2026-10-11).