Integrated GPUs (UMA) budgeted from the BIOS carve-out only: 5700G gets a ~240 MB VRAM budget #695

Closed
opened 2026-10-12 04:08:37 +00:00 by sky_line · 1 comment
Owner

Symptom (user report, Ryzen 7 5700G / Radeon Vega 8 iGPU, Windows): Advanced Graphics readout shows In use 541 MB of a 218 MB budget (capped), reserve 24 MB and the pressure ladder sits deep (off-screen textures, probe count 1/2, mesh detail 1/4, far shadows, draw distance). The viewer looks blurry/low-detail and never recovers. Maximum video memory = 12 GB has no effect.

Cause: LLCleanRendererVK::measureTexVram() budgets against the DEVICE_LOCAL heap with the largest budget. On an integrated GPU (UMA) that heap is only the BIOS carve-out (default ~512 MB on AM4 boards), minus what the OS/desktop holds. The large host heap is the same system RAM at near-equal speed but is ignored, so a 5700G is budgeted like a 256 MB card.

Plan

  • Detect UMA (VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, and/or all heaps being system memory) and size the budget from carve-out + host heap budget (VK_EXT_memory_budget), minus a margin that coordinates with the RAM budget so GPU and CPU-side caches don't double-count the same RAM.
  • Let texture/buffer allocations fall back to host-visible / host heap memory types on UMA when the carve-out is full, instead of squeezing everything into 512 MB.
  • Discrete GPUs unchanged (keep the NVIDIA non-ReBAR BAR-heap protection).
  • Readout: (capped) only when the user cap is the binding limit; on UMA say the budget includes shared memory.
  • Log heap layout + chosen budget at startup for reports.

Workaround for users: raise "UMA Frame Buffer Size" / "iGPU Memory" to 2 GB+ in BIOS.

**Symptom** (user report, Ryzen 7 5700G / Radeon Vega 8 iGPU, Windows): Advanced Graphics readout shows `In use 541 MB of a 218 MB budget (capped), reserve 24 MB` and the pressure ladder sits deep (off-screen textures, probe count 1/2, mesh detail 1/4, far shadows, draw distance). The viewer looks blurry/low-detail and never recovers. Maximum video memory = 12 GB has no effect. **Cause**: `LLCleanRendererVK::measureTexVram()` budgets against the DEVICE_LOCAL heap with the largest budget. On an integrated GPU (UMA) that heap is only the BIOS carve-out (default ~512 MB on AM4 boards), minus what the OS/desktop holds. The large host heap is the same system RAM at near-equal speed but is ignored, so a 5700G is budgeted like a 256 MB card. **Plan** - Detect UMA (`VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU`, and/or all heaps being system memory) and size the budget from carve-out + host heap budget (VK_EXT_memory_budget), minus a margin that coordinates with the RAM budget so GPU and CPU-side caches don't double-count the same RAM. - Let texture/buffer allocations fall back to host-visible / host heap memory types on UMA when the carve-out is full, instead of squeezing everything into 512 MB. - Discrete GPUs unchanged (keep the NVIDIA non-ReBAR BAR-heap protection). - Readout: `(capped)` only when the user cap is the binding limit; on UMA say the budget includes shared memory. - Log heap layout + chosen budget at startup for reports. **Workaround for users**: raise "UMA Frame Buffer Size" / "iGPU Memory" to 2 GB+ in BIOS.
sky_line added this to the Slipstream project 2026-10-12 04:08:37 +00:00
Author
Owner

Shipped in 1.3.0 Beta 6 (51eb1ee46c UMA budget for integrated GPUs with a BIOS carve-out; 24e4c6f7e4 persisted UMA debug switches). Closing -- reopen or comment if you still see this.

Shipped in 1.3.0 Beta 6 (51eb1ee46c UMA budget for integrated GPUs with a BIOS carve-out; 24e4c6f7e4 persisted UMA debug switches). Closing -- reopen or comment if you still see this.
sky_line 2026-10-14 06:33:43 +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#695
No description provided.