Snapshots refused with "not enough free system memory (0 MB above the reserve)" whenever free RAM is below the memory governor reserve #1477
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#1477
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?
Bug
Snapshots are refused with "No 2560 x 1417 snapshot was taken: a render that large does not fit: not enough free system memory (0 MB above the reserve)" whenever the system has less free RAM than the memory governor's reserve, even though the snapshot needs only tens of MB.
Evidence (owner's log, 2026-11-06 04:34Z, 32 GB RAM)
memgov tight avail 3444/31904 MB reserve 3828 MB commit-avail 8495/84778 MB; the viewer's own RSS was ~2.6 GB.vk_live_snapshot : live snapshot 2560x1417: not enough free system memory (41 MB needed, 0 MB above the reserve); using the offscreen pathsnapshotFit : snapshot 2560x1417 refused: not enough free system memory (0 MB above the reserve)Cause
Both snapshot paths (
vk_live_snapshotin llviewerwindow.cpp andsnapshotFitin llappviewer.cpp) size the snapshot againstavail - reserve. The reserve (auto: max(1.5 GB, 12% of RAM)) is the governor's steady-state cushion for other programs; below it, every snapshot of any size is refused. The governor itself never goes to zero (work is always admitted, just slower).Expected
A short-lived, user-requested snapshot is taken whenever it actually fits in free memory. Below the reserve it may use a bounded share of what is free (and, on Windows, of the commit still available) instead of nothing.