Vulkan-Docs/doc/specs/vulkan/man/vkGetPhysicalDeviceQueueFam...

95 lines
4.2 KiB
Plaintext

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[]