C Specification
The VkQueueFamilyProperties
structure is defined as:
// Provided by VK_VERSION_1_0
typedef struct VkQueueFamilyProperties {
VkQueueFlags queueFlags;
uint32_t queueCount;
uint32_t timestampValidBits;
VkExtent3D minImageTransferGranularity;
} VkQueueFamilyProperties;
Members

queueFlags
is a bitmask of VkQueueFlagBits indicating capabilities of the queues in this queue family. 
queueCount
is the unsigned integer count of queues in this queue family. Each queue family must support at least one queue. 
timestampValidBits
is the unsigned integer count of meaningful bits in the timestamps written via vkCmdWriteTimestamp2KHR or vkCmdWriteTimestamp. The valid range for the count is 36 to 64 bits, or a value of 0, indicating no support for timestamps. Bits outside the valid range are guaranteed to be zeros. 
minImageTransferGranularity
is the minimum granularity supported for image transfer operations on the queues in this queue family.
Description
The value returned in minImageTransferGranularity
has a unit of
compressed texel blocks for images having a blockcompressed format, and a
unit of texels otherwise.
Possible values of minImageTransferGranularity
are:

(0,0,0) specifies 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
x
,y
, andz
members of a VkOffset3D parameter must always be zero. 
The
width
,height
, anddepth
members of a VkExtent3D parameter must always match the width, height, and depth of the image subresource corresponding to the parameter, respectively.


(A_{x}, A_{y}, A_{z}) where A_{x}, A_{y}, and A_{z} are all integer powers of two. In this case the following restrictions apply to all image transfer operations:

x
,y
, andz
of a VkOffset3D parameter must be integer multiples of A_{x}, A_{y}, and A_{z}, respectively. 
width
of a VkExtent3D parameter must be an integer multiple of A_{x}, or elsex
+width
must equal the width of the image subresource corresponding to the parameter. 
height
of a VkExtent3D parameter must be an integer multiple of A_{y}, or elsey
+height
must equal the height of the image subresource corresponding to the parameter. 
depth
of a VkExtent3D parameter must be an integer multiple of A_{z}, or elsez
+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 blockcompressed 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
(1,1,1) in 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 minImageTransferGranularity
for queues belonging to such queue families may be (0,0,0).
The Device Memory section describes memory properties queried from the physical device.
For physical device feature queries see the Features chapter.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.