protonscr

[Space Marine 2] DXGI Video Memory Budget reporting / TexStreaming pool overflow crash in Patch 14.1

vkd3dclosed
HansKristian-Work/vkd3d-proton#3258 · opened 2026-09-01 by Esenych · updated 2026-09-01 · 5 comments · github
EEsenych 2026-09-01 github

Software information

  • Game: Warhammer 40,000: Space Marine 2 (AppID: 2183900)
  • Build: Patch 14.1 (Retail_14.1.PATCH.1290778/1291224.PATCH14)
  • Runner / Proton: GE-Proton 11-5 (VKD3D-Proton upstream)

Hardware / Driver information

  • GPU: NVIDIA GeForce RTX 3060 12GB LHR
  • Driver: NVIDIA 595.91.07 (NVML: 13.595.91.07)
  • OS: Nobara Linux 44 (Kernel 7.2.0, Wayland session)
  • RAM: 32 GB RAM / 8 GB Swap

Description of the issue

Following Patch 14.1, the game suffers from reproducible crashes during extended sessions (e.g. Operations / hm_fortress scene) due to streaming memory pool budget exhaustion.

From the engine's exception dump:
Title memory: 5887.6 / 11360.1 MB (3074.4 MB free)
GeomStreaming: 544.3 / 550.0 MB [Utilization: ~98.9%]
TexStreaming: 2065.3 / 2000.0 MB [OVERFLOW: +65.3 MB, 0.0 mips drop]
Reserved memory: 300.0 MB, 0.0 temp [MB]
Total Memory: 8168714240 bytes (~7.6 GB allocated budget under Wine DXGI)
Free Host Memory: 26723504128 bytes (~24.8 GB)

Technical Observations:

  1. DXGI Memory Budget Clamping:
    On a physical 12 GB VRAM card, the total memory budget queried via DXGI reports 8168714240 bytes (~7.6 GB). This causes the engine to allocate an overly restricted 2000 MB pool for texture streaming.

  2. Allocation Failure / Eviction Stall:
    Under heavy asset rotation (hm_fortress), TexStreaming exceeds this hard budget (reaching 2065.3 MB / +65.3 MB overflow). The engine fails to drop mips (0.0 mips drop), hitting an Access Violation / unhandled exception.

  3. Potential VKD3D angle:
    Is the memory budget reported via QueryVideoMemoryInfo / DXGI adapter query artificially clamped or underreported for this device/driver configuration? A budget override / quirk or proper VRAM reporting might prevent the game engine from constraining its streaming pool to 2 GB.

Reproduction Steps

  1. Launch Space Marine 2 with Patch 14.1.
  2. Enter an Operations mission with heavy scene complexity (e.g. hm_fortress).
  3. Play through extended enemy waves / asset churn until texture streaming reaches ~2000 MB.
  4. Game triggers Crash Dump Sending Utility / Access Violation once TexStreaming overflows.
Ddoitsujin maintainer 2026-09-01 github

Thank you for this wonderful AI-generated bug report without any logs that could actually be helpful! We don't want any actionable information anyway and just love being talked to by bots!

Anyway, our DXGI reports the budget that the Vulkan driver gives us; if it's only 8GB on a 12GB card then maybe close some applications that are eating all that VRAM. Games shouldn't crash due to low VRAM, but that's probably not our problem to begin with.

EEsenych 2026-09-01 github

Sorry about that! I'm from Russia and my English isn't great, so I used an AI translator to structure the dump output. I'm a real player just trying to help report a reproducible issue.

To clarify regarding VRAM:

  • No background apps (browsers, Discord, etc.) are running that could eat VRAM. Only Steam and the game session.
  • The memory snippet above is from the game engine's internal crash log when it threw the Access Violation.

I can provide proper logs — please let me know if you need PROTON_LOG=1 or specific VKD3D_DEBUG variables. I will reproduce the crash with logging enabled and attach the log file here.

Ddoitsujin maintainer 2026-09-01 github

Thing with any sort of AI usage is that we can't be sure if it's just a very verbose translation or if it's just made-up bullshit, and based on the history of AI reports we have to assume the latter, especially if they follow a certain structure and make assumptions about the root cause of any given issue.

A standard Proton log (i.e. PROTON_LOG=1) is always a good start.

EEsenych 2026-09-01 github

Since you don't like the use of AI and I can't control how it alters my words, I will write my response in Russian. But first, thank you for the quick reply, and I apologize for my oversight in not checking the Proton logs right from the start.

Прикрепляю 2 файла с полного лога: я срезал последние 300 строк и отдельно отловил ошибки, ибо остальное не имеет смысла. Кароч проблема в самой игре, движок игры полез в недоступный адрес.

Вот блок ошибки:

20579.439:0190:01f4:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
20579.439:0190:01f4:trace:seh:dispatch_exception code=c0000005 (EXCEPTION_ACCESS_VIOLATION) flags=0 addr=00006FFFF91F902E
20579.439:0190:01f4:warn:seh:virtual_unwind backtrace: 00006FFFF91F902E: L"Warhammer 40000 Space Marine 2 - Retail.exe" + 000000000215902E.
20579.439:0190:01f4:warn:seh:virtual_unwind backtrace: 00006FFFF9215FCE: L"Warhammer 40000 Space Marine 2 - Retail.exe" + 0000000002175FCE.

Теперь буду просто ожидать ответа от поддержки игры.
И так чисто от себя: нелюбовь к ИИ понимаю, сам веб-разработчик и имел дело с вайб-кодерами, но я просто редакнул через ИИ ответ, я понятия не имею, что он там напридумывал.

crash_errors.txt
crash_tail.txt

BBlisto91 2026-09-01 github

As a side note in regards to translations then it is of course understandable that it can be needed if you aren't proficient and i don't think anyone here denies that.
I would suggest instead of using one of the new AI's to just write the report in your original language first and then translate it using a simple old style translator service like Deepl or Google Translate before posting. The issue template should hopefully also be able to be somewhat translated to your local language beforehand so you know how to fill it out.

That should decently enough get the issue across, if described properly before the translation, without adding all the extra noisy padding that LLM's can have a tendency to do.
Unless some of the technical details or requests in the template or your description gets lost in translation ofc. But we could always ask for clarification then. (Maybe also note that a translator was used)

Launch options

Error codes