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
-
Launch an Unreal Engine 5.8.2 project on Windows with D3D12 / SM6 enabled.
-
Enable the NVIDIA DLSS and Streamline plugins, including Streamline DLSS Frame Generation.
-
Make sure DLSS-G is loaded and enabled:
r.Streamline.Load.DLSSG=1
r.Streamline.DLSSG.Enable=1 -
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.
-
Minimize and restore the main Unreal Editor window, or resize the editor window/viewport to trigger a D3D12 swap-chain back-buffer resize.
-
If the issue does not reproduce on the first attempt, repeat the minimize/restore or resize operation while the Level Editor viewport is active.
-
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.