Hello,
Since Conan Exiles Enhanced update to patch 2.2.0 (update to UE 5.8.2 + IRIS networking), I got “Out of video memory trying to allocate a rendering resource” when loading my single player character save.
My GPU is NVIDIA GeForce RTX 2070 (8GB VRAM) with proprietary driver (regularly updated to latest non-beta 595 branch, but downgrading to the latest non-beta 580 driver makes no difference).
System is Debian 12 Bookworm (issue started at kernel 6.1.0-52 and now it’s 6.1.0-54), 32 GB RAM, Intel i7-4930k (6 cores - 12 threads), Game on Sata SSD.
My screen resolution is ultrawide 5760x1080 (triple 1920x1080 screens).
I was able to play at maximum settings in the legacy version of the game (UE4), and at “high” preset in CEE before patch 2.2.0 (earlier UE5 but I don’t know which version).
The proton log tells that the out of video memory happens at a call to vkd3d_allocate_device_memory. The game log tells that the error occurs in a call to D3D12 Adapter->CreateCommittedResource.
The game log indicates that the VRAM is full, but only half of system RAM is used.
Monitoring VRAM usage with the NVidia settings applet (or a nvidia-smi loop in a terminal) shows that the VRAM goes up to 96% usage at the time of the crash, so it appears that the vram exhaustion is real and the OOM error is legit (not a faulty check).
The only way to not have the game OOM when loading the save is to reduce the initial system VRAM usage to the absolute minimum. So I have to close any open program and put everything on a single desktop space. When idle Xorg and Gnome shell use about 260 MB of VRAM. Then with Steam open it goes up to 440 MB of used VRAM. In that case the game doesn’t crash with OOM, but the best setting I can achieve with that is: 80 vertical FOV, TSR Quality + Low preset with medium Lumen (other settings are default). Anything higher will cause immediate OOM on load. The VRAM usage goes up to 7790+ MB while loading.
When the game has successfully loaded, the VRAM usage slowly goes down in a few minutes to 6200-6700 MB (5700 with low Lumen). Then I can open other programs like firefox and the game continues to play (unless I open too many programs and the VRAM usage hits the limit).
From my search on the issue, I understand that the NVIDIA driver should be able to use system RAM as a fallback when the application “overcommits”, but in this case no fallback happens and CEE crashes. On the vkd3d-proton github they say that vkd3d allocates whatever the application ask but can’t handle OOM if the application strictly requests device memory and it’s exhausted (no fallback mechanism provided by vkd3d itself). On the Unreal Engine forums there are reports of VRAM usage spikes with certain UE versions, and I also understand that the more recent UE versions added features that makes them more demanding on VRAM.
I can’t tell if the cause lies in the NVidia driver not being setup correctly on my system, the vkd3d VRAM management being too strict and missing a fallback mechanism, DXVK/Proton not requesting the proper type of VRAM, a bug in version 5.8.2 of Unreal Engine that causes VRAM spikes or the game itself not using UE5.8+ properly.
I reported the issue to Funcom (both on the forums and to the support).
I reported the issue to Valve/proton.
I reported the issue to vkd3d-proton.
I also tried limiting VRAM with a DXGI option, using latest vkd3d-proton (3.0.1), disabling RayTracing, Lumen or Nanite and setting various PoolSize options in the game Engine.ini, but none of that had any effect.
What I could try next but am reluctant to do is to compile a custom vkd3d-proton that overrides the requested VRAM flags to allow allocation in system RAM so that the fallback to system RAM would occur. I don’t mind system RAM being slower as it would just be to allow the game to survive VRAM spikes and avoid the OOM crash, but I don’t know if I’ll be able to do it or if it will be effective.
Regards.