A queue family defines the properties of a number of queues supported by the hardware.
When you instantiate a physical device you can enumerate the queues it supports using vkGetPhysicalDeviceQueueFamilyProperties
which returns a number of VkQueueFamilyProperties
. You can then query the results to find the queue(s) that you require for your application, e.g. VkQueueFlag.VK_QUEUE_GRAPHICS_BIT
for rendering. When creating the logical device you build a number of VkDeviceQueueCreateInfo
for the queues that you require, each contains the appropriate queue family index.
More details: Vulkan tutorial
Note that in your code pQueueCreateInfos
should be pointing to the array of VkDeviceQueueCreateInfo
and not the queue family index.
The value you looked at in the debugger is indeed just a memory address, i.e. an 'opaque' handle. Just about every Vulkan 'object' is a handle.