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

Closed
opened 2026-10-11 06:55:57 +00:00 by sky_line · 2 comments
Owner

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

  • #667: 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.
  • #669: a cold pipeline cache, 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.
  • Why it repeats: each crash comes before the cache has saved all its progress, so every launch starts cold and repeats the same parallel compile burst.

Fix (stop the bleeding)

  1. Never fatal. VK_ERROR_OUT_OF_HOST_MEMORY (and OUT_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.
  2. Budget against free memory, not total RAM: currently available physical memory minus a driver margin, re-evaluated as compilation proceeds.
  3. Conservative cold start on AMD proprietary: a lower initial concurrency, rising as costs are learned.
  4. Save the cache more often during a cold start, so a crash doesn't lose all the compiled work.

Backport

The never-fatal requeue and step-down part goes to release/1.2 for 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.

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 - **#667:** `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. - **#669:** a cold pipeline cache, `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. - **Why it repeats:** each crash comes before the cache has saved all its progress, so every launch starts cold and repeats the same parallel compile burst. ## Fix (stop the bleeding) 1. **Never fatal.** `VK_ERROR_OUT_OF_HOST_MEMORY` (and `OUT_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. 2. **Budget against free memory,** not total RAM: currently available physical memory minus a driver margin, re-evaluated as compilation proceeds. 3. **Conservative cold start on AMD proprietary:** a lower initial concurrency, rising as costs are learned. 4. **Save the cache more often during a cold start,** so a crash doesn't lose all the compiled work. ## Backport The never-fatal requeue and step-down part goes to `release/1.2` for 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.
sky_line added this to the Slipstream project 2026-10-11 06:55:57 +00:00
Author
Owner

Agent dispatched (Opus).

Agent dispatched (Opus).
Author
Owner

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.

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.
sky_line 2026-10-11 08:53:38 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#672
No description provided.