Updated to make debug layers guarded by macro
This commit is contained in:
parent
4c3b18d560
commit
2e9ffd9444
5 changed files with 29 additions and 10 deletions
1
.ccls
1
.ccls
|
|
@ -16,5 +16,6 @@
|
|||
-I/c/Users/axsau/Programming/lib/vcpkg/installed/x64-linux/include/
|
||||
-I./src/include/
|
||||
-I./single_include/
|
||||
-I./vulkan_ndk_patch_include/
|
||||
-I./test/compiled_shaders_include/
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ option(KOMPUTE_OPT_BUILD_SINGLE_HEADER "Enable if you want to build the single h
|
|||
option(KOMPUTE_OPT_INSTALL "Enable if you want to enable installation" 1)
|
||||
option(KOMPUTE_OPT_ENABLE_SPDLOG "Extra compile flags for Kompute, see docs for full list" 0)
|
||||
option(KOMPUTE_OPT_ANDOID_BUILD "Enable android compilation flags required" 0)
|
||||
# TODO: Add on docs
|
||||
option(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS "Explicitly disable debug layers even on debug" 0)
|
||||
|
||||
set(KOMPUTE_EXTRA_CXX_FLAGS "" CACHE STRING "Extra compile flags for Kompute, see docs for full list")
|
||||
|
||||
|
|
@ -25,8 +27,11 @@ if(KOMPUTE_OPT_ANDOID_BUILD)
|
|||
set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DVK_USE_PLATFORM_ANDROID_KHR")
|
||||
endif()
|
||||
|
||||
if(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS)
|
||||
set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS} -DUSE_DEBUG_EXTENTIONS")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DRELEASE=1 ${KOMPUTE_EXTRA_CXX_FLAGS}")
|
||||
|
||||
# Allow scripts to call main kompute Makefile
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,20 +1,23 @@
|
|||
#pragma once
|
||||
|
||||
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
#include <android/log.h>
|
||||
#include <android_native_app_glue.h>
|
||||
#endif
|
||||
|
||||
//#define VK_NO_PROTOTYPES 1
|
||||
//#undef VK_NO_PROTOTYPES
|
||||
#undef DEBUG
|
||||
#ifndef RELEASE
|
||||
#define RELEASE 1
|
||||
#endif
|
||||
//#undef DEBUG
|
||||
//#ifndef RELEASE
|
||||
//#define RELEASE 1
|
||||
//#endif
|
||||
//#define USE_DEBUG_EXTENTIONS
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
#include <android/log.h>
|
||||
#include <android_native_app_glue.h>
|
||||
#include <kompute_vulkan_wrapper.hpp>
|
||||
|
||||
// VK_NO_PROTOTYPES required before vulkan import but after wrapper.hpp
|
||||
#undef VK_NO_PROTOTYPES
|
||||
#define DVULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
|
||||
#endif
|
||||
|
||||
#include <vulkan/vulkan.hpp>
|
||||
|
||||
// SPDLOG_ACTIVE_LEVEL must be defined before spdlog.h import
|
||||
|
|
|
|||
|
|
@ -154,8 +154,10 @@ class Manager
|
|||
mManagedSequences;
|
||||
|
||||
#if DEBUG
|
||||
#ifndef KOMPUTE_DISABLE_VK_DEBUG_LAYERS
|
||||
vk::DebugReportCallbackEXT mDebugReportCallback;
|
||||
vk::DispatchLoaderDynamic mDebugDispatcher;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Create functions
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue