Vulkan: Turn off validation and debug utils if they're not present.

This commit is contained in:
Jean-Philip Desjardins 2023-11-27 14:56:14 -05:00
parent 906c4d2d96
commit c5f9ee6a95
2 changed files with 13 additions and 4 deletions

View file

@ -9,6 +9,7 @@
#include "GSH_VulkanDrawDesktop.h"
#include "GSH_VulkanDrawMobile.h"
#include "GSH_VulkanDeviceInfo.h"
#include "vulkan/Loader.h"
#include "vulkan/StructDefs.h"
#include "vulkan/StructChain.h"
#include "vulkan/Utils.h"
@ -59,7 +60,10 @@ Framework::Vulkan::CInstance CGSH_Vulkan::CreateInstance(bool useValidationLayer
extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
#if GSH_VULKAN_USE_ANNOTATIONS
extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
if(Framework::Vulkan::CLoader::GetInstance().IsInstanceExtensionPresent(VK_EXT_DEBUG_UTILS_EXTENSION_NAME))
{
extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
}
#endif
#ifdef _WIN32
extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
@ -80,10 +84,15 @@ Framework::Vulkan::CInstance CGSH_Vulkan::CreateInstance(bool useValidationLayer
#endif
std::vector<const char*> layers;
#if defined(_DEBUG) && !defined(__APPLE__)
#if defined(_DEBUG)
static const char* validationLayerName = "VK_LAYER_KHRONOS_validation";
if(useValidationLayers)
{
layers.push_back("VK_LAYER_KHRONOS_validation");
useValidationLayers = Framework::Vulkan::CLoader::GetInstance().IsInstanceLayerPresent(validationLayerName);
}
if(useValidationLayers)
{
layers.push_back(validationLayerName);
}
#endif

2
deps/Framework vendored

@ -1 +1 @@
Subproject commit 60a4a091864b33ca3e79bb5cad703515211f93dc
Subproject commit 8c26bd6a62c46d556b28c25d2e7f94e5e936578a