Vulkan-Docs/doc/specs/vulkan/man/VkQueueFamilyProperties.txt

148 lines
5.7 KiB
Plaintext

// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
VkQueueFamilyProperties(3)
==========================
Name
----
VkQueueFamilyProperties - Structure providing information about a queue family.
C Specification
---------------
// refBegin VkQueueFamilyProperties Structure providing information about a queue family.
The sname:VkQueueFamilyProperties structure is defined as:
include::../structs/VkQueueFamilyProperties.txt[]
Members
-------
* pname:queueFlags contains flags indicating the capabilities of the
queues in this queue family.
* pname:queueCount is the unsigned integer count of queues in this
queue family.
* pname:timestampValidBits is the unsigned integer count of meaningful
bits in the timestamps written via fname:vkCmdWriteTimestamp. The valid
range for the count is 36..64 bits, or a value of 0, indicating no
support for timestamps. Bits outside the valid range are guaranteed to
be zeros.
* pname:minImageTransferGranularity is the minimum granularity
supported for image transfer operations on the queues in this queue
family.
Description
-----------
The bits specified in pname:queueFlags are:
// refBegin VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue family
include::../enums/VkQueueFlagBits.txt[]
* if ename:VK_QUEUE_GRAPHICS_BIT is set, then the queues in this queue
family support graphics operations.
* if ename:VK_QUEUE_COMPUTE_BIT is set, then the queues in this queue
family support compute operations.
* if ename:VK_QUEUE_TRANSFER_BIT is set, then the queues in this queue
family support transfer operations.
* if ename:VK_QUEUE_SPARSE_BINDING_BIT is set, then the queues in this
queue family support sparse memory management operations (see
<<sparsememory,Sparse Resources>>). If any of the sparse resource
features are enabled, then at least one queue family must: support this
bit.
If an implementation exposes any queue family that supports graphics
operations, at least one queue family of at least one physical device
exposed by the implementation must: support both graphics and compute
operations.
[NOTE]
.Note
====
All commands that are allowed on a queue that supports transfer operations
are also allowed on a queue that supports either graphics or compute
operations thus if the capabilities of a queue family include
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT then
reporting the ename:VK_QUEUE_TRANSFER_BIT capability separately for that
queue family is optional:.
====
For further details see <<devsandqueues-queues,Queues>>.
The value returned in pname:minImageTransferGranularity has a unit of
compressed texel blocks for images having a block-compressed format, and a
unit of texels otherwise.
Possible values of pname:minImageTransferGranularity are:
* latexmath:[$(0,0,0)$] which indicates that only whole mip levels must:
be transferred using the image transfer operations on the corresponding
queues. In this case, the following restrictions apply to all offset and
extent parameters of image transfer operations:
** The pname:x, pname:y, and pname:z members of a slink:VkOffset3D
parameter must: always be zero.
** The pname:width, pname:height, and pname:depth members of a
slink:VkExtent3D parameter must: always match the width, height, and
depth of the image subresource corresponding to the parameter,
respectively.
* latexmath:[$(Ax, Ay, Az)$] where latexmath:[$Ax$], latexmath:[$Ay$],
and latexmath:[$Az$] are all integer powers of two. In this case the
following restrictions apply to all image transfer operations:
** pname:x, pname:y, and pname:z of a slink:VkOffset3D parameter must: be
integer multiples of latexmath:[$Ax$], latexmath:[$Ay$], and
latexmath:[$Az$], respectively.
** pname:width of a slink:VkExtent3D parameter must: be an integer
multiple of latexmath:[$Ax$], or else latexmath:[$(x + width)$] must:
equal the width of the image subresource corresponding to the
parameter.
** pname:height of a slink:VkExtent3D parameter must: be an integer
multiple of latexmath:[$Ay$], or else latexmath:[$(y + height)$] must:
equal the height of the image subresource corresponding to the
parameter.
** pname:depth of a slink:VkExtent3D parameter must: be an integer
multiple of latexmath:[$Az$], or else latexmath:[$(z + depth)$] must:
equal the depth of the image subresource corresponding to the
parameter.
** If the format of the image corresponding to the parameters is one of
the block-compressed formats then for the purposes of the above
calculations the granularity must: be scaled up by the compressed
texel block dimensions.
Queues supporting graphics and/or compute operations must: report
latexmath:[$(1,1,1)$] in pname:minImageTransferGranularity, meaning that
there are no additional restrictions on the granularity of image
transfer operations for these queues. Other queues supporting image
transfer operations are only required: to support whole mip level
transfers, thus pname:minImageTransferGranularity for
queues belonging to such queue families may: be latexmath:[$(0,0,0)$].
include::../validity/structs/VkQueueFamilyProperties.txt[]
See Also
--------
slink:VkExtent3D, elink:VkQueueFlags, flink:vkGetPhysicalDeviceQueueFamilyProperties
Document Notes
--------------
For more information, see the Vulkan Specification at URL
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkQueueFamilyProperties
This page is extracted from the Vulkan Specification.
Fixes and changes should be made to the Specification,not directly.
include::footer.txt[]