WILD HEARTS™

WILD HEARTS™

View Stats:
A memory leak crash workaround for RTX owners
TLDR: try renaming the nvngx_dlss.dll file in the game directory and select a non-DLSS upscaling method or play at native resolution.

Wild Hearts would leak memory and eventually crash (or even crash the video driver, which then crashes other apps), sometimes with a "stopped working" or "exception breakpoint" popup, every time I played. Event Viewer showed Resource-Exhaustion-Detector warnings with Wild Hearts consuming ~24GB before crashing. Resource Monitor shows WILD HEARTS.exe with 14GB committed after the game loads, which is reasonable given that it's designed for consoles with 16GB RAM, although 12GB is the PC min spec. Task Manager process list only shows physical memory in use, but the Performance->Memory tab shows system total Committed, and the crashes happen when Committed exceeds RAM + system pagefile space.

I experimented with Special K tweaks (put the DLL in the game dir, the launcher/injector don't seem to work with the EA app launcher) and SK crash logs indicate the game throws an exception when calling NVSDK_NGX_UpdateFeature, which is the "over the air" update function introduced in the DLSS 3.1 SDK that downloads updated DLSS profiles while the game is running.

When I rename nvngx_dlss.dll (just add a leading "_" so you can restore it if needed) found in "WILD HEARTS\00_game\target_origin\ex" and change Settings->Graphics->Upscaling to anything other than DLSS/DLSS(Quality), it runs for 4+ hours with a consistent ~14GB committed (sometimes less during loading/etc), not leaking nor crashing. Physical memory use is also MUCH lower without DLSS, like half or less.

If you want to test this, it will leak faster and crash sooner (and is much more likely to throw an early exception) when running with a high framerate (use lower settings and no limiter). With a 60 FPS limit it would exhaust memory in an hour or two depending on how much was used by the rest of my system. With uncapped 100+ FPS it may crash by exception in a few minutes.

The new Nvidia driver (572.47) lets the game select & apply DLSS modes when the DLL is missing but it doesn't work (just lowers the framebuffer resolution with ugly re-scaling) and doesn't leak or crash. With the older driver (565.90) the DLSS and DLSS(Quality) options were greyed-out in the game settings and could not be selected. Edit: the 572 series drivers are not stable, so I went back to 565.90. Try the 572.65 hotfix release if you bought an RTX 50 series card and get the black screen issues.

Special K has an ini file option called DisableOTAUpdates, but that doesn't block the game from calling the updater, leaking, and crashing. With SK it eventually also had an exception crash while running with FSR instead of DLSS. It had only 14GB committed in the crash log, so it can happen even without the leak if the DLL is present. Running with SK also causes the game not to quit cleanly, leaving a hung process using a lot of RAM and the game unable to re-launch, so you have to force-kill the process. I'm no longer using SK for Wild Hearts.

My system specs: Windows 10 x64, AMD 5900X CPU, RTX 3070Ti GPU, 32GB RAM, game installed on SATA 3.0 SSD, DualShock 4 controller, 1440p 144Hz adaptive sync monitors (one G-sync, one Freesync). I only own the game on the EA app and not on Steam. It runs best for me at medium settings + high textures, now with FSR(Quality) instead of DLSS(Quality), and I disable Depth of Field. The in-game 60FPS cap fixes the constant weird stuttering (there are still some occasional loading or shader compiling hiccups).

Successful workarounds: remove the DLSS DLL.
Unsuccessful attempts: using a newer DLSS DLL, updating video driver, Special K DisableOTAUpdates=true, stopping the Nvidia Display Container service.
Last edited by Bobtree; Mar 4 @ 5:19pm