NVIDIAGameWorks / NVIDIAGameWorks/rtx-remix

[Runtime Bug]: Frequently occuring deadlock since RTX Remix v1.0.0

Open
#745 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug jira runtime
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.

Image
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?
  1. Install Deus Ex from Steam
  2. Install https://github.com/onnoj/DeusExEchelonRenderer/releases/tag/v0.3.15 (see readme.md for instructions)
  3. (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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.