Download

Increase device global heap size - (DirectX 12)

Hello,

I’m currently using 4.23.1, and porting my C++ project from DX11 to DX12.

After selecting “DirectX 12” as my default RHI (UE4 -> Project Settings -> Platforms -> Windows -> Default RHI = DirectX 12) and restarting the Editor, Output Log keeps on firing the following warning messages.


LogD3D12RHI: Warning: Descriptor cache ran out of sub allocated descriptor blocks! Moving to Context local View heap strategy
LogD3D12RHI: Warning: This should only happen in the Editor where it doesn't matter as much. If it happens in game you should increase the device global heap size!
LogD3D12RHI: Warning: OnlineHeap RollOver Detected. Increase the heap size to prevent creation of additional heaps

It is obvious that I need to increase heap size.

Since UE4 Project Compiler/Linker settings are not visible in Visual Studio 2019, I tried searching for “heap” in engine’s **ToolChain **files. No way! I think I’m missing something…

Would anyone please tell me the proper way for increasing device global heap size?

Hi @matahari , I’ve got the same issue in a 4.24.2 project, do you have any solution to this ?

Hi [USER=“96877”]Teapot Creation[/USER] , I’m afraid no… Still having the same issue with 4.24.3.

Also here: having the same issue in 4.25.3. It’s also in the logs when running a packaged (development) project. No solutions?

Bump with Unreal engine 4.25.3.

I get the same issues on 4.25.4

Same 4.26.1

So got this error and some stuttering in game. I increase those 2 values to 1.000.000 ( from default 500.000) . And it fixed it. I am not 100% sure about the detail under the hood of this DX12 implementation thought.
Adding this to DefaultEngine.ini
[SystemSettings]
D3D12.LocalViewHeapSize=1000000
D3D12.GlobalViewHeapSize=1000000

Take a look at your VRAM usage by using console command stat RHI. You might have something either leaking memory (VRAM) or the garbage collector not deallocating the UObject that “owns” some VRAM before the VRAM usage exceeds limits.