vulkan-zig
vulkan-zig copied to clipboard
Wrong vulkan command dispatch classification
Currently a command dispatch type is determined by first parameter of its function signature in classifyCommandDispatch.
This is wrong for functions provided by instance extension VK_EXT_debug_utils. Those functions' first param is a VkDevice.
Which function does this apply to? I checked them all and they seem to have the right parameter.
For example, the function vkSetDebugUtilsObjectNameEXT is provided by instance extension VK_EXT_debug_utils. Its first parameter is VkDevice. So this function is registered in vk.DeviceWrapper.
Generally you pass vkGetDeviceProcAddr loader to vk.DeviceWrapper.load(), but for vkSetDebugUtilsObjectNameEXT, it should be load by vkGetInstanceProcAddr.
This is weird. There is no indication anywhere that this should be loaded by the vkGetInstanceProcAddr, and in amdvlk vkSetDebugUtilsObjectNameEXT seems to be a device-level function. Which driver and version are you using? Do you have a repro?