diff options
| author | 2023-06-18 12:27:31 +0300 | |
|---|---|---|
| committer | 2023-06-18 14:14:03 +0300 | |
| commit | ee0d68300e68a221d9930935f26d0c96be79357b (patch) | |
| tree | 51b931428967ff49f5feb877ee68b718b737e15f | |
| parent | renderer_vulkan: Use VMA for buffers (diff) | |
| download | yuzu-ee0d68300e68a221d9930935f26d0c96be79357b.tar.gz yuzu-ee0d68300e68a221d9930935f26d0c96be79357b.tar.xz yuzu-ee0d68300e68a221d9930935f26d0c96be79357b.zip | |
renderer_vulkan: Add missing initializers
| -rw-r--r-- | externals/vma/vma.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 12 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_memory_allocator.cpp | 6 |
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{}; |