summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--externals/vma/vma.cpp2
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp12
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.cpp6
3 files changed, 15 insertions, 5 deletions
diff --git a/externals/vma/vma.cpp b/externals/vma/vma.cpp
index 7f7df9cff..ff1acc320 100644
--- a/externals/vma/vma.cpp
+++ b/externals/vma/vma.cpp
@@ -2,4 +2,6 @@
2// SPDX-License-Identifier: GPL-2.0-or-later 2// SPDX-License-Identifier: GPL-2.0-or-later
3 3
4#define VMA_IMPLEMENTATION 4#define VMA_IMPLEMENTATION
5#define VMA_STATIC_VULKAN_FUNCTIONS 0
6#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
5#include <vk_mem_alloc.h> \ No newline at end of file 7#include <vk_mem_alloc.h> \ No newline at end of file
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index 541f0c1da..94dd1aa14 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -597,18 +597,22 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
597 graphics_queue = logical.GetQueue(graphics_family); 597 graphics_queue = logical.GetQueue(graphics_family);
598 present_queue = logical.GetQueue(present_family); 598 present_queue = logical.GetQueue(present_family);
599 599
600 const VmaVulkanFunctions functions = { 600 VmaVulkanFunctions functions{};
601 .vkGetInstanceProcAddr = dld.vkGetInstanceProcAddr, 601 functions.vkGetInstanceProcAddr = dld.vkGetInstanceProcAddr;
602 .vkGetDeviceProcAddr = dld.vkGetDeviceProcAddr, 602 functions.vkGetDeviceProcAddr = dld.vkGetDeviceProcAddr;
603 };
604 603
605 const VmaAllocatorCreateInfo allocator_info = { 604 const VmaAllocatorCreateInfo allocator_info = {
606 .flags = VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, 605 .flags = VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
607 .physicalDevice = physical, 606 .physicalDevice = physical,
608 .device = *logical, 607 .device = *logical,
608 .preferredLargeHeapBlockSize = 0,
609 .pAllocationCallbacks = nullptr,
610 .pDeviceMemoryCallbacks = nullptr,
611 .pHeapSizeLimit = nullptr,
609 .pVulkanFunctions = &functions, 612 .pVulkanFunctions = &functions,
610 .instance = instance, 613 .instance = instance,
611 .vulkanApiVersion = VK_API_VERSION_1_1, 614 .vulkanApiVersion = VK_API_VERSION_1_1,
615 .pTypeExternalMemoryHandleTypes = nullptr,
612 }; 616 };
613 617
614 vk::Check(vmaCreateAllocator(&allocator_info, &allocator)); 618 vk::Check(vmaCreateAllocator(&allocator_info, &allocator));
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
index d2e1ef58e..20d36680c 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
@@ -75,7 +75,7 @@ struct Range {
75 75
76[[nodiscard]] VkMemoryPropertyFlags MemoryUsagePreferedVmaFlags(MemoryUsage usage) { 76[[nodiscard]] VkMemoryPropertyFlags MemoryUsagePreferedVmaFlags(MemoryUsage usage) {
77 return usage != MemoryUsage::DeviceLocal ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT 77 return usage != MemoryUsage::DeviceLocal ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
78 : VkMemoryPropertyFlags{}; 78 : VkMemoryPropertyFlagBits{};
79} 79}
80 80
81[[nodiscard]] VmaAllocationCreateFlags MemoryUsageVmaFlags(MemoryUsage usage) { 81[[nodiscard]] VmaAllocationCreateFlags MemoryUsageVmaFlags(MemoryUsage usage) {
@@ -239,8 +239,10 @@ vk::Image MemoryAllocator::CreateImage(const VkImageCreateInfo& ci) const {
239 .usage = VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE, 239 .usage = VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE,
240 .requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, 240 .requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
241 .preferredFlags = 0, 241 .preferredFlags = 0,
242 .memoryTypeBits = 0,
242 .pool = VK_NULL_HANDLE, 243 .pool = VK_NULL_HANDLE,
243 .pUserData = nullptr, 244 .pUserData = nullptr,
245 .priority = 0.f,
244 }; 246 };
245 247
246 VkImage handle{}; 248 VkImage handle{};
@@ -259,8 +261,10 @@ vk::Buffer MemoryAllocator::CreateBuffer(const VkBufferCreateInfo& ci, MemoryUsa
259 .usage = MemoryUsageVma(usage), 261 .usage = MemoryUsageVma(usage),
260 .requiredFlags = MemoryUsageRequiredVmaFlags(usage), 262 .requiredFlags = MemoryUsageRequiredVmaFlags(usage),
261 .preferredFlags = MemoryUsagePreferedVmaFlags(usage), 263 .preferredFlags = MemoryUsagePreferedVmaFlags(usage),
264 .memoryTypeBits = 0,
262 .pool = VK_NULL_HANDLE, 265 .pool = VK_NULL_HANDLE,
263 .pUserData = nullptr, 266 .pUserData = nullptr,
267 .priority = 0.f,
264 }; 268 };
265 269
266 VkBuffer handle{}; 270 VkBuffer handle{};