martty/vuk

Memory leaks when allocating large buffers via frame resource

Tearnote opened this issue · 1 comments

When a few specific requirements are met, memory is not freed as expected:

  • A buffer is allocated via an allocator made from DeviceFrameResource,
  • The buffer memory usage is eGPUonly,
  • The allocation is large enough that it would fail with an out of memory error if it had memory usage type eCPUtoGPU.

This leaks all allocated memory (it's not freed after the "frames in flight" number of frames), which leads to VRAM exhaustion within about a second.

The issue is not related to the recent large allocation support (997ad59), behavior is the same even before that commit.

49ba7c7 should fix this, please reopen if not.