mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-09-21 20:06:40 +00:00
Switches VMA to Vulkan 1.1.
Tested By: Langbart Differential Revision: https://code.wildfiregames.com/D4947 This was SVN commit r27573.
This commit is contained in:
@@ -543,6 +543,12 @@ std::unique_ptr<CDevice> CDevice::Create(SDL_Window* window)
|
||||
vulkanFunctions.vkCreateImage = vkCreateImage;
|
||||
vulkanFunctions.vkDestroyImage = vkDestroyImage;
|
||||
vulkanFunctions.vkCmdCopyBuffer = vkCmdCopyBuffer;
|
||||
// Functions promoted to Vulkan 1.1.
|
||||
vulkanFunctions.vkGetBufferMemoryRequirements2KHR = vkGetBufferMemoryRequirements2;
|
||||
vulkanFunctions.vkGetImageMemoryRequirements2KHR = vkGetImageMemoryRequirements2;
|
||||
vulkanFunctions.vkBindBufferMemory2KHR = vkBindBufferMemory2;
|
||||
vulkanFunctions.vkBindImageMemory2KHR = vkBindImageMemory2;
|
||||
vulkanFunctions.vkGetPhysicalDeviceMemoryProperties2KHR = vkGetPhysicalDeviceMemoryProperties2;
|
||||
|
||||
VmaAllocatorCreateInfo allocatorCreateInfo{};
|
||||
allocatorCreateInfo.instance = device->m_Instance;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <glad/vulkan.h>
|
||||
#include <mutex>
|
||||
|
||||
#define VMA_VULKAN_VERSION 1000000
|
||||
#define VMA_VULKAN_VERSION 1001000
|
||||
#define VMA_ASSERT(EXPR) ASSERT(EXPR)
|
||||
#define VMA_HEAVY_ASSERT(EXPR) ENSURE(EXPR)
|
||||
#define VMA_DYNAMIC_VULKAN_FUNCTIONS 0
|
||||
@@ -33,7 +33,7 @@
|
||||
#define VMA_BUFFER_DEVICE_ADDRESS 0
|
||||
|
||||
#ifndef NDEBUG
|
||||
#define VMA_DEBUG_LOG(...) debug_printf(__VA_ARGS__)
|
||||
#define VMA_DEBUG_LOG(...) do { debug_printf(__VA_ARGS__); debug_printf("\n"); } while (0)
|
||||
#define VMA_STATS_STRING_ENABLED 1
|
||||
#else
|
||||
#define VMA_DEBUG_LOG(...)
|
||||
@@ -49,6 +49,7 @@
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wformat"
|
||||
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
|
||||
#pragma GCC diagnostic ignored "-Wparentheses"
|
||||
#pragma GCC diagnostic ignored "-Wundef"
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
@@ -57,6 +58,7 @@
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wformat"
|
||||
#pragma clang diagnostic ignored "-Wnullability-completeness"
|
||||
#pragma clang diagnostic ignored "-Wparentheses"
|
||||
#pragma clang diagnostic ignored "-Wundef"
|
||||
#pragma clang diagnostic ignored "-Wunused-parameter"
|
||||
#pragma clang diagnostic ignored "-Wunused-variable"
|
||||
@@ -68,6 +70,53 @@
|
||||
#pragma warning(disable: 4703) // Potentially uninitialized local pointer variable used.
|
||||
#endif
|
||||
|
||||
// GCC before 13 doesn't account some diagnostics:
|
||||
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||
#if GCC_VERSION && !defined(_MSVC_LANG)
|
||||
#define _MSVC_LANG 0
|
||||
#endif
|
||||
|
||||
// VMA always uses extension variants and glad doesn't provide extension
|
||||
// defines and types that were promoted to the core version. So we need to
|
||||
// define them manually.
|
||||
#define PFN_vkBindBufferMemory2KHR PFN_vkBindBufferMemory2
|
||||
#define PFN_vkBindImageMemory2KHR PFN_vkBindImageMemory2
|
||||
#define PFN_vkGetBufferMemoryRequirements2KHR PFN_vkGetBufferMemoryRequirements2
|
||||
#define PFN_vkGetImageMemoryRequirements2KHR PFN_vkGetImageMemoryRequirements2
|
||||
#define PFN_vkGetPhysicalDeviceMemoryProperties2KHR PFN_vkGetPhysicalDeviceMemoryProperties2
|
||||
|
||||
#define vkBindBufferMemory2KHR vkBindBufferMemory2
|
||||
#define vkBindImageMemory2KHR vkBindImageMemory2
|
||||
#define vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2
|
||||
#define vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2
|
||||
#define vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2
|
||||
|
||||
#define VkBindBufferMemoryInfoKHR VkBindBufferMemoryInfo
|
||||
#define VkBindImageMemoryInfoKHR VkBindImageMemoryInfo
|
||||
#define VkBufferMemoryRequirementsInfo2KHR VkBufferMemoryRequirementsInfo2
|
||||
#define VkImageMemoryRequirementsInfo2KHR VkImageMemoryRequirementsInfo2
|
||||
#define VkMemoryDedicatedAllocateInfoKHR VkMemoryDedicatedAllocateInfo
|
||||
#define VkMemoryDedicatedRequirementsKHR VkMemoryDedicatedRequirements
|
||||
#define VkMemoryRequirements2KHR VkMemoryRequirements2
|
||||
#define VkPhysicalDeviceMemoryProperties2KHR VkPhysicalDeviceMemoryProperties2
|
||||
|
||||
#define VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
|
||||
#define VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
|
||||
#define VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
|
||||
#define VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
|
||||
#define VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
|
||||
#define VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
|
||||
#define VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
|
||||
#define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
|
||||
|
||||
// Those extensions should be enabled automatically by picking Vulkan 1.1.
|
||||
#define VK_AMD_device_coherent_memory 0
|
||||
#define VK_KHR_bind_memory2 0
|
||||
#define VK_KHR_get_memory_requirements2 0
|
||||
#define VK_KHR_external_memory 0
|
||||
#define VK_EXT_memory_budget 0
|
||||
#define VK_EXT_memory_priority 0
|
||||
|
||||
#include "third_party/vma/vk_mem_alloc.h"
|
||||
|
||||
#if GCC_VERSION
|
||||
|
||||
+2
-1
@@ -14257,7 +14257,8 @@ void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVul
|
||||
VMA_COPY_IF_NOT_NULL(vkBindImageMemory2KHR);
|
||||
#endif
|
||||
|
||||
#if VMA_MEMORY_BUDGET
|
||||
// TODO: remove after merging https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/pull/322
|
||||
#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION >= 1001000
|
||||
VMA_COPY_IF_NOT_NULL(vkGetPhysicalDeviceMemoryProperties2KHR);
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user