148 lines
5.7 KiB
Plaintext
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[]
|
|
|