aboutsummaryrefslogtreecommitdiff
path: root/cube/cube.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cube/cube.cpp')
-rw-r--r--cube/cube.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/cube/cube.cpp b/cube/cube.cpp
index cf5822f9..9bdb17ce 100644
--- a/cube/cube.cpp
+++ b/cube/cube.cpp
@@ -1040,15 +1040,21 @@ VKAPI_ATTR VkBool32 VKAPI_CALL Demo::debug_messenger_callback(VkDebugUtilsMessag
if (pCallbackData->objectCount > 0) {
message << "\n\tObjects - " << pCallbackData->objectCount << "\n";
for (uint32_t object = 0; object < pCallbackData->objectCount; ++object) {
+ message << "\t\tObject[" << object << "] - "
+ << vk::to_string(vk::ObjectType(pCallbackData->pObjects[object].objectType)) << ", Handle ";
+
+ // Print handle correctly if it is a dispatchable handle - aka a pointer
+ VkObjectType t = pCallbackData->pObjects[object].objectType;
+ if (t == VK_OBJECT_TYPE_INSTANCE || t == VK_OBJECT_TYPE_PHYSICAL_DEVICE || t == VK_OBJECT_TYPE_DEVICE ||
+ t == VK_OBJECT_TYPE_COMMAND_BUFFER || t == VK_OBJECT_TYPE_QUEUE) {
+ message << reinterpret_cast<void*>(static_cast<uintptr_t>(pCallbackData->pObjects[object].objectHandle));
+ } else {
+ message << pCallbackData->pObjects[object].objectHandle;
+ }
if (NULL != pCallbackData->pObjects[object].pObjectName && strlen(pCallbackData->pObjects[object].pObjectName) > 0) {
- message << "\t\tObject[" << object << "] - "
- << vk::to_string(vk::ObjectType(pCallbackData->pObjects[object].objectType)) << ", Handle "
- << pCallbackData->pObjects[object].objectHandle << ", Name \""
- << pCallbackData->pObjects[object].pObjectName << "\"\n";
+ message << ", Name \"" << pCallbackData->pObjects[object].pObjectName << "\"\n";
} else {
- message << "\t\tObject[" << object << "] - "
- << vk::to_string(vk::ObjectType(pCallbackData->pObjects[object].objectType)) << ", Handle "
- << pCallbackData->pObjects[object].objectHandle << "\n";
+ message << "\n";
}
}
}