diff --git a/Source/Engine/GraphicsDevice/Vulkan/Config.h b/Source/Engine/GraphicsDevice/Vulkan/Config.h index a3bb1662c..6a5a309e4 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Config.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Config.h @@ -26,37 +26,10 @@ #define VULKAN_ENABLE_API_DUMP 0 #define VULKAN_RESET_QUERY_POOLS 0 #define VULKAN_HASH_POOLS_WITH_TYPES_USAGE_ID 1 - -#ifndef VULKAN_USE_DEBUG_LAYER #define VULKAN_USE_DEBUG_LAYER GPU_ENABLE_DIAGNOSTICS -#endif #ifndef VULKAN_HAS_PHYSICAL_DEVICE_PROPERTIES2 #define VULKAN_HAS_PHYSICAL_DEVICE_PROPERTIES2 0 #endif -#ifdef VK_KHR_maintenance1 -#define VULKAN_SUPPORTS_MAINTENANCE_LAYER1 1 -#else -#define VULKAN_SUPPORTS_MAINTENANCE_LAYER1 0 -#endif - -#ifdef VK_KHR_maintenance2 -#define VULKAN_SUPPORTS_MAINTENANCE_LAYER2 1 -#else -#define VULKAN_SUPPORTS_MAINTENANCE_LAYER2 0 -#endif - -#ifdef VK_EXT_validation_cache -#define VULKAN_SUPPORTS_VALIDATION_CACHE 1 -#else -#define VULKAN_SUPPORTS_VALIDATION_CACHE 0 -#endif - -#ifdef VK_EXT_debug_utils -#define VULKAN_SUPPORTS_DEBUG_UTILS 1 -#else -#define VULKAN_SUPPORTS_DEBUG_UTILS 0 -#endif - #endif diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.Layers.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.Layers.cpp index 88c30d660..d65425041 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.Layers.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.Layers.cpp @@ -34,7 +34,7 @@ static const char* GValidationLayers[] = static const char* GInstanceExtensions[] = { -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache VK_EXT_VALIDATION_CACHE_EXTENSION_NAME, #endif nullptr @@ -43,39 +43,41 @@ static const char* GInstanceExtensions[] = static const char* GDeviceExtensions[] = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER1 +#if VK_KHR_maintenance1 VK_KHR_MAINTENANCE1_EXTENSION_NAME, #endif -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache VK_EXT_VALIDATION_CACHE_EXTENSION_NAME, #endif +#if VK_KHR_sampler_mirror_clamp_to_edge VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, +#endif nullptr }; struct LayerExtension { - VkLayerProperties LayerProps; - Array ExtensionProps; + VkLayerProperties Layer; + Array Extensions; LayerExtension() { - Platform::MemoryClear(&LayerProps, sizeof(LayerProps)); + Platform::MemoryClear(&Layer, sizeof(Layer)); } - void AddUniqueExtensionNames(Array& result) + void GetExtensions(Array& result) { - for (int32 index = 0; index < ExtensionProps.Count(); index++) + for (auto& e : Extensions) { - result.AddUnique(StringAnsi(ExtensionProps[index].extensionName)); + result.AddUnique(StringAnsi(e.extensionName)); } } - void AddAnsiExtensionNames(Array& result) + void GetExtensions(Array& result) { - for (int32 index = 0; index < ExtensionProps.Count(); index++) + for (auto& e : Extensions) { - result.AddUnique(ExtensionProps[index].extensionName); + result.AddUnique(e.extensionName); } } }; @@ -91,9 +93,9 @@ static void EnumerateInstanceExtensionProperties(const char* layerName, LayerExt if (count > 0) { - outLayer.ExtensionProps.Clear(); - outLayer.ExtensionProps.AddDefault(count); - result = vkEnumerateInstanceExtensionProperties(layerName, &count, outLayer.ExtensionProps.Get()); + outLayer.Extensions.Clear(); + outLayer.Extensions.AddDefault(count); + result = vkEnumerateInstanceExtensionProperties(layerName, &count, outLayer.Extensions.Get()); ASSERT(result >= VK_SUCCESS); } } while (result == VK_INCOMPLETE); @@ -110,9 +112,9 @@ static void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const ch if (count > 0) { - outLayer.ExtensionProps.Clear(); - outLayer.ExtensionProps.AddDefault(count); - result = vkEnumerateDeviceExtensionProperties(device, layerName, &count, outLayer.ExtensionProps.Get()); + outLayer.Extensions.Clear(); + outLayer.Extensions.AddDefault(count); + result = vkEnumerateDeviceExtensionProperties(device, layerName, &count, outLayer.Extensions.Get()); ASSERT(result >= VK_SUCCESS); } } while (result == VK_INCOMPLETE); @@ -120,31 +122,29 @@ static void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const ch static void TrimDuplicates(Array& array) { - for (int32 outerIndex = array.Count() - 1; outerIndex >= 0; --outerIndex) + for (int32 i = array.Count() - 1; i >= 0; i--) { bool found = false; - for (int32 innerIndex = outerIndex - 1; innerIndex >= 0; --innerIndex) + for (int32 j = i - 1; j >= 0; j--) { - if (!StringUtils::Compare(array[outerIndex], array[innerIndex])) + if (!StringUtils::Compare(array[i], array[j])) { found = true; break; } } - if (found) { - array.RemoveAt(outerIndex); + array.RemoveAt(i); } } } -static inline int FindLayerIndexInList(const Array& list, const char* layerName) +static int FindLayerIndex(const Array& list, const char* layerName) { - // 0 is reserved for NULL/instance for (int32 i = 1; i < list.Count(); i++) { - if (!StringUtils::Compare(list[i].LayerProps.layerName, layerName)) + if (!StringUtils::Compare(list[i].Layer.layerName, layerName)) { return i; } @@ -152,20 +152,20 @@ static inline int FindLayerIndexInList(const Array& list, const return INVALID_INDEX; } -static bool FindLayerInList(const Array& list, const char* layerName) +static bool ContainsLayer(const Array& list, const char* layerName) { - return FindLayerIndexInList(list, layerName) != INVALID_INDEX; + return FindLayerIndex(list, layerName) != INVALID_INDEX; } -static bool FindLayerExtensionInList(const Array& list, const char* extensionName, const char*& foundLayer) +static bool FindLayerExtension(const Array& list, const char* extensionName, const char*& foundLayer) { for (int32 extIndex = 0; extIndex < list.Count(); extIndex++) { - for (int32 i = 0; i < list[extIndex].ExtensionProps.Count(); i++) + for (int32 i = 0; i < list[extIndex].Extensions.Count(); i++) { - if (!StringUtils::Compare(list[extIndex].ExtensionProps[i].extensionName, extensionName)) + if (!StringUtils::Compare(list[extIndex].Extensions[i].extensionName, extensionName)) { - foundLayer = list[extIndex].LayerProps.layerName; + foundLayer = list[extIndex].Layer.layerName; return true; } } @@ -173,10 +173,10 @@ static bool FindLayerExtensionInList(const Array& list, const ch return false; } -static bool FindLayerExtensionInList(const Array& list, const char* extensionName) +static bool FindLayerExtension(const Array& list, const char* extensionName) { const char* dummy = nullptr; - return FindLayerExtensionInList(list, extensionName, dummy); + return FindLayerExtension(list, extensionName, dummy); } void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInstanceExtensions, Array& outInstanceLayers, bool& outDebugUtils) @@ -185,17 +185,14 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst outDebugUtils = false; Array globalLayerExtensions; - // 0 is reserved for NULL/instance globalLayerExtensions.AddDefault(1); - - // Global extensions EnumerateInstanceExtensionProperties(nullptr, globalLayerExtensions[0]); Array foundUniqueExtensions; Array foundUniqueLayers; - for (int32 i = 0; i < globalLayerExtensions[0].ExtensionProps.Count(); i++) + for (int32 i = 0; i < globalLayerExtensions[0].Extensions.Count(); i++) { - foundUniqueExtensions.AddUnique(StringAnsi(globalLayerExtensions[0].ExtensionProps[i].extensionName)); + foundUniqueExtensions.AddUnique(StringAnsi(globalLayerExtensions[0].Extensions[i].extensionName)); } { @@ -219,9 +216,9 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst { LayerExtension* layer = &globalLayerExtensions[i + 1]; auto& prop = globalLayerProperties[i]; - layer->LayerProps = prop; + layer->Layer = prop; EnumerateInstanceExtensionProperties(prop.layerName, *layer); - layer->AddUniqueExtensionNames(foundUniqueExtensions); + layer->GetExtensions(foundUniqueExtensions); foundUniqueLayers.AddUnique(StringAnsi(prop.layerName)); } } @@ -254,7 +251,7 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst if (useVkTrace) { const char* VkTraceName = "VK_LAYER_LUNARG_vktrace"; - if (FindLayerInList(globalLayerExtensions, VkTraceName)) + if (ContainsLayer(globalLayerExtensions, VkTraceName)) { outInstanceLayers.Add(VkTraceName); vkTrace = true; @@ -282,7 +279,7 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst bool hasKhronosStandardValidationLayer = false, hasLunargStandardValidationLayer = false; #if VULKAN_USE_KHRONOS_STANDARD_VALIDATION const char* vkLayerKhronosValidation = "VK_LAYER_KHRONOS_validation"; - hasKhronosStandardValidationLayer = FindLayerInList(globalLayerExtensions, vkLayerKhronosValidation); + hasKhronosStandardValidationLayer = ContainsLayer(globalLayerExtensions, vkLayerKhronosValidation); if (hasKhronosStandardValidationLayer) { outInstanceLayers.Add(vkLayerKhronosValidation); @@ -296,7 +293,7 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst if (!hasKhronosStandardValidationLayer) { const char* vkLayerLunargStandardValidation = "VK_LAYER_LUNARG_standard_validation"; - hasLunargStandardValidationLayer = FindLayerInList(globalLayerExtensions, vkLayerLunargStandardValidation); + hasLunargStandardValidationLayer = ContainsLayer(globalLayerExtensions, vkLayerLunargStandardValidation); if (hasLunargStandardValidationLayer) { outInstanceLayers.Add(vkLayerLunargStandardValidation); @@ -311,25 +308,25 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst { for (uint32 i = 0; GValidationLayers[i] != nullptr; i++) { - const char* currValidationLayer = GValidationLayers[i]; - const bool validationFound = FindLayerInList(globalLayerExtensions, currValidationLayer); + const char* validationLayer = GValidationLayers[i]; + const bool validationFound = ContainsLayer(globalLayerExtensions, validationLayer); if (validationFound) { - outInstanceLayers.Add(currValidationLayer); + outInstanceLayers.Add(validationLayer); } else { - LOG(Warning, "Unable to find Vulkan instance validation layer {0}", String(currValidationLayer)); + LOG(Warning, "Unable to find Vulkan instance validation layer {0}", String(validationLayer)); } } } } -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils if (!vkTrace && ValidationLevel != VulkanValidationLevel::Disabled) { const char* foundDebugUtilsLayer = nullptr; - outDebugUtils = FindLayerExtensionInList(globalLayerExtensions, VK_EXT_DEBUG_UTILS_EXTENSION_NAME, foundDebugUtilsLayer); + outDebugUtils = FindLayerExtension(globalLayerExtensions, VK_EXT_DEBUG_UTILS_EXTENSION_NAME, foundDebugUtilsLayer); if (outDebugUtils && *foundDebugUtilsLayer) { outInstanceLayers.Add(foundDebugUtilsLayer); @@ -343,7 +340,7 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst for (const char* extension : platformExtensions) { - if (FindLayerExtensionInList(globalLayerExtensions, extension)) + if (FindLayerExtension(globalLayerExtensions, extension)) { outInstanceExtensions.Add(extension); } @@ -351,21 +348,21 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array& outInst for (int32 i = 0; GInstanceExtensions[i] != nullptr; i++) { - if (FindLayerExtensionInList(globalLayerExtensions, GInstanceExtensions[i])) + if (FindLayerExtension(globalLayerExtensions, GInstanceExtensions[i])) { outInstanceExtensions.Add(GInstanceExtensions[i]); } } -#if VULKAN_SUPPORTS_DEBUG_UTILS - if (!vkTrace && outDebugUtils && FindLayerExtensionInList(globalLayerExtensions, VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) +#if VK_EXT_debug_utils + if (!vkTrace && outDebugUtils && FindLayerExtension(globalLayerExtensions, VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) { outInstanceExtensions.Add(VK_EXT_DEBUG_UTILS_EXTENSION_NAME); } #endif if (!vkTrace && ValidationLevel == VulkanValidationLevel::Disabled) { - if (FindLayerExtensionInList(globalLayerExtensions, VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) + if (FindLayerExtension(globalLayerExtensions, VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { outInstanceExtensions.Add(VK_EXT_DEBUG_REPORT_EXTENSION_NAME); } @@ -415,26 +412,26 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array foundUniqueLayers; Array foundUniqueExtensions; - for (int32 index = 0; index < deviceLayerExtensions.Count(); index++) + for (int32 i = 0; i < deviceLayerExtensions.Count(); i++) { - if (index == 0) + if (i == 0) { - EnumerateDeviceExtensionProperties(gpu, nullptr, deviceLayerExtensions[index]); + EnumerateDeviceExtensionProperties(gpu, nullptr, deviceLayerExtensions[i]); } else { - foundUniqueLayers.AddUnique(StringAnsi(deviceLayerExtensions[index].LayerProps.layerName)); - EnumerateDeviceExtensionProperties(gpu, deviceLayerExtensions[index].LayerProps.layerName, deviceLayerExtensions[index]); + foundUniqueLayers.AddUnique(StringAnsi(deviceLayerExtensions[i].Layer.layerName)); + EnumerateDeviceExtensionProperties(gpu, deviceLayerExtensions[i].Layer.layerName, deviceLayerExtensions[i]); } - deviceLayerExtensions[index].AddUniqueExtensionNames(foundUniqueExtensions); + deviceLayerExtensions[i].GetExtensions(foundUniqueExtensions); } if (foundUniqueLayers.HasItems()) @@ -464,7 +461,7 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array availableExtensions; { - // All global - for (int32 i = 0; i < deviceLayerExtensions[0].ExtensionProps.Count(); i++) + for (int32 i = 0; i < deviceLayerExtensions[0].Extensions.Count(); i++) { - availableExtensions.Add(deviceLayerExtensions[0].ExtensionProps[i].extensionName); + availableExtensions.Add(deviceLayerExtensions[0].Extensions[i].extensionName); } - // Now only find enabled layers for (int32 layerIndex = 0; layerIndex < outDeviceLayers.Count(); layerIndex++) { - // Skip 0 as it's the null layer int32 findLayerIndex; for (findLayerIndex = 1; findLayerIndex < deviceLayerExtensions.Count(); findLayerIndex++) { - if (!StringUtils::Compare(deviceLayerExtensions[findLayerIndex].LayerProps.layerName, outDeviceLayers[layerIndex])) + if (!StringUtils::Compare(deviceLayerExtensions[findLayerIndex].Layer.layerName, outDeviceLayers[layerIndex])) { break; } @@ -518,7 +511,7 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array& de return ArrayExtensions::Any(deviceExtensions, CheckCallback); }; -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER1 +#if VK_KHR_maintenance1 OptionalDeviceExtensions.HasKHRMaintenance1 = HasExtension(VK_KHR_MAINTENANCE1_EXTENSION_NAME); #endif -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER2 +#if VK_KHR_maintenance2 OptionalDeviceExtensions.HasKHRMaintenance2 = HasExtension(VK_KHR_MAINTENANCE2_EXTENSION_NAME); #endif OptionalDeviceExtensions.HasMirrorClampToEdge = HasExtension(VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME); -#if VULKAN_ENABLE_DESKTOP_HMD_SUPPORT - OptionalDeviceExtensions.HasKHRExternalMemoryCapabilities = HasExtension(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME); - OptionalDeviceExtensions.HasKHRGetPhysicalDeviceProperties2 = HasExtension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); -#endif -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache OptionalDeviceExtensions.HasEXTValidationCache = HasExtension(VK_EXT_VALIDATION_CACHE_EXTENSION_NAME); #endif } diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp index 2d0aeb512..341b708eb 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.cpp @@ -43,7 +43,7 @@ Array GPUDeviceVulkan::InstanceLayers; bool SupportsDebugUtilsExt = false; #if VULKAN_USE_DEBUG_LAYER -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils VkDebugUtilsMessengerEXT Messenger = VK_NULL_HANDLE; #endif @@ -138,7 +138,7 @@ static VKAPI_ATTR VkBool32 VKAPI_PTR DebugReportFunction(VkDebugReportFlagsEXT m return VK_FALSE; } -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils static VKAPI_ATTR VkBool32 VKAPI_PTR DebugUtilsCallback(VkDebugUtilsMessageSeverityFlagBitsEXT msgSeverity, VkDebugUtilsMessageTypeFlagsEXT msgType, const VkDebugUtilsMessengerCallbackDataEXT* callbackData, void* userData) { @@ -242,7 +242,7 @@ static VKAPI_ATTR VkBool32 VKAPI_PTR DebugUtilsCallback(VkDebugUtilsMessageSever void SetupDebugLayerCallback() { -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils if (SupportsDebugUtilsExt) { if (vkCreateDebugUtilsMessengerEXT) @@ -324,7 +324,7 @@ void SetupDebugLayerCallback() void RemoveDebugLayerCallback() { -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils if (Messenger != VK_NULL_HANDLE) { if (vkDestroyDebugUtilsMessengerEXT) @@ -1092,7 +1092,7 @@ GPUDeviceVulkan::GPUDeviceVulkan(ShaderProfile shaderProfile, GPUAdapterVulkan* , PresentQueue(nullptr) , Allocator(VK_NULL_HANDLE) , PipelineCache(VK_NULL_HANDLE) -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache , ValidationCache(VK_NULL_HANDLE) #endif , UniformBufferUploader(nullptr) @@ -1438,7 +1438,7 @@ PixelFormat GPUDeviceVulkan::GetClosestSupportedPixelFormat(PixelFormat format, return format; } -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache void GetValidationCachePath(String& path) { @@ -1872,7 +1872,7 @@ bool GPUDeviceVulkan::Init() DescriptorPoolsManager = New(this); MainContext = New(this, GraphicsQueue); // TODO: create and load PipelineCache -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache if (OptionalDeviceExtensions.HasEXTValidationCache && vkCreateValidationCacheEXT && vkDestroyValidationCacheEXT) { LoadValidationCache(); @@ -1934,7 +1934,7 @@ void GPUDeviceVulkan::Dispose() vkDestroyPipelineCache(Device, PipelineCache, nullptr); PipelineCache = VK_NULL_HANDLE; } -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache if (ValidationCache != VK_NULL_HANDLE) { if (SaveValidationCache()) diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h index 8a1334450..2d3522d2c 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUDeviceVulkan.h @@ -621,7 +621,7 @@ public: /// VkPipelineCache PipelineCache; -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache /// /// The optional validation cache. @@ -706,7 +706,7 @@ public: /// The output format. PixelFormat GetClosestSupportedPixelFormat(PixelFormat format, GPUTextureFlags flags, bool optimalTiling); -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache /// /// Loads the validation cache. diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUShaderVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUShaderVulkan.cpp index f2ce3f851..94cdd1be4 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUShaderVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUShaderVulkan.cpp @@ -118,7 +118,7 @@ GPUShaderProgram* GPUShaderVulkan::CreateGPUShaderProgram(ShaderStage type, cons RenderToolsVulkan::ZeroStruct(createInfo, VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO); createInfo.codeSize = (size_t)spirv.Length(); createInfo.pCode = (const uint32_t*)spirv.Get(); -#if VULKAN_SUPPORTS_VALIDATION_CACHE +#if VK_EXT_validation_cache VkShaderModuleValidationCacheCreateInfoEXT validationInfo; if (_device->ValidationCache != VK_NULL_HANDLE) { diff --git a/Source/Engine/GraphicsDevice/Vulkan/GPUTextureVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/GPUTextureVulkan.cpp index 4e09fb021..656add83e 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/GPUTextureVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/GPUTextureVulkan.cpp @@ -239,7 +239,7 @@ bool GPUTextureVulkan::OnInit() { imageInfo.flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; } -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER1 +#if VK_KHR_maintenance1 if (_device->OptionalDeviceExtensions.HasKHRMaintenance1 && imageInfo.imageType == VK_IMAGE_TYPE_3D) { imageInfo.flags |= VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR; diff --git a/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h b/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h index 070d3a9c9..04972b7b4 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h +++ b/Source/Engine/GraphicsDevice/Vulkan/Linux/LinuxVulkanPlatform.h @@ -6,7 +6,6 @@ #if GRAPHICS_API_VULKAN && PLATFORM_LINUX -#define VULKAN_USE_DEBUG_LAYER GPU_ENABLE_DIAGNOSTICS #define VULKAN_HAS_PHYSICAL_DEVICE_PROPERTIES2 1 /// diff --git a/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.cpp b/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.cpp index 8616260eb..bbbe0fcfd 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.cpp +++ b/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.cpp @@ -199,7 +199,7 @@ VkCompareOp RenderToolsVulkan::ComparisonFuncToVkCompareOp[static_cast(Co void RenderToolsVulkan::SetObjectName(VkDevice device, uint64 objectHandle, VkObjectType objectType, const String& name) { -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils auto str = name.ToStringAnsi(); SetObjectName(device, objectHandle, objectType, str.Get()); #endif diff --git a/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.h b/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.h index c0c45b636..3013fdde2 100644 --- a/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.h +++ b/Source/Engine/GraphicsDevice/Vulkan/RenderToolsVulkan.h @@ -48,7 +48,7 @@ public: static void SetObjectName(VkDevice device, uint64 objectHandle, VkObjectType objectType, const char* name) { -#if VULKAN_SUPPORTS_DEBUG_UTILS +#if VK_EXT_debug_utils // Check for valid function pointer (may not be present if not running in a debugging application) if (vkSetDebugUtilsObjectNameEXT != nullptr && name != nullptr && *name != 0) { @@ -94,7 +94,7 @@ public: case VK_ACCESS_SHADER_WRITE_BIT: stageFlags = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; break; -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER2 +#if VK_KHR_maintenance2 case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: stageFlags = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; @@ -144,7 +144,7 @@ public: accessFlags = VK_ACCESS_SHADER_READ_BIT; stageFlags = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; break; -#if VULKAN_SUPPORTS_MAINTENANCE_LAYER2 +#if VK_KHR_maintenance2 case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR: accessFlags = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; stageFlags = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;