mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-02 04:51:26 +12:00
Update VulkanMemoryAllocator to 3.3.0
This commit is contained in:
parent
3dca4dd4bb
commit
0750574a03
6 changed files with 11 additions and 10 deletions
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -106,5 +106,5 @@
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/GPUOpen/VulkanMemoryAllocator"]
|
[submodule "3rdparty/GPUOpen/VulkanMemoryAllocator"]
|
||||||
path = 3rdparty/GPUOpen/VulkanMemoryAllocator
|
path = 3rdparty/GPUOpen/VulkanMemoryAllocator
|
||||||
url = ../../Megamouse/VulkanMemoryAllocator.git
|
url = ../../GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
|
|
2
3rdparty/GPUOpen/VulkanMemoryAllocator
vendored
2
3rdparty/GPUOpen/VulkanMemoryAllocator
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 37064843398c69cc0ca7f8cf5b33128c03a2bd74
|
Subproject commit 1d8f600fd424278486eade7ed3e877c99f0846b1
|
|
@ -53,7 +53,7 @@ private:
|
||||||
#pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn"
|
#pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#include "3rdparty/GPUOpen/VulkanMemoryAllocator/src/vk_mem_alloc.h"
|
#include "3rdparty/GPUOpen/VulkanMemoryAllocator/include/vk_mem_alloc.h"
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -880,7 +880,7 @@ namespace vk
|
||||||
}
|
}
|
||||||
else
|
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
|
// Useful for debugging different VRAM configurations
|
||||||
|
|
|
@ -153,11 +153,11 @@ namespace vk
|
||||||
rsx_log.warning("Rebalanced memory types successfully");
|
rsx_log.warning("Rebalanced memory types successfully");
|
||||||
}
|
}
|
||||||
|
|
||||||
mem_allocator_base::mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice)
|
mem_allocator_base::mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice /*pdev*/)
|
||||||
: m_device(dev), m_allocation_flags(0)
|
: 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)
|
: mem_allocator_base(dev, pdev)
|
||||||
{
|
{
|
||||||
// Initialize stats pool
|
// Initialize stats pool
|
||||||
|
@ -166,6 +166,7 @@ namespace vk
|
||||||
VmaAllocatorCreateInfo allocatorInfo = {};
|
VmaAllocatorCreateInfo allocatorInfo = {};
|
||||||
allocatorInfo.physicalDevice = pdev;
|
allocatorInfo.physicalDevice = pdev;
|
||||||
allocatorInfo.device = dev;
|
allocatorInfo.device = dev;
|
||||||
|
allocatorInfo.instance = inst;
|
||||||
|
|
||||||
std::vector<VkDeviceSize> heap_limits;
|
std::vector<VkDeviceSize> heap_limits;
|
||||||
const auto vram_allocation_limit = g_cfg.video.vk.vram_allocation_limit * 0x100000ull;
|
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()
|
f32 mem_allocator_vma::get_memory_usage()
|
||||||
{
|
{
|
||||||
vmaGetBudget(m_allocator, stats.data());
|
vmaGetHeapBudgets(m_allocator, stats.data());
|
||||||
|
|
||||||
float max_usage = 0.f;
|
float max_usage = 0.f;
|
||||||
for (const auto& info : stats)
|
for (const auto& info : stats)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include "../../rsx_utils.h"
|
#include "../../rsx_utils.h"
|
||||||
#include "shared.h"
|
#include "shared.h"
|
||||||
|
|
||||||
#include "3rdparty/GPUOpen/VulkanMemoryAllocator/src/vk_mem_alloc.h"
|
#include "3rdparty/GPUOpen/VulkanMemoryAllocator/include/vk_mem_alloc.h"
|
||||||
|
|
||||||
namespace vk
|
namespace vk
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ namespace vk
|
||||||
public:
|
public:
|
||||||
using mem_handle_t = void*;
|
using mem_handle_t = void*;
|
||||||
|
|
||||||
mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice /*pdev*/);
|
mem_allocator_base(const vk::render_device& dev, VkPhysicalDevice pdev);
|
||||||
virtual ~mem_allocator_base() = default;
|
virtual ~mem_allocator_base() = default;
|
||||||
|
|
||||||
virtual void destroy() = 0;
|
virtual void destroy() = 0;
|
||||||
|
@ -83,7 +83,7 @@ namespace vk
|
||||||
class mem_allocator_vma : public mem_allocator_base
|
class mem_allocator_vma : public mem_allocator_base
|
||||||
{
|
{
|
||||||
public:
|
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;
|
~mem_allocator_vma() override = default;
|
||||||
|
|
||||||
void destroy() override;
|
void destroy() override;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue