locked
DX11 Device Removed error

    Question

  • We have been doing soak testing on our DX11 WinRT app.

    In the process we have been getting a device removed exception when calling Present (DXGI_ERROR_DEVICE_REMOVED).

    Calling GetDeviceRemovedReason returns DXGI_ERROR_DEVICE_HUNG for which WinRT will then promptly shutdown our app if a debugger is not attached.

    Our D3D device is created with the D3D11_CREATE_DEVICE_DEBUG flag set.

    Our debug spew contains no D3D warnings or errors.

    We have had this occur once (and only once) on a desktop running Windows 8. It happens very consistently on several different ARM tablets we have let soak overnight.

    I'm at a loss about how to further analyze or debug this issue and any help/ideas for how to do so would be appreciated. 


    Tuesday, January 08, 2013 5:26 PM

All replies

  • The problem may be the GPU timeout. How complicated are your shaders?

    See http://msdn.microsoft.com/en-us/library/windows/hardware/ff570088(v=vs.85).aspx

    Tuesday, January 08, 2013 10:15 PM
  • The ARMS we are testing on are all feature level 9.1 - we had to simplify some of our shaders to fall within the instruction limit.

    For our most commonly used shader though

    Vertex Shader:

    Matrix multiply for WVP against the vertex position.

    Calculate lighting for two directional lights (including specular)

    Optionally apply a UV shift.

    Calculate camera distance for pixel shader per pixel fog calculations.

    Pixel Shader:

    Diffuse color texture lookup.

    Optionally do a environment map lookup.

    Apply light color as passed from the vertex shader.

    Apply basic fog based on camera distance.

    For our most complicated shader, the VS is the same.

    The pixel shader does 4 diffuse texture lookups which it blends together based on shader constant settings.

    Optionally does a environment map lookup.

    Apply light color as passed from the vertex shader.

    Apply basic fog based on camera distance.

    Regardless our app will run for 6-12 hours with no user interaction sitting in our main menu before the GPU hangs.


    Tuesday, January 08, 2013 11:40 PM