Merge pull request #1671 from billhollings/fix-debug-utils-message-types

Report appropriate values of VkDebugUtilsMessageTypeFlagsEXT
This commit is contained in:
Bill Hollings 2022-07-30 18:14:35 -04:00 committed by GitHub
commit 11120056ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 7 deletions

View File

@ -31,6 +31,7 @@ Released TBD
- Fix query pool wait block when query is not encoded to be written to.
- Fix `vkUpdateDescriptorSetWithTemplate()` for inline block descriptors.
- Fix retrieval of accurate `vkGetRefreshCycleDurationGOOGLE()` across multiple display screens.
- Report appropriate values of `VkDebugUtilsMessageTypeFlagsEXT` for debug util messages generated within MoltenVK.
- Update _macOS Cube_ demo to demonstrate optimizing the swapchain across multiple display screens.
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to version `35`.

View File

@ -183,6 +183,7 @@ protected:
NSArray<id<MTLDevice>>* getAvailableMTLDevicesArray();
VkDebugReportFlagsEXT getVkDebugReportFlagsFromLogLevel(MVKConfigLogLevel logLevel);
VkDebugUtilsMessageSeverityFlagBitsEXT getVkDebugUtilsMessageSeverityFlagBitsFromLogLevel(MVKConfigLogLevel logLevel);
VkDebugUtilsMessageTypeFlagsEXT getVkDebugUtilsMessageTypesFlagBitsFromLogLevel(MVKConfigLogLevel logLevel);
MVKEntryPoint* getEntryPoint(const char* pName);
void logVersions();
VkResult verifyLayers(uint32_t count, const char* const* names);

View File

@ -208,15 +208,11 @@ void MVKInstance::debugReportMessage(MVKVulkanAPIObject* mvkAPIObj, MVKConfigLog
}
if (_hasDebugUtilsMessengers) {
VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity = getVkDebugUtilsMessageSeverityFlagBitsFromLogLevel(logLevel);
uint64_t objectHandle = (uint64_t)(mvkAPIObj ? mvkAPIObj->getVkHandle() : nullptr);
VkObjectType objectType = mvkAPIObj ? mvkAPIObj->getVkObjectType() : VK_OBJECT_TYPE_UNKNOWN;
VkDebugUtilsObjectNameInfoEXT duObjName = {
.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
.pNext = nullptr,
.objectType = objectType,
.objectHandle = objectHandle,
.objectType = mvkAPIObj ? mvkAPIObj->getVkObjectType() : VK_OBJECT_TYPE_UNKNOWN,
.objectHandle = (uint64_t)(mvkAPIObj ? mvkAPIObj->getVkHandle() : nullptr),
.pObjectName = mvkAPIObj ? mvkAPIObj->getDebugName().UTF8String : nullptr
};
VkDebugUtilsMessengerCallbackDataEXT dumcbd = {
@ -233,7 +229,9 @@ void MVKInstance::debugReportMessage(MVKVulkanAPIObject* mvkAPIObj, MVKConfigLog
.objectCount = 1,
.pObjects = &duObjName
};
debugUtilsMessage(messageSeverity, VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT, &dumcbd);
debugUtilsMessage(getVkDebugUtilsMessageSeverityFlagBitsFromLogLevel(logLevel),
getVkDebugUtilsMessageTypesFlagBitsFromLogLevel(logLevel),
&dumcbd);
}
}
@ -265,6 +263,18 @@ VkDebugUtilsMessageSeverityFlagBitsEXT MVKInstance::getVkDebugUtilsMessageSeveri
}
}
VkDebugUtilsMessageTypeFlagsEXT MVKInstance::getVkDebugUtilsMessageTypesFlagBitsFromLogLevel(MVKConfigLogLevel logLevel) {
switch (logLevel) {
case MVK_CONFIG_LOG_LEVEL_DEBUG:
case MVK_CONFIG_LOG_LEVEL_INFO:
case MVK_CONFIG_LOG_LEVEL_WARNING:
return VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT;
case MVK_CONFIG_LOG_LEVEL_ERROR:
default:
return VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT;
}
}
#pragma mark Object Creation