Update Vulkan Memory Allocator to 3.2.1

This commit is contained in:
Xphalnos 2025-03-25 20:53:08 +01:00
parent 1b5d9a34df
commit 637f7d608d
4 changed files with 19117 additions and 18125 deletions

File diff suppressed because it is too large Load diff

View file

@ -832,7 +832,7 @@ namespace vk
}
else
{
m_allocator = std::make_unique<vk::mem_allocator_vma>(*this, pdev);
m_allocator = std::make_unique<vk::mem_allocator_vma>(*this, pdev, pdev);
}
// Useful for debugging different VRAM configurations

View file

@ -157,7 +157,7 @@ namespace vk
: m_device(dev), m_allocation_flags(0)
{}
mem_allocator_vma::mem_allocator_vma(const vk::render_device& dev, VkPhysicalDevice pdev)
mem_allocator_vma::mem_allocator_vma(const vk::render_device& dev, VkPhysicalDevice pdev, VkInstance inst)
: mem_allocator_base(dev, pdev)
{
// Initialize stats pool
@ -166,6 +166,7 @@ namespace vk
VmaAllocatorCreateInfo allocatorInfo = {};
allocatorInfo.physicalDevice = pdev;
allocatorInfo.device = dev;
allocatorInfo.instance = inst;
std::vector<VkDeviceSize> heap_limits;
const auto vram_allocation_limit = g_cfg.video.vk.vram_allocation_limit * 0x100000ull;
@ -299,7 +300,7 @@ namespace vk
f32 mem_allocator_vma::get_memory_usage()
{
vmaGetBudget(m_allocator, stats.data());
vmaGetHeapBudgets(m_allocator, stats.data());
float max_usage = 0.f;
for (const auto& info : stats)

View file

@ -55,7 +55,7 @@ namespace vk
public:
using mem_handle_t = void*;
mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice /*pdev*/);
mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice);
virtual ~mem_allocator_base() = default;
virtual void destroy() = 0;
@ -83,7 +83,7 @@ namespace vk
class mem_allocator_vma : public mem_allocator_base
{
public:
mem_allocator_vma(const vk::render_device& dev, VkPhysicalDevice pdev);
mem_allocator_vma(const vk::render_device& dev, VkPhysicalDevice pdev, VkInstance inst);
~mem_allocator_vma() override = default;
void destroy() override;