2016-07-11 01:13:41 +00:00
|
|
|
// 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/
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
VkQueueFamilyProperties(3)
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Name
|
|
|
|
----
|
|
|
|
VkQueueFamilyProperties - Structure providing information about a queue family.
|
|
|
|
|
|
|
|
C Specification
|
|
|
|
---------------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkQueueFamilyProperties Structure providing information about a queue family.
|
|
|
|
|
|
|
|
The sname:VkQueueFamilyProperties structure is defined as:
|
|
|
|
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
include::../api/structs/VkQueueFamilyProperties.txt[]
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
Members
|
|
|
|
-------
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
* 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.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
-----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
The bits specified in pname:queueFlags are:
|
|
|
|
|
|
|
|
// refBegin VkQueueFlagBits - Bitmask specifying capabilities of queues in a queue family
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
include::../api/enums/VkQueueFlagBits.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
|
|
|
|
* 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)$].
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::../validity/structs/VkQueueFamilyProperties.txt[]
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
See Also
|
|
|
|
--------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
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.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::footer.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
|