vkGetPhysicalDeviceQueueFamilyProperties(3) =========================================== Name ---- vkGetPhysicalDeviceQueueFamilyProperties - Reports properties of the queues of the specified physical device. C Specification --------------- include::../protos/vkGetPhysicalDeviceQueueFamilyProperties.txt[] Parameters ---------- pname:physicalDevice:: Physical device to query. pname:pQueueFamilyPropertyCount:: Count indicating number of sname:VkQueueFamilyProperties pointed to by pname:pQueueFamilyProperties. pname:pQueueFamilyProperties:: Pointer to an array of sname:VkQueueFamilyProperties structures receiving the information about each particular queue family. Description ----------- fname:vkGetPhysicalDeviceQueueFamilyProperties retrieves properties of the queues on a physical device whose handle is given in pname:physicalDevice. pname:pQueueFamilyPropertyCount must be set to the size of the array pointed to by pname:pQueueFamilyProperties and thus specifies the number of queue families to retrieve information for. The pname:pQueueFamilyProperties parameter should point to an array of sname:VkQueueFamilyProperties structures to be filled out with the properties of the queue families. If pname:pQueueFamilyProperties is code:NULL then fname:vkGetPhysicalDeviceQueueFamilyProperties will update the value pointed by pname:pQueueFamilyPropertyCount with the number of queue families available on the specified physical device. The device will overwrite the entries of pname:pQueueFamilyProperties with information about the supported queues, and will write the number of structures filled into the variable pointed to by pname:pQueueFamilyPropertyCount. Each element of pname:pQueueFamilyProperties is an instance of the slink:VkQueueFamilyProperties structure, the definition of which is: include::../structs/VkQueueFamilyProperties.txt[] The members of slink:VkQueueFamilyProperties have the following meanings: * pname:queueFlags is a bitfield made up from members of the elink:VkQueueFlagBits enumeration indicating capabilities of the queue. The list of capabilities is described below. * pname:queueCount contains the number of individual queues within the specified queue family. Queues within a single family are considered identical from a feature support perspective and are directly compatible with one another. * pname:timestampValidBits contains the number of valid bits that will be written to timestamp by flink:vkCmdWriteTimestamp. Timestamps are always 64-bit unsigned integers. However, less than 64 bits may actually be valid. Additional bits will contain zeros. If pname:timestampValidBits is zero then the queue does not support timestamps and flink:vkCmdWriteTimestamp may not be used in command buffers submitted to queues in this family. If pname:timestampValidBits is non-zero, it must be at least 32, and may be as high as 64. The valid bits that may be contained in pname:queueFlags are comprised of the members of the elink:VkQueueFlagBits enumeration, the definition of which is: include::../enums/VkQueueFlagBits.txt[] * If a queue's ptext:queueFlags member contains ename:VK_QUEUE_GRAPHICS_BIT, then it supports graphics operations such as binding graphics state and graphics pipelines and executing drawing commands. * If a queue's ptext:queueFlags member contains ename:VK_QUEUE_COMPUTE_BIT, then it supports compute operations such as binding compute pipelines and executing compute dispatches. * If a queue's ptext:queueFlags member contains ename:VK_QUEUE_TRANSFER_BIT, then it supports transsfer operations, which include copying data an images. * If a queue's ptext:queueFlags member contains ename:VK_QUEUE_SPARSE_BINDING_BIT, then it supports binding memory to sparse buffer and image resources. All Vulkan implementations must expose at least one queue, each of which has at least one queue capability bit set. Note, though, that it is possible that new sets of capabilities are exposed by extensions or future API versions and so a queue may have none of the bits listed above set. include::../validity/protos/vkGetPhysicalDeviceQueueFamilyProperties.txt[] See Also -------- flink:vkGetPhysicalDeviceFeatures, flink:vkGetPhysicalDeviceProperties, flink:vkGetPhysicalDeviceMemoryProperties, slink:VkQueueFamilyProperties include::footer.txt[]