Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
21227 Discussions

D3D12 device removal when using conservative rasterization on HD 530

Matt_P_
Beginner
2,829 Views

Hello,

I have a DX12 sample app on GitHub that demonstrates clustered forward and deferred rendering using bindless texture techniques. The light/decal clusters are generated on the GPU by rasterizing bounding volumes, which uses conservative rasterization since the clusters are have a lower X/Y resolution than the screen. On the latest drivers I'm getting a device removal on the first frame:

D3D12: Removing Device.
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]

The GPU hang doesn't occur if I configure the app to use normal MSAA rendering instead of conservative rasterization for the cluster generation step (this can be done by setting "ClusterRasterizationMode" to "ClusterRasterizationModes.MSAA8x" in AppSettings.cs).

System Setup Information:
-----------------------------------------

System Used: Custom Desktop PC
CPU SKU: i7 6700K
GPU SKU: HD 530
Processor Line: 
System BIOS Version:
CMOS settings:
Graphics Driver Version: 15.45.14.4590
GOP/VBIOS Version:
Operating System: Windows 10 Pro x64
OS Version: 1607 (OS Build 14393.693)
API: D3D12
Occurs on non-Intel GPUs?: No (tested on an Nvidia GTX 1070 and an AMD RX 460)

Steps to Reproduce:
-------------------------------
1. Download the latest code from GitHub: https://github.com/TheRealMJP/DeferredTexturing
2. Open the solution in VS 2015
3. Build Debug or Release
4. Run the project
5. Observe device removal on the first frame
6.
7.
8.
9.
10.

Expected Results:
-------------------------------
The app runs correctly with no device removal

Actual Results:
-------------------------------
Device removal is triggered by a GPU hang

Additional Information:
-------------------------------
The first time that the sample app runs, it will take a very long time to start up due to shader compilation (the deferred compute shader is very big!). The compiled shaders are cached on disk for subsequent runs.

0 Kudos
1 Reply
Michael_C_Intel2
Employee
2,829 Views

Hi Matt,

I have filed a report and we will investigate your issue. I will update you once we know something. 

-Michael 

0 Kudos
Reply