Remove unused code

This commit is contained in:
Wojtek Figat
2020-12-30 00:52:07 +01:00
parent a082d52543
commit 4ec3e6aed9
9 changed files with 85 additions and 124 deletions

View File

@@ -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

View File

@@ -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<VkExtensionProperties> ExtensionProps;
VkLayerProperties Layer;
Array<VkExtensionProperties> Extensions;
LayerExtension()
{
Platform::MemoryClear(&LayerProps, sizeof(LayerProps));
Platform::MemoryClear(&Layer, sizeof(Layer));
}
void AddUniqueExtensionNames(Array<StringAnsi>& result)
void GetExtensions(Array<StringAnsi>& 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<const char*>& result)
void GetExtensions(Array<const char*>& 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<const char*>& 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<LayerExtension>& list, const char* layerName)
static int FindLayerIndex(const Array<LayerExtension>& 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<LayerExtension>& list, const
return INVALID_INDEX;
}
static bool FindLayerInList(const Array<LayerExtension>& list, const char* layerName)
static bool ContainsLayer(const Array<LayerExtension>& list, const char* layerName)
{
return FindLayerIndexInList(list, layerName) != INVALID_INDEX;
return FindLayerIndex(list, layerName) != INVALID_INDEX;
}
static bool FindLayerExtensionInList(const Array<LayerExtension>& list, const char* extensionName, const char*& foundLayer)
static bool FindLayerExtension(const Array<LayerExtension>& 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<LayerExtension>& list, const ch
return false;
}
static bool FindLayerExtensionInList(const Array<LayerExtension>& list, const char* extensionName)
static bool FindLayerExtension(const Array<LayerExtension>& list, const char* extensionName)
{
const char* dummy = nullptr;
return FindLayerExtensionInList(list, extensionName, dummy);
return FindLayerExtension(list, extensionName, dummy);
}
void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array<const char*>& outInstanceExtensions, Array<const char*>& outInstanceLayers, bool& outDebugUtils)
@@ -185,17 +185,14 @@ void GPUDeviceVulkan::GetInstanceLayersAndExtensions(Array<const char*>& outInst
outDebugUtils = false;
Array<LayerExtension> globalLayerExtensions;
// 0 is reserved for NULL/instance
globalLayerExtensions.AddDefault(1);
// Global extensions
EnumerateInstanceExtensionProperties(nullptr, globalLayerExtensions[0]);
Array<StringAnsi> foundUniqueExtensions;
Array<StringAnsi> 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<const char*>& 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<const char*>& 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<const char*>& 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<const char*>& 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<const char*>& 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<const char*>& 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<const char*>& 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<c
for (const VkLayerProperties& Property : properties)
{
deviceLayerExtensions.AddDefault(1);
deviceLayerExtensions.Last().LayerProps = Property;
deviceLayerExtensions.Last().Layer = Property;
}
}
Array<StringAnsi> foundUniqueLayers;
Array<StringAnsi> 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<c
bool hasKhronosStandardValidationLayer = false, hasLunargStandardValidationLayer = false;
#if VULKAN_USE_KHRONOS_STANDARD_VALIDATION
const char* vkLayerKhronosValidation = "VK_LAYER_KHRONOS_validation";
hasKhronosStandardValidationLayer = FindLayerInList(deviceLayerExtensions, vkLayerKhronosValidation);
hasKhronosStandardValidationLayer = ContainsLayer(deviceLayerExtensions, vkLayerKhronosValidation);
if (hasKhronosStandardValidationLayer)
{
outDeviceLayers.Add(vkLayerKhronosValidation);
@@ -474,7 +471,7 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<c
if (!hasKhronosStandardValidationLayer)
{
const char* vkLayerLunargStandardValidation = "VK_LAYER_LUNARG_standard_validation";
hasLunargStandardValidationLayer = FindLayerInList(deviceLayerExtensions, vkLayerLunargStandardValidation);
hasLunargStandardValidationLayer = ContainsLayer(deviceLayerExtensions, vkLayerLunargStandardValidation);
if (hasLunargStandardValidationLayer)
{
outDeviceLayers.Add(vkLayerLunargStandardValidation);
@@ -486,7 +483,7 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<c
for (uint32 i = 0; GValidationLayers[i] != nullptr; i++)
{
const char* validationLayer = GValidationLayers[i];
if (FindLayerInList(deviceLayerExtensions, validationLayer))
if (ContainsLayer(deviceLayerExtensions, validationLayer))
{
outDeviceLayers.Add(validationLayer);
}
@@ -494,23 +491,19 @@ void GPUDeviceVulkan::GetDeviceExtensionsAndLayers(VkPhysicalDevice gpu, Array<c
}
#endif
// Now gather the actually used extensions based on the enabled layers
Array<const char*> 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<c
if (findLayerIndex < deviceLayerExtensions.Count())
{
deviceLayerExtensions[findLayerIndex].AddAnsiExtensionNames(availableExtensions);
deviceLayerExtensions[findLayerIndex].GetExtensions(availableExtensions);
}
}
}
@@ -589,18 +582,14 @@ void GPUDeviceVulkan::ParseOptionalDeviceExtensions(const Array<const char*>& 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
}

View File

@@ -43,7 +43,7 @@ Array<const char*> 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<DescriptorPoolsManagerVulkan>(this);
MainContext = New<GPUContextVulkan>(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())

View File

@@ -621,7 +621,7 @@ public:
/// </summary>
VkPipelineCache PipelineCache;
#if VULKAN_SUPPORTS_VALIDATION_CACHE
#if VK_EXT_validation_cache
/// <summary>
/// The optional validation cache.
@@ -706,7 +706,7 @@ public:
/// <returns>The output format.</returns>
PixelFormat GetClosestSupportedPixelFormat(PixelFormat format, GPUTextureFlags flags, bool optimalTiling);
#if VULKAN_SUPPORTS_VALIDATION_CACHE
#if VK_EXT_validation_cache
/// <summary>
/// Loads the validation cache.

View File

@@ -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)
{

View File

@@ -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;

View File

@@ -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
/// <summary>

View File

@@ -199,7 +199,7 @@ VkCompareOp RenderToolsVulkan::ComparisonFuncToVkCompareOp[static_cast<int32>(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

View File

@@ -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;