D3D12 crash on RTX 50-series laptops

Hello,

Our UE 5.4 project crashes on RTX 50-series laptops when running under DirectX 12.

The game triggers a fatal error (0x80004004]

) on startup we can’t reproduce on any of our other hardware.

We’ve already tried the following without success:

  • Updating to the latest NVIDIA drivers
  • Disabling G-Sync / VRR
  • Toggling HDR on/off
  • Testing different resolutions

A similar issue seems to be reported on RTX 50-series laptops in this thread: https://forums.unrealengine.com/t/twinmotion-2026-direct-x-12-problem/2716578

But it might also be related to our recent DLSS integration — several threads seem to point to issues with Frame Generation on 50-series GPUs. https://forums.forza.net/t/solved-splash-crash-on-rtx-50-series-dlss-streamline-dll-workaround/833344

Do you have similar issues reported, and any potential fixes we could try?

Thanks!

[Attachment Removed]

Steps to Reproduce
Launch game on an RTX 50-series laptop GPU

crash at start up

[Attachment Removed]

Just wanted to add that we’ve also had similar reports. Although some of the users who reported it are on desktop rather than laptops. EDIT: Forgot to mention we’re on 5.7.4

[Attachment Removed]

Hello,

Yes, we do have similar crashes on the same type of GPU and have heard from a couple users that disabling Hardware Accelerated GPU Scheduling (Windows Settings > System > Display > Graphics > Advanced graphics settings -> Hardware-accelerated GPU scheduling -> Off) seems to have stopped the crashes from occurring.

It’s also possible that running the game on the laptop monitor without an external display resolves the issue - or only running on the external display

It’s very likely it is related to Streamline (DLSS).

It hooks Present like this (from https://github.com/NVIDIA\-RTX/Streamline/blob/019994e18d256a3e92347888deb527feb7f58bc0/source/core/sl.interposer/dxgi/dxgiSwapchain.cpp\#L280 )

HRESULT STDMETHODCALLTYPE DXGISwapChain::Present(UINT SyncInterval, UINT Flags)
{
    // ... lambda with before-hooks → real Present → after-hooks ...
    SL_EXCEPTION_HANDLE_START
    return present(SyncInterval, Flags);
    SL_EXCEPTION_HANDLE_END_RETURN(E_ABORT)   // ← catches SEH exceptions, writes minidump, returns E_ABORT
}

It might be writing mini dumps for these to ProgramData/NVIDIA/Streamline/…

[Attachment Removed]

Okay thanks for the answer, i will check on it !

[Attachment Removed]