Compare commits

...

2 commits

Author SHA1 Message Date
Megamouse
64a3e50d6c Fix some warnings
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04 gcc (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04-arm clang (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04 clang (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
2025-05-15 16:23:47 +02:00
Megamouse
0750574a03 Update VulkanMemoryAllocator to 3.3.0 2025-05-15 16:23:47 +02:00
7 changed files with 13 additions and 12 deletions

2
.gitmodules vendored
View file

@ -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

@ -1 +1 @@
Subproject commit 37064843398c69cc0ca7f8cf5b33128c03a2bd74 Subproject commit 1d8f600fd424278486eade7ed3e877c99f0846b1

View file

@ -6181,7 +6181,7 @@ s64 spu_thread::get_ch_value(u32 ch)
{ {
if (utils::has_waitpkg()) if (utils::has_waitpkg())
{ {
__tpause(std::min<u32>(eventstat_spin_count, 10) * 500, 0x1); __tpause(static_cast<u32>(std::min<u64>(eventstat_spin_count, 10) * 500), 0x1);
} }
else else
{ {
@ -6194,7 +6194,7 @@ s64 spu_thread::get_ch_value(u32 ch)
}; };
// Provide the first X64 cache line of the reservation to be tracked // Provide the first X64 cache line of the reservation to be tracked
__mwaitx<check_wait_t>(std::min<u32>(eventstat_spin_count, 17) * 500, 0xf0, std::addressof(*resrv_mem), +rtime, vm::reservation_acquire(raddr)); __mwaitx<check_wait_t>(static_cast<u32>(std::min<u64>(eventstat_spin_count, 17) * 500), 0xf0, std::addressof(*resrv_mem), +rtime, vm::reservation_acquire(raddr));
} }
} }
else else

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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;