diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-14 11:34:49 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-18 10:22:56 -0600 |
| commit | a76a21104174017894f5673babbaa8d26f041466 (patch) | |
| tree | 5977ce6174cbfea2855c8e8bb0941827bfd30396 /layers/layers_config.cpp | |
| parent | ccddfe96f5c6f30879bf05e4cef0ab49b4bd39de (diff) | |
| download | usermoji-a76a21104174017894f5673babbaa8d26f041466.tar.xz | |
layers: Add config parser to compute debug flags
Diffstat (limited to 'layers/layers_config.cpp')
| -rw-r--r-- | layers/layers_config.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/layers/layers_config.cpp b/layers/layers_config.cpp index 845389c8..81ddd5d4 100644 --- a/layers/layers_config.cpp +++ b/layers/layers_config.cpp @@ -78,6 +78,8 @@ static VkFlags stringToDbgReportFlags(const char *_enum) return VK_DBG_REPORT_PERF_WARN_BIT; else if (!strcmp(_enum, "VK_DBG_REPORT_ERROR")) return VK_DBG_REPORT_ERROR_BIT; + else if (!strcmp(_enum, "VK_DBG_REPORT_DEBUG")) + return VK_DBG_REPORT_DEBUG_BIT; return (VkFlags) 0; } @@ -97,6 +99,43 @@ const char *getLayerOption(const char *_option) return g_configFileObj.getOption(_option); } +uint32_t getLayerOptionFlags(const char *_option, uint32_t optionDefault) +{ + uint32_t flags = optionDefault; + const char *option = (g_configFileObj.getOption(_option)); + + /* parse comma-separated options */ + while (option) { + const char *p = strchr(option, ','); + size_t len; + + if (p) + len = p - option; + else + len = strlen(option); + + if (len > 0) { + if (strncmp(option, "warn", len) == 0) { + flags |= VK_DBG_REPORT_WARN_BIT; + } else if (strncmp(option, "info", len) == 0) { + flags |= VK_DBG_REPORT_INFO_BIT; + } else if (strncmp(option, "perf", len) == 0) { + flags |= VK_DBG_REPORT_PERF_WARN_BIT; + } else if (strncmp(option, "error", len) == 0) { + flags |= VK_DBG_REPORT_ERROR_BIT; + } else if (strncmp(option, "debug", len) == 0) { + flags |= VK_DBG_REPORT_DEBUG_BIT; + } + } + + if (!p) + break; + + option = p + 1; + } + return flags; +} + bool getLayerOptionEnum(const char *_option, uint32_t *optionDefault) { bool res; |
