DLSS-G crashing in Unreal Engine 4.27.2

Hi there!

We are using the streamline plugin 1.3.0-SL2.4.0 in our project and have encountered the following problems:

1). Launching the application with the -sldebugoverlay parameter crashes with log:

D3D12: Removing Device.
Exception thrown at 0x00007FFB8B51CF19 in *****.exe: Microsoft C++ exception: _com_error at memory location 0x000000768FA5B558.
Exception thrown at 0x00007FFB8B51CF19 in *****.exe: Microsoft C++ exception: _com_error at memory location 0x000000768FA5B778.
LogStreamlineAPI: Warning: [Warn]: [17-51-15][streamline][warn][tid:3868][6s:907ms:617us]dxgiswapchain.cpp:250[operator ()] PFunPresentBefore failed The GPU device instance has been suspended. Use GetDeviceRemovedReason to determine the appropriate action.
LogD3D12RHI: Error: pResource->Map(Subresource, pReadRange, reinterpret_cast<void**>(&pData)) failed 
 at E:\*****\Engine\Engine\Source\Runtime\D3D12RHI\Private\D3D12RHIPrivate.h:1181 
 with error DXGI_ERROR_DEVICE_REMOVED with Reason: 887A002B

2). We encountered frequent crashes with the destruction of the viewport, regardless of whether FG was enabled or not. Having investigated this problem, we came to the following conclusion: the cause is the GetViewportRect function in the StreamlineGLSSG.cpp module, or, to be more precise, the receipt of TSharedPtr on the viewport in the render thread.
Since smart pointers in UE 4.27 are not thread-safe by default, this led to incorrect counter values, which led to premature destruction of the viewport.
By changing the smart pointers setting to thread-safe for the entire project, we got rid of this problem.

3). We get a stable crash if we turn off the monitor on which the game is displayed while FG is on. If we change the monitor number in the settings or turn it off with FG turned off, the crash does not occur.
We tried to immediately disable the FG when we process the WM_DISPLAYCHANGE event, but this did not lead to anything.
We get the following log:

LogStreamlineD3D12RHI: DLSSG D3D12/DXGI Error 0x887a0001 (The application made a call that is invalid. Either the parameters of the call or the state of some object was incorrect.)
LogD3D12RHI: Error: Streamline/DLSSG present failed 
 at E:\*****\Engine\Engine\Plugins\Runtime\Nvidia\Streamline\Source\StreamlineD3D12RHI\Private\StreamlineD3D12RHI.cpp:430 
 with error DXGI_ERROR_INVALID_CALL

4). We also get a very rare crash during gameplay, but unfortunately I didn’t save the log from it, but in general, its log is very similar to log from point 3.

We will be glad for any help, thanks in advance!

Hi @r.povroziuk and welcome to the NVIDIA developer forums.

I don’t think I can help with this right away, but I forwarded the issue to the streamline-UE team to take a look. Maybe they have some suggestions.

Thanks!

1 Like