Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/renderer/backend/vulkan/VMA.h
Show All 19 Lines | |||||
#include "lib/debug.h" | #include "lib/debug.h" | ||||
#include "lib/sysdep/os.h" | #include "lib/sysdep/os.h" | ||||
#include "ps/CLogger.h" | #include "ps/CLogger.h" | ||||
#include <glad/vulkan.h> | #include <glad/vulkan.h> | ||||
#include <mutex> | #include <mutex> | ||||
#define VMA_VULKAN_VERSION 1000000 | #define VMA_VULKAN_VERSION 1001000 | ||||
#define VMA_ASSERT(EXPR) ASSERT(EXPR) | #define VMA_ASSERT(EXPR) ASSERT(EXPR) | ||||
#define VMA_HEAVY_ASSERT(EXPR) ENSURE(EXPR) | #define VMA_HEAVY_ASSERT(EXPR) ENSURE(EXPR) | ||||
#define VMA_DYNAMIC_VULKAN_FUNCTIONS 0 | #define VMA_DYNAMIC_VULKAN_FUNCTIONS 0 | ||||
#define VMA_STATIC_VULKAN_FUNCTIONS 0 | #define VMA_STATIC_VULKAN_FUNCTIONS 0 | ||||
#define VMA_BUFFER_DEVICE_ADDRESS 0 | #define VMA_BUFFER_DEVICE_ADDRESS 0 | ||||
#ifndef NDEBUG | #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 | #define VMA_STATS_STRING_ENABLED 1 | ||||
#else | #else | ||||
#define VMA_DEBUG_LOG(...) | #define VMA_DEBUG_LOG(...) | ||||
#define VMA_STATS_STRING_ENABLED 0 | #define VMA_STATS_STRING_ENABLED 0 | ||||
#endif | #endif | ||||
#if OS_WIN | #if OS_WIN | ||||
// MSVC doesn't enable std::shared_mutex for XP toolkit. | // MSVC doesn't enable std::shared_mutex for XP toolkit. | ||||
#define VMA_USE_STL_SHARED_MUTEX 0 | #define VMA_USE_STL_SHARED_MUTEX 0 | ||||
#endif | #endif | ||||
#if GCC_VERSION | #if GCC_VERSION | ||||
#pragma GCC diagnostic push | #pragma GCC diagnostic push | ||||
#pragma GCC diagnostic ignored "-Wformat" | #pragma GCC diagnostic ignored "-Wformat" | ||||
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" | #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" | ||||
#pragma GCC diagnostic ignored "-Wparentheses" | |||||
#pragma GCC diagnostic ignored "-Wundef" | #pragma GCC diagnostic ignored "-Wundef" | ||||
#pragma GCC diagnostic ignored "-Wunused-parameter" | #pragma GCC diagnostic ignored "-Wunused-parameter" | ||||
#pragma GCC diagnostic ignored "-Wunused-variable" | #pragma GCC diagnostic ignored "-Wunused-variable" | ||||
#endif | #endif | ||||
#if CLANG_VERSION | #if CLANG_VERSION | ||||
#pragma clang diagnostic push | #pragma clang diagnostic push | ||||
#pragma clang diagnostic ignored "-Wformat" | #pragma clang diagnostic ignored "-Wformat" | ||||
#pragma clang diagnostic ignored "-Wnullability-completeness" | #pragma clang diagnostic ignored "-Wnullability-completeness" | ||||
#pragma clang diagnostic ignored "-Wparentheses" | |||||
#pragma clang diagnostic ignored "-Wundef" | #pragma clang diagnostic ignored "-Wundef" | ||||
#pragma clang diagnostic ignored "-Wunused-parameter" | #pragma clang diagnostic ignored "-Wunused-parameter" | ||||
#pragma clang diagnostic ignored "-Wunused-variable" | #pragma clang diagnostic ignored "-Wunused-variable" | ||||
#endif | #endif | ||||
#if MSC_VERSION | #if MSC_VERSION | ||||
#pragma warning(push, 1) | #pragma warning(push, 1) | ||||
#pragma warning(disable: 4100) // Unreferenced formal parameter. | #pragma warning(disable: 4100) // Unreferenced formal parameter. | ||||
#pragma warning(disable: 4701) // Potentially uninitialized local variable used. | #pragma warning(disable: 4701) // Potentially uninitialized local variable used. | ||||
#pragma warning(disable: 4703) // Potentially uninitialized local pointer variable used. | #pragma warning(disable: 4703) // Potentially uninitialized local pointer variable used. | ||||
#endif | #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" | #include "third_party/vma/vk_mem_alloc.h" | ||||
#if GCC_VERSION | #if GCC_VERSION | ||||
#pragma GCC diagnostic pop | #pragma GCC diagnostic pop | ||||
#endif | #endif | ||||
#if CLANG_VERSION | #if CLANG_VERSION | ||||
#pragma clang diagnostic pop | #pragma clang diagnostic pop | ||||
#endif | #endif | ||||
#if MSC_VERSION | #if MSC_VERSION | ||||
#pragma warning(pop) | #pragma warning(pop) | ||||
#endif | #endif | ||||
#endif // INCLUDED_RENDERER_BACKEND_VULKAN_VMA | #endif // INCLUDED_RENDERER_BACKEND_VULKAN_VMA |
Wildfire Games · Phabricator