mocha-engine / mocha

Mocha: A work-in-progress 3D game engine
GNU Lesser General Public License v3.0
53 stars 7 forks source link

Vulkan implementation does not free any objects #47

Closed MuffinTastic closed 1 year ago

MuffinTastic commented 1 year ago

This won't cause us problems in our little test scene, but as soon as we have dynamic scenes that are even remotely complex/detailed I have a good feeling it's gonna eat up RAM/VRAM and fast. I tried to hunt down all of the allocations, deleting the objects owned by the render context and implementing VulkanObject::Delete() on all the object classes, but some seem to elude me, as when I call vmaDestroyAllocator( m_allocator ) after freeing everything I could find, I get this

devenv_uh9gEskVTw

xezno commented 1 year ago

This is now fixed on our end in the rendering/deletion-queue branch. You might notice that there are a few objects that aren't getting destroyed - those aren't ours, I think it's caused by ocornut/imgui#3743 but I'm not 100% sure.

xezno commented 1 year ago

There were a few things I missed when I posted that, calling vmaDestroyAllocator now works as of https://github.com/xezno/mocha/commit/7bfddf0eb876a21e1215c6c2f84e64bfe30851bd.