NVIDIAGameWorks / NVIDIAGameWorks/rtx-remix
[Runtime Bug]: Frequently occuring deadlock since RTX Remix v1.0.0
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 1.7k
- Forks
- 99
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
Since RTX Remix v1.0.0, there seems to be a deadlock affecting at least Deus Ex and the Echelon Renderer.
The d3d9 Present() call never returns and the application hangs.
On the RTX Remix runtime, there seems to be a deadlock.
dxvk-cs and dxvk-submit seem to share the same lock and are blocked, although I don't know which thread holds the lock. I speculate that the main thread seems to wait for dxvk-submit to finish.
How do you reproduce the bug?
- Install Deus Ex from Steam
- Install https://github.com/onnoj/DeusExEchelonRenderer/releases/tag/v0.3.15 (see readme.md for instructions)
- (Optionally, but strongly recommended), install Deus Exe (also linked on the renderer github page)
The bug seems to be easier to reproduce if there is user-input.
The bug doesn't seem to happen if rtx.initializer.asyncShaderFinalizing and/or rtx.initializer.asyncShaderPrewarming are set to false, but, I haven't been able to verify this fully yet.
This is not the case, the issue still occurs with these features turned off.
However, the issue takes much longer to appear if rtx.opacityMicromap.enable is set to false.
What is the expected behavior?
The runtime should not stall/block on Present. Perhaps a device-lost kind of mechanism can be added in the future, so that the game can recover and re-create the renderer.
Version
v1.0.0
Logs
(later run)
Crash dumps
Dump file seems to big (fails to upload), will be happy to email a link!
(later run)
Media
No response
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the hang with Deus Ex and the Echelon Renderer, then start from the d3d9 Present() call and the dxvk-cs/dxvk-submit lock interaction described in the issue. Inspect remix-dxvk.log, bridge32.log, bridge64.log, dbgviewoutput.txt, and the aftermath dump for the thread holding the lock. Done means Present() no longer stalls under the reported configuration.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100