Updated to make debug layers guarded by macro

This commit is contained in:
Alejandro Saucedo 2020-10-03 15:25:20 +01:00
parent 4c3b18d560
commit 2e9ffd9444
5 changed files with 29 additions and 10 deletions

View file

@ -7,6 +7,7 @@
namespace kp {
#if DEBUG
#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS
static VKAPI_ATTR VkBool32 VKAPI_CALL
debugMessageCallback(VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType,
@ -21,6 +22,7 @@ debugMessageCallback(VkDebugReportFlagsEXT flags,
return VK_FALSE;
}
#endif
#endif
Manager::Manager()
: Manager(0)
@ -73,11 +75,13 @@ Manager::~Manager()
}
#if DEBUG
#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS
if (this->mDebugReportCallback) {
this->mInstance->destroyDebugReportCallbackEXT(
this->mDebugReportCallback, nullptr, this->mDebugDispatcher);
SPDLOG_DEBUG("Kompute Manager Destroyed Debug Report Callback");
}
#endif
#endif
if (this->mFreeInstance) {
@ -133,6 +137,7 @@ Manager::createInstance()
}
#if DEBUG
#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS
SPDLOG_DEBUG("Kompute Manager adding debug validation layers");
// We'll identify the layers that are supported
std::vector<const char*> validLayerNames;
@ -160,6 +165,7 @@ Manager::createInstance()
(uint32_t)validLayerNames.size();
computeInstanceCreateInfo.ppEnabledLayerNames = validLayerNames.data();
}
#endif
#endif
this->mInstance = std::make_shared<vk::Instance>();
@ -168,6 +174,7 @@ Manager::createInstance()
SPDLOG_DEBUG("Kompute Manager Instance Created");
#if DEBUG
#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS
SPDLOG_DEBUG("Kompute Manager adding debug callbacks");
if (validLayerNames.size() > 0) {
vk::DebugReportFlagsEXT debugFlags =
@ -184,6 +191,7 @@ Manager::createInstance()
debugCreateInfo, nullptr, this->mDebugDispatcher);
}
#endif
#endif
}
void