The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

aux/vk: properly handle vulkan handle type in vk_name_object

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2272>

authored by

Simon Zeni and committed by
Rylie Pavlik
748d6bc5 641e4567

+10 -8
+10 -8
src/xrt/auxiliary/vk/vk_helpers.h
··· 658 658 #define VK_NAME_OBJ(VK, TYPE, SUFFIX, OBJ, NAME) \ 659 659 do { \ 660 660 if ((VK)->has_EXT_debug_utils) { \ 661 - TYPE _thing = OBJ; \ 662 - vk_name_object(VK, VK_OBJECT_TYPE_##SUFFIX, (uint64_t)_thing, NAME); \ 661 + XRT_MAYBE_UNUSED TYPE _thing = (TYPE)(OBJ); \ 662 + vk_name_object(VK, VK_OBJECT_TYPE_##SUFFIX, (uint64_t)OBJ, NAME); \ 663 663 } \ 664 664 } while (false) 665 665 ··· 687 687 */ 688 688 #define VK_NAME_OBJ_DISABLED(VK, TYPE, OBJ) \ 689 689 do { \ 690 - XRT_MAYBE_UNUSED TYPE _thing = OBJ; \ 690 + XRT_MAYBE_UNUSED TYPE _thing = (TYPE)(OBJ); \ 691 691 } while (false) 692 692 693 693 694 694 // clang-format off 695 - #define VK_NAME_INSTANCE(VK, OBJ, NAME) VK_NAME_OBJ_DISABLED(VK, VkInstance, OBJ) 696 - #define VK_NAME_PHYSICAL_DEVICE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkPhysicalDevice, PHYSICAL_DEVICE, OBJ, NAME) 697 - #define VK_NAME_DEVICE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkDevice, DEVICE, OBJ, NAME) 698 - #define VK_NAME_QUEUE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkQueue, QUEUE, OBJ, NAME) 695 + // VK_DEFINE_HANDLE types are always pointers 696 + #define VK_NAME_INSTANCE(VK, OBJ, NAME) VK_NAME_OBJ_DISABLED(VK, VkInstance, (uintptr_t)OBJ) 697 + #define VK_NAME_PHYSICAL_DEVICE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkPhysicalDevice, PHYSICAL_DEVICE, (uintptr_t)OBJ, NAME) 698 + #define VK_NAME_DEVICE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkDevice, DEVICE, (uintptr_t)OBJ, NAME) 699 + #define VK_NAME_QUEUE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkQueue, QUEUE, (uintptr_t)OBJ, NAME) 700 + #define VK_NAME_COMMAND_BUFFER(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkCommandBuffer, COMMAND_BUFFER, (uintptr_t)OBJ, NAME) 701 + // VK_DEFINE_NON_DISPATCHABLE_HANDLE types are pointers in 64-bits and uint64_t in 32-bits 699 702 #define VK_NAME_SEMAPHORE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkSemaphore, SEMAPHORE, OBJ, NAME) 700 - #define VK_NAME_COMMAND_BUFFER(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkCommandBuffer, COMMAND_BUFFER, OBJ, NAME) 701 703 #define VK_NAME_FENCE(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkFence, FENCE, OBJ, NAME) 702 704 #define VK_NAME_DEVICE_MEMORY(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkDeviceMemory, DEVICE_MEMORY, OBJ, NAME) 703 705 #define VK_NAME_BUFFER(VK, OBJ, NAME) VK_NAME_OBJ(VK, VkBuffer, BUFFER, OBJ, NAME)