VkDeviceQueueCreateInfo
The VkDeviceQueueCreateInfo structure is defined as:
typedef struct VkDeviceQueueCreateInfo {
VkStructureType sType;
const void* pNext;
VkDeviceQueueCreateFlags flags;
uint32_t queueFamilyIndex;
uint32_t queueCount;
const float* pQueuePriorities;
} VkDeviceQueueCreateInfo;
pub struct DeviceQueueCreateInfo {
s_type: vk::StructureType,
p_next: *const c_void,
flags: vk::DeviceQueueCreateFlags,
queue_family_index: u32,
queue_count: u32,
p_queue_priorities: *const f32,
}
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis a bitmask indicating behavior of the queues.queueFamilyIndexis an unsigned integer indicating the index of the queue family in which to create the queues on this device. This index corresponds to the index of an element of thepQueueFamilyPropertiesarray that was returned byvkGetPhysicalDeviceQueueFamilyProperties.queueCountis an unsigned integer specifying the number of queues to create in the queue family indicated byqueueFamilyIndex, and with the behavior specified byflags.pQueuePrioritiesis a pointer to an array ofqueueCountnormalized floating-point values, specifying priorities of work that will be submitted to each created queue. See Queue Priority for more information.
Some queue families support functionality which requires a device feature or
extension to be enabled, as indicated by the
VkQueueFamilyProperties::queueFlags member.
Applications may create such queues and submit queue submission commands to them without enabling the corresponding
feature or extension, but must not utilize the specific functionality that
they did not enable.
For example, sparse memory management operations can be
performed on queues from queue families exposing the
VK_QUEUE_SPARSE_BINDING_BIT bit, provided the
sparseBinding feature is enabled.
If a queue family supports both the VK_QUEUE_SPARSE_BINDING_BIT and
VK_QUEUE_TRANSFER_BIT bits, applications may create a queue from this
family and issue transfer operations without enabling the
sparseBinding feature.
Valid Usage
VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381
queueFamilyIndex must be less than
pQueueFamilyPropertyCount returned by
vkGetPhysicalDeviceQueueFamilyProperties
VUID-VkDeviceQueueCreateInfo-queueCount-00382
queueCount must be less than or equal to the queueCount
member of the VkQueueFamilyProperties structure, as returned by
vkGetPhysicalDeviceQueueFamilyProperties in the
pQueueFamilyProperties[queueFamilyIndex]
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383
Each element of pQueuePriorities must be between 0.0 and 1.0
inclusive
VUID-VkDeviceQueueCreateInfo-flags-02861
If the protectedMemory feature is
not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of
flags must not be set
VUID-VkDeviceQueueCreateInfo-flags-06449
If flags includes VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,
queueFamilyIndex must be the index of a queue family that
includes the VK_QUEUE_PROTECTED_BIT capability
VUID-VkDeviceQueueCreateInfo-pNext-09398
If the pNext chain includes a
VkDeviceQueueShaderCoreControlCreateInfoARM structure then
VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlagsmust contain
VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM
VUID-VkDeviceQueueCreateInfo-internallySynchronizedQueues-12348
If the internallySynchronizedQueues feature is not enabled, flagsmust not include
VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR
Valid Usage (Implicit)
VUID-VkDeviceQueueCreateInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
VUID-VkDeviceQueueCreateInfo-pNext-pNext
Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfo or VkDeviceQueueShaderCoreControlCreateInfoARM
VUID-VkDeviceQueueCreateInfo-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkDeviceQueueCreateInfo-flags-parameter
flags must be a valid combination of VkDeviceQueueCreateFlagBits values
VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter
pQueuePriorities must be a valid pointer to an array of queueCount float values
VUID-VkDeviceQueueCreateInfo-queueCount-arraylength
queueCount must be greater than 0