godotengine / godotengine/godot

Bistro demo on D3D12 triggers TDR quite easily (Intel UHD 620)

Open
#96,382 0 comments 0 reactions 0 assignees View on GitHub
bug crash platform:windows topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible on v4.3.stable.official [77dcf97d8]

### System information

Godot v4.3.stable - Windows 10.0.19045 - dedicated Intel(R) UHD Graphics 620 (Intel Corporation; 31.0.101.2128) - Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 Threads)

### Issue description

When opening or running https://github.com/Jamsers/Bistro-Demo-Tweaked (commit 6b0ee6c) using D3D12, Godot very often triggers a TDR:
- Functions start returning `0x887a0005` (which is `DXGI_ERROR_DEVICE_REMOVED`)
- When GPU validation is enabled, it produces:
```
D3D12 ERROR: ID3D12Device::RemoveDevice: Device removal has been triggered for the following reason (DXGI_ERROR_DEVICE_HUNG: The Device took an unreasonable amount of time to execute its commands, or the hardware crashed/hung. As a result, the TDR (Timeout Detection and Recovery) mechanism has been triggered. The current Device Context was executing commands when the hang occurred. The application may want to respawn and fallback to less aggressive use of the display hardware). [ EXECUTION ERROR #232: DEVICE_REMOVAL_PROCESS_AT_FAULT]
```
This can happen very easily even when setting to windowed mode at 1280x720.

In comparison, the same project seems to run fine on the same system without TDR when using Vulkan, at fullscreen 2560x1440 resolution (albeit at a mediocre 2 fps).

### Steps to reproduce

- Use Intel integrated graphics?
- Open the project in the editor once to reimport resources
- Run the project with `--rendering-driver d3d12`
- Observe errors being printed to the console

### Minimal reproduction project (MRP)

n/a

Contributor guide

Open the contributing guide

Research direction

Start with the Bistro-Demo-Tweaked project at commit 6b0ee6c, reimport it in Godot v4.3.stable, and run it with --rendering-driver d3d12 on the stated Intel UHD 620 setup. Compare the console output and behavior with Vulkan; done requires determining the cause of the D3D12 device removal or documenting a reproducible fix.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
computer-graphics, game-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.