From 91872048d412a87f828ed89f224139f2722d37a0 Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Thu, 4 Mar 2021 21:42:06 +0000 Subject: [PATCH] Added kompute env layers --- src/Manager.cpp | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Manager.cpp b/src/Manager.cpp index f32cda43e..5131f2a16 100644 --- a/src/Manager.cpp +++ b/src/Manager.cpp @@ -1,9 +1,15 @@ #include #include +#include +#include #include "kompute/Manager.hpp" +#if DEBUG +#include "fmt/ranges.h" +#endif + namespace kp { #if DEBUG @@ -163,8 +169,20 @@ Manager::createInstance() // We'll identify the layers that are supported std::vector validLayerNames; std::vector desiredLayerNames = { - "VK_LAYER_LUNARG_assistant_layer", "VK_LAYER_LUNARG_standard_validation" + "VK_LAYER_LUNARG_assistant_layer", + "VK_LAYER_LUNARG_standard_validation", + "VK_LAYER_KHRONOS_validation", }; + std::string envLayerNamesVal = std::getenv("KOMPUTE_ENV_DEBUG_LAYERS"); + KP_LOG_DEBUG("Kompute Manager adding environment layers: {}", envLayerNamesVal); + std::istringstream iss(envLayerNamesVal); + std::istream_iterator beg(iss), end; + std::vector envLayerNames(beg, end); + for (const std::string& layerName : envLayerNames) { + desiredLayerNames.push_back(layerName.c_str()); + } + KP_LOG_DEBUG("Desired layers: {}", desiredLayerNames); + // Identify the valid layer names based on the desiredLayerNames { std::set uniqueLayerNames; @@ -174,6 +192,7 @@ Manager::createInstance() std::string layerName(layerProperties.layerName.data()); uniqueLayerNames.insert(layerName); } + KP_LOG_DEBUG("Available layers: {}", uniqueLayerNames); for (const char* desiredLayerName : desiredLayerNames) { if (uniqueLayerNames.count(desiredLayerName) != 0) { validLayerNames.push_back(desiredLayerName); @@ -182,10 +201,14 @@ Manager::createInstance() } if (validLayerNames.size() > 0) { + KP_LOG_DEBUG("Kompute Manager Initializing instance with valid layers: {}", validLayerNames); computeInstanceCreateInfo.enabledLayerCount = (uint32_t)validLayerNames.size(); computeInstanceCreateInfo.ppEnabledLayerNames = validLayerNames.data(); } + else { + KP_LOG_WARN("Kompute Manager no valid layer names found from desired layer names"); + } #endif #endif