Skip to content

Meshlet Example iGPU TDR (Timeout Detection and Recovery) #9

Description

@srinbeen

Hello, I am trying to run the meshlet example on my laptop. It has an AMD Radeon(TM) 760M, with 512 MB VRAM with the DX12 backend.

The program correctly checks feature support and it passes the assert:

if (SUCCEEDED(m_Context.device->QueryInterface(&m_Context.device2)) && hasOptions7) { m_MeshletsSupported = m_Options7.MeshShaderTier >= D3D12_MESH_SHADER_TIER_1; }

but has a runtime error:

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 program runs if I remove the amplification shader from the pipeline (i.e. psoDesc.AS = nullptr; and removing the input payload from the mesh shader). I tried updating the shader such that it invokes 32 threads instead (32,1,1) instead of (1,1,1) but no dice.

Any solution to this issue known? I can also just enumerate through the hardware adapter and pick the dGPU on my device instead, but I wanted to try and run it on my iGPU first.

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions