mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
The boneDescPool_ had MAX_BONE_SETS=2048 but sets were never freed when instances were removed (only when clear() reset the whole pool on map load). As tiles streamed in/out, each new animated instance consumed 2 pool slots (one per frame index) permanently. After ~1024 animated instances created total, vkAllocateDescriptorSets began failing silently and returning VK_NULL_HANDLE. render() skips instances with null boneSet[frameIndex], making them invisible — appearing as per-frame flicker as the culling pass included them but the render pass excluded them. Fix: destroyInstanceBones() now calls vkFreeDescriptorSets() for each non-null boneSet before destroying the bone SSBO. The pool already had VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT set for this purpose. Also increased MAX_BONE_SETS from 2048 to 8192 for extra headroom. |
||
|---|---|---|
| .. | ||
| audio | ||
| auth | ||
| core | ||
| game | ||
| network | ||
| pipeline | ||
| rendering | ||
| ui | ||
| main.cpp | ||