Prepare to support Vulkan 1.2

No way to test for now because no Vulkan SDK available.
diff --git a/src/VmaUsage.h b/src/VmaUsage.h
index 5d82451..3981d42 100644
--- a/src/VmaUsage.h
+++ b/src/VmaUsage.h
@@ -59,6 +59,7 @@
 //#define VMA_DEBUG_GLOBAL_MUTEX 1

 //#define VMA_MEMORY_BUDGET 0

 

+//#define VMA_VULKAN_VERSION 1002000 // Vulkan 1.2

 #define VMA_VULKAN_VERSION 1001000 // Vulkan 1.1

 //#define VMA_VULKAN_VERSION 1000000 // Vulkan 1.0

 

diff --git a/src/VulkanSample.cpp b/src/VulkanSample.cpp
index e9872d5..067c581 100644
--- a/src/VulkanSample.cpp
+++ b/src/VulkanSample.cpp
@@ -1172,7 +1172,15 @@
     appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);

     appInfo.pEngineName = "Adam Sawicki Engine";

     appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);

-    appInfo.apiVersion = VMA_VULKAN_VERSION == 1001000 ? VK_API_VERSION_1_1 : VK_API_VERSION_1_0;

+#if VMA_VULKAN_VERSION == 1002000

+    appInfo.apiVersion = VK_API_VERSION_1_2;

+#elif VMA_VULKAN_VERSION == 1001000

+    appInfo.apiVersion = VK_API_VERSION_1_1;

+#elif VMA_VULKAN_VERSION == 1000000

+    appInfo.apiVersion = VK_API_VERSION_1_0;

+#else

+    #error Invalid VMA_VULKAN_VERSION.

+#endif

 

     VkInstanceCreateInfo instInfo = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO };

     instInfo.pApplicationInfo = &appInfo;

diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h
index 72cb358..f1d7048 100644
--- a/src/vk_mem_alloc.h
+++ b/src/vk_mem_alloc.h
@@ -1785,7 +1785,9 @@
 // where AAA = major, BBB = minor, CCC = patch.

 // If you want to use version > 1.0, it still needs to be enabled via VmaAllocatorCreateInfo::vulkanApiVersion.

 #if !defined(VMA_VULKAN_VERSION)

-    #if defined(VK_VERSION_1_1)

+    #if defined(VK_VERSION_1_2)

+        #define VMA_VULKAN_VERSION 1002000

+    #elif defined(VK_VERSION_1_1)

         #define VMA_VULKAN_VERSION 1001000

     #else

         #define VMA_VULKAN_VERSION 1000000

@@ -14908,6 +14910,12 @@
         VMA_ASSERT(0 && "VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT set but required extension is disabled by preprocessor macros.");

     }

 #endif

+#if VMA_VULKAN_VERSION < 1002000

+    if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 2, 0))

+    {

+        VMA_ASSERT(0 && "vulkanApiVersion >= VK_API_VERSION_1_2 but required Vulkan version is disabled by preprocessor macros.");

+    }

+#endif

 #if VMA_VULKAN_VERSION < 1001000

     if(m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0))

     {