[UE 5.8.2][D3D12][Streamline DLSS-G] Unreal Editor crashes in IDXGISwapChain::ResizeBuffers with DXGI_ERROR_INVALID_CALL during editor window resize/minimize

Summary

Unreal Editor 5.8.2 crashes in the D3D12 RHI while resizing an editor swap chain with NVIDIA Streamline / DLSS Frame Generation loaded and enabled.

Immediately before the crash, the log reports:

LogStreamline: Verbose: OnBackBufferResize clearing 1 TrackedViews

The following call then fails with DXGI_ERROR_INVALID_CALL:

SwapChain1->ResizeBuffers(…)

The failing windowed viewport uses 3 back buffers and a temporary size of 391x61, with AllowTearing=1. The script stack is empty.

The same editor session also contains Streamline warnings about synchronizing DLSS-G state with the Present thread and a repeated slDLSSGSetOptions call that may indicate a race condition with Present().

What Type of Bug are you experiencing?

Editor

Steps to Reproduce

  1. Launch an Unreal Engine 5.8.2 project on Windows with D3D12 / SM6 enabled.

  2. Enable the NVIDIA DLSS and Streamline plugins, including Streamline DLSS Frame Generation.

  3. Make sure DLSS-G is loaded and enabled:
    r.Streamline.Load.DLSSG=1
    r.Streamline.DLSSG.Enable=1

  4. Open a map in the Level Editor. In the captured session, PIE had previously been started and stopped, and the map was then opened/reloaded in the editor.

  5. Minimize and restore the main Unreal Editor window, or resize the editor window/viewport to trigger a D3D12 swap-chain back-buffer resize.

  6. If the issue does not reproduce on the first attempt, repeat the minimize/restore or resize operation while the Level Editor viewport is active.

  7. The editor may crash intermittently in IDXGISwapChain::ResizeBuffers with DXGI_ERROR_INVALID_CALL.

Expected Result

The Unreal Editor window and Level Editor viewport should resize, minimize, and restore without crashing.

Streamline/DLSS-G should release or invalidate all tracked back-buffer resources and synchronize with the Present thread before Unreal calls IDXGISwapChain::ResizeBuffers.

The editor should remain responsive and continue rendering normally.

Observed Result

Immediately before the fatal error, Streamline reports that it is clearing one tracked view during a back-buffer resize.

Unreal then calls SwapChain1->ResizeBuffers, which returns DXGI_ERROR_INVALID_CALL. Unreal treats the failure as fatal and closes the editor.

Fatal error details:

Fatal error: [File:D:\build++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp] [Line: 1062]

SwapChain1->ResizeBuffers(
NumBackBuffers,
SizeX,
SizeY,
UE::DXGIUtilities::GetSwapChainFormat(PixelFormat),
SwapChainFlags
) failed

at D:\build++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\Windows\WindowsD3D12Viewport.cpp:347

with error DXGI_ERROR_INVALID_CALL

Viewport=,
Num=3,
Size=(391,61),
PF=18,
DXGIFormat=0x18,
Fullscreen=0,
AllowTearing=1

Script Stack (0 frames)

Affects Versions

5.8

Platform(s)

Windows

Additional Notes

Tested affected build: Unreal Engine 5.8.2, CL 56702186.