Ok, let's read through all this drivel and filter out the one singular relevant bit of information:
Setting the Mesa environment variable INTEL_DEBUG=reemit completely mitigates the hang for Resident Evil 2
Let's see what this does:
reemit
mark all state dirty on each draw call
yeah somehow I don't think descriptor indices are the problem here. Congratulations, your AI hallucinated garbage again and just wasted everyone's time. As it always does. Please stop using it, adding hundreds of randomly chosen words in a bug report is not helpful.
Good chance there's an unrelated mesa bug somewhere, not the first time that state tracking is causing issues on ANV and issues with pre-Xe hardware aren't exactly unheard of either.
First off, I used Gemini to translate my Arabic words into English, but it butchered my meaning. That's my mistake, but that doesn't give you the right to speak to me like that.
The core issue is real: Lionel Landwerlin said:
Might well be related to #15474 (closed). Apparently some vkd3d translation is triggering out of bound descriptor accesses. On newer platforms with the scratch page it seems to just trigger mild misrenders, but older platforms might be more sensitive to this and hang.
I apologize for the AI confusion. But the bug report is mostly accurate.
edit:
about the reemit, it's no longer works with 26.3-git
now we need the full command, stall,sync , for now, i don't know for sure if this is a vkd3d error or not
but overall, i'm closing this ticket. if i find anything that points that it's a VKD3D, i'll come back and open a new ticket with new clues, soo, it's for now a mesa bug.
until that day, improve your professionalism with people..
have a nice day.
Again, if stall,sync helps then that's no real indication that OOB descriptor indexing is the problem here. Yes, it's a real issue in some games, we're aware of that and are already working around it in cases where it is known to cause problems because it'll crash and hang non-Intel hardware in all sorts of random and undefined ways as well, and just reemitting state or spamming barriers left and right should not have any effect at all.
If it somehow is OOB descriptors anyway then this branch (see github actions for a build) togther with VKD3D_CONFIG=descriptor_heap_robustness should fix it, if not then yeah unrelated problem.
As for AI, I'd honestly rather read a few sentences of janky English (not like any of us are native speakers either) than a massively inflated wall of text that largely doesn't make sense. Nobody wants to talk to bots.
yup, because of you i don't rely anymore on AI to write my issues. so i think i should say thank you.
i'll try that branch with VKD3D_CONFIG=descriptor_heap_robustness and report back ASAP.
tested it with Mesa 26.3.0-Git and 26.1.6 stable and 26.2.0-git
still hangs, so now it's clear that it's a Mesa problem, thanks!
System Information
Describe the Bug
On Intel Gen9/9.5 graphics hardware, multiple complex Direct3D 12 titles translated via VKD3D-Proton trigger a deterministic, fatal GPU ring hang and preemption timeout during command buffer execution loops.
Affected titles:
Terminal Log Snippet:
The Cross-Layer Isolation Triage
Extensive deep-dive analysis between the driver state tracker, runtime environment variables, and memory layers confirms the following parameters:
INTEL_DEBUG=reemitcompletely mitigates the hang for Resident Evil 2, passing full playthrough verification. Concurrently,INTEL_DEBUG=reemit,sync,stalleliminates the hang on Red Dead Redemption 1 (at a heavy 20-30% frame allocation performance penalty).Architectural Friction: Why this hits Gen9
On newer Intel execution layers (Gen12+), the ANV driver configures a virtualized hardware scratch page memory abstraction space. When a translated shader emits an out-of-bounds descriptor index read, the modern hardware silently catches and mirrors the request into the zeroed scratch space—manifesting as minor visual artifacts while avoiding crashes.
Conversely, older Gen9/9.5 hardware features zero hardware memory redirection virtualization layers for invalid indices. When VKD3D-Proton emits these translated shader streams onto Kaby Lake silicons, the hardware Memory Management Unit page-faults on the unmapped address space, stalling
rcs0. Forcing a globalreemitthrough Mesa pads and realigns instruction memory shapes enough to mask the illegal access vector, but breaks driver execution performance loops.Proposed Request / Solution
Because this failure vector depends directly on illegal out-of-bounds index generation paths during DX12-to-Vulkan pipeline state construction, could an aggressive descriptor array boundary tracking check, index clamp pass, or explicit fallback safety block be implemented inside VKD3D-Proton when parsing pipelines on legacy Intel hardware configurations?
Workarounds Tried (That Failed to Prevent the Fault)
VKD3D_CONFIG=virtual_heaps,no_upload_hvv,single_queue-> No behavioral modification.preempt_timeout_ms=3000-> Artificially shifts the crash window timeline but fails to prevent the hard hardware trap.anv_enable_scratch_page=true-> Inoperable/No-Op on Gen9 hardware architectures.