From ac6702a682be04e308f8c24c2cb31237d1ef0c34 Mon Sep 17 00:00:00 2001 From: SRSaunders <82544213+SRSaunders@users.noreply.github.com> Date: Thu, 2 May 2024 23:51:26 -0400 Subject: [PATCH 1/2] Return MoltenVK log level string in pMessageIdName field of debug utils callback data --- MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm | 2 +- MoltenVK/MoltenVK/Utility/MVKBaseObject.h | 13 +++++++++++++ MoltenVK/MoltenVK/Utility/MVKBaseObject.mm | 12 +----------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm index 6c4d71d06..f4f2abb9a 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm @@ -227,7 +227,7 @@ .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT, .pNext = nullptr, .flags = 0, - .pMessageIdName = nullptr, + .pMessageIdName = mvkGetReportingLevelString(logLevel), .messageIdNumber = 0, .pMessage = pMessage, .queueLabelCount = 0, diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h index 073da3a16..0f268f218 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h @@ -224,3 +224,16 @@ class MVKConfigurableMixin { static inline const MVKConfiguration& mvkGetMVKConfig(MVKBaseObject* mvkObj) { return mvkObj ? mvkObj->getMVKConfig() : getGlobalMVKConfig(); } + +/** + * Returns the reporting level string associated with the specified MoltenVK log level. + */ +static inline const char* mvkGetReportingLevelString(MVKConfigLogLevel logLevel) { + switch (logLevel) { + case MVK_CONFIG_LOG_LEVEL_ERROR: return "mvk-error"; + case MVK_CONFIG_LOG_LEVEL_WARNING: return "mvk-warn"; + case MVK_CONFIG_LOG_LEVEL_INFO: return "mvk-info"; + case MVK_CONFIG_LOG_LEVEL_DEBUG: return "mvk-debug"; + default: return "mvk-unknown"; + } +} diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm index 294444ff3..c00ccc600 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.mm @@ -29,16 +29,6 @@ #pragma mark - #pragma mark MVKBaseObject -static const char* getReportingLevelString(MVKConfigLogLevel logLevel) { - switch (logLevel) { - case MVK_CONFIG_LOG_LEVEL_ERROR: return "mvk-error"; - case MVK_CONFIG_LOG_LEVEL_WARNING: return "mvk-warn"; - case MVK_CONFIG_LOG_LEVEL_INFO: return "mvk-info"; - case MVK_CONFIG_LOG_LEVEL_DEBUG: return "mvk-debug"; - default: return "mvk-unknown"; - } -} - string MVKBaseObject::getClassName() { return mvk::getTypeName(this); } const MVKConfiguration& MVKBaseObject::getMVKConfig() { @@ -95,7 +85,7 @@ va_end(origArgs); // Log the message to the standard error stream - if (shouldLog) { fprintf(stderr, "[%s] %s\n", getReportingLevelString(logLevel), pMessage); } + if (shouldLog) { fprintf(stderr, "[%s] %s\n", mvkGetReportingLevelString(logLevel), pMessage); } // Broadcast the message to any Vulkan debug report callbacks if (hasDebugCallbacks) { mvkInst->debugReportMessage(mvkAPIObj, logLevel, pMessage); } From a6a44a78c1c9066b217cc6633b64e9347248aa78 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Sat, 4 May 2024 15:15:39 -0400 Subject: [PATCH 2/2] Update MoltenVK/MoltenVK/Utility/MVKBaseObject.h Use constexpr instead of inline const. --- MoltenVK/MoltenVK/Utility/MVKBaseObject.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h index 0f268f218..84fb292e0 100644 --- a/MoltenVK/MoltenVK/Utility/MVKBaseObject.h +++ b/MoltenVK/MoltenVK/Utility/MVKBaseObject.h @@ -225,10 +225,8 @@ static inline const MVKConfiguration& mvkGetMVKConfig(MVKBaseObject* mvkObj) { return mvkObj ? mvkObj->getMVKConfig() : getGlobalMVKConfig(); } -/** - * Returns the reporting level string associated with the specified MoltenVK log level. - */ -static inline const char* mvkGetReportingLevelString(MVKConfigLogLevel logLevel) { +/** Returns the reporting level string associated with the specified MoltenVK log level. */ +static constexpr char* mvkGetReportingLevelString(MVKConfigLogLevel logLevel) { switch (logLevel) { case MVK_CONFIG_LOG_LEVEL_ERROR: return "mvk-error"; case MVK_CONFIG_LOG_LEVEL_WARNING: return "mvk-warn";