My home computer is a late 2012 Mac Mini, it has a 3rd gen Intel IvyBridge processor (mobile model for some reason only Apple knows).
The "vulkaninfo.app" from the LunarG SDK reports 4 queue families on the integrated GPU, but public information shows that it should only have 1 one it. What's happening?
VkQueueFamilyProperties[0]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
VkQueueFamilyProperties[1]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
VkQueueFamilyProperties[2]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
VkQueueFamilyProperties[3]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
In macOS, there's no queue count or queue family count in Metal Devices (as of July 2019), so one could create 1 or any number of queues and get full utilization of the device.
However, as noted in a GitHub issue, some programs with hardwired assumptions crashes when there's only 1 queue family, so they made MoltenVK report 4 queue families to fix it (see pull request 450).