Crash: AMD (Windows) VK_ERROR_OUT_OF_HOST_MEMORY during pipeline compiles is fatal -- make it recoverable, budget by free RAM, 1.2.x backport #672
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#672
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?
Crash reports #667 (1.2.0.9) and #669 (1.3.0 Beta 2) both come from one AMD machine: Windows 11 26200, RX 6600 XT, driver 32.0.21045.5002, Ryzen 5 5500, 32 GB. That user is crashing on every launch and login.
Evidence
ERROR #Vulkan vk_fatal_handler: vkCreateGraphicsPipelines(...) = VK_ERROR_OUT_OF_HOST_MEMORY at vk_pipeline.cpp:380, with a 15 GB working set at the time.Pipeline compiles: memory-budgeted, up to 11 at once (AMD proprietary; 3072 MB assumed per unknown pipeline ... compile budget now 25192 MB; pipeline cache cold). It crashed during compilation, about 7 s after the last progress save of the cache.Fix (stop the bleeding)
VK_ERROR_OUT_OF_HOST_MEMORY(andOUT_OF_DEVICE_MEMORY) from pipeline creation becomes recoverable: requeue that pipeline, halve the compile concurrency, retry, and fall back to serial compiles. Log each step-down. Only a pipeline that still fails serially after retries counts as an error. In that case, disable that feature or variant with a notice rather than crashing.Backport
The never-fatal requeue and step-down part goes to
release/1.2for a 1.2.x hotfix, because the stable release crashes too.Root-cause investigation of why AMD's compiler needs this much memory is a separate ticket.
Agent dispatched (Opus).
Fixed in 1.2.1 (stable) and 1.3.0 Beta 3: running out of memory while compiling shaders is no longer fatal (retry with fewer at once), with a gentler cold start on AMD and more frequent cache saves. Root cause investigation: #673.