• Retired 10 posts
    Feb. 22, 2019, 7:51 p.m.

    Platform: Windows 10 Pro x64
    VCard: NVidia 1050
    Issue: DXGI_ERROR_DEVICE_REMOVED

    PS. Game set to DX11 (tested in DX11 by me, but also help DX9 too i think. didn't tested yet :) because no time, and tired to run in freezes(crash happen most of times when freezes start) )
    PPS. doesn't 'fix' freezes, but prevent from crashes. If you run into trouble with freezes-just restart client when you ready to do that :)
    PPPS. as suggestion: disable CUDA in drivers profile for this game.

    Why does the GPU driver crash ?
    In order to prevent any rendering or GPU computation from locking the system, the Windows Operating System kills the GPU driver whenever a rendering takes more than a few seconds. When the driver is killed, the application using it crashes automatically. Since we can't possibly know how long a rendering or computation will take (it depends on the GPU, the drivers, the OS, the mesh size, the texture size, etc.), we cannot put a limit on how much the computer can process and avoid the crash.

    On Windows there is a key in the registry specifying how long the OS should wait before killing the driver call. Application are not authorized to modify this setting directly, this procedure has to be done manually (see below).
    You can find more details about it here : docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys

    SOLUTION:
    You can change the TDR values in two ways :

    Increasing the TDR Delay (this is the safest manipulation) -> Change both " TdrDelay " and " TdrDdiDelay " to a higher value (like 60 seconds).
    Disabling the TDR completely -> Set "TdrLevel" to 0 ( not recommended ).
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005936/1/1506678177285/tdr_values.png

    How to edit the TDR values of the Registry ?
    Follow this procedure to change the TDR value.

    Note that two different keys will have to be created/edited.

    Please note that editing the registry can have serious, unexpected consequences that can prevent the system from starting and may require to reinstall the whole operating system if you are unsure of how to modify it.
    Allegorithmic takes no responsibility for any damage caused to your system by modifying the system registry.

    1 - Open the Run window
    Click on Start then Run or press the Windows and R key.
    It will open the Run window.

    2 - Launch the registry editor
    Type "regedit" in the text field and press "OK".
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005926/1/1506675823004/run_regedit.png

    3 - Navigate to the GraphicsDrivers registry key
    The registry window will open.
    In the left pane, navigate in the tree to the GraphicsDrivers key by going into: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers

    Be sure to stay on "GraphicsDrivers" and to not click on the Registry keys below before going through the next steps.
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005927/1/1506676034160/reg_left_pane.png

    4 - Add or Edit the TdrDelay value
    If the TdrDelay value doesn't exist yet, right-click in the right pane and choose New > DWORD (32bit) Value. Name it "TdrDelay". The case if important, be sure to follow it (and check that there are no other characters such as spaces).
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005933/1/1506677662507/create_value.png

    In the right pane , double click on the value TdrDelay. Change the Base setting to Decimal . Set the value to something else than the default 2 (60 is recommended).

    This value indicates in seconds how long the operating system will wait before considering that the GPU is unresponsive during a computation.
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005932/1/1506677477380/tdrdelay_edit.png

    5 - Add or Edit the TdrDdiDelay value
    If the TdrDdiDelay value does not exist, right-click in the right pane and choose New > DWORD (32bit) Value. name it "TdrDdiDelay". The case if important, be sure to follow it (and check that there are no other characters such as spaces).
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005933/1/1506677662507/create_value.png

    In the right pane , double click on the value TdrDdiDelay. Change the Base setting to Decimal. Set the value to something else than the default 5 (60 is recommended).

    This value indicates in seconds how long the operating system will wait before considering that a software took too much time to leave the GPU drivers.

    Hexadecimal is the default value, simply switch to decimal to display the right value. Note that 3C (Hexadecimal) equals to 60 (Decimal).

    6 - Finish and Restart
    The right pane should now looks like this :
    support.allegorithmic.com/documentation/spdoc/files/128745489/162005936/1/1506678177285/tdr_values.png

    Close the Registry editor. Restart the computer by using Start then Restart.

    The TdrValue is only looked at when the computer start, so to force a refresh a reboot is necessary.

    If program still crashes when doing a long computation, try increasing the delay (in seconds) from 60 to 120 for example.

    How to revert the TDR to its default values ?
    There are two ways to revert the TDR to its default values :

    Set the TdrDelay to 2sec and the TdrDdiDelay to 5sec, by following the steps described above.
    Also set TdrLevel to 1 if you change it.
    Or Remove the TdrDelay and TdrDdiDelay keys from the registry entry.

  • Feb. 28, 2019, 2:40 p.m.

    OMG; awesome! ! !
    Let me check this later.
    DXGI sucks when altering MBvoltages. . . >x seconds reinitalizations of hardware.

  • Retired 10 posts
    March 3, 2019, 7:29 p.m.

    at least no more crash due to "device was removed" or cause of client hang/freeze