VkQueueFlagBits
Bits which may be set in VkQueueFamilyProperties::queueFlags,
indicating capabilities of queues in a queue family are:
typedef enum VkQueueFlagBits {
VK_QUEUE_GRAPHICS_BIT = 0x00000001,
VK_QUEUE_COMPUTE_BIT = 0x00000002,
VK_QUEUE_TRANSFER_BIT = 0x00000004,
VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
// Provided by extensions
VK_QUEUE_PROTECTED_BIT = 0x00000010,
VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
VK_QUEUE_RESERVED_7_BIT_QCOM = 0x00000080,
VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
VK_QUEUE_RESERVED_12_BIT_EXT = 0x00001000,
VK_QUEUE_RESERVED_9_BIT_EXT = 0x00000200,
VK_QUEUE_RESERVED_13_BIT_EXT = 0x00002000,
VK_QUEUE_RESERVED_11_BIT_ARM = 0x00000800,
} VkQueueFlagBits;
pub struct QueueFlagBits(u32);
impl QueueFlagBits {
pub const GRAPHICS: Self = 0x00000001;
pub const COMPUTE: Self = 0x00000002;
pub const TRANSFER: Self = 0x00000004;
pub const SPARSE_BINDING: Self = 0x00000008;
pub const PROTECTED: Self = 0x00000010;
pub const VIDEO_DECODE_KHR: Self = 0x00000020;
pub const VIDEO_ENCODE_KHR: Self = 0x00000040;
pub const RESERVED_7_QCOM: Self = 0x00000080;
pub const OPTICAL_FLOW_NV: Self = 0x00000100;
pub const DATA_GRAPH_ARM: Self = 0x00000400;
pub const RESERVED_12_EXT: Self = 0x00001000;
pub const RESERVED_9_EXT: Self = 0x00000200;
pub const RESERVED_13_EXT: Self = 0x00002000;
pub const RESERVED_11_ARM: Self = 0x00000800;
}
VK_QUEUE_GRAPHICS_BITspecifies that queues in this queue family support graphics operations.VK_QUEUE_COMPUTE_BITspecifies that queues in this queue family support compute operations.VK_QUEUE_TRANSFER_BITspecifies that queues in this queue family support transfer operations.VK_QUEUE_SPARSE_BINDING_BITspecifies that queues in this queue family support sparse memory management operations (see Sparse Resources). If any of the sparse resource features are supported, then at least one queue family must support this bit.VK_QUEUE_VIDEO_DECODE_BIT_KHRspecifies that queues in this queue family support video decode operations.VK_QUEUE_VIDEO_ENCODE_BIT_KHRspecifies that queues in this queue family support video encode operations.VK_QUEUE_OPTICAL_FLOW_BIT_NVspecifies that queues in this queue family support optical flow operations.VK_QUEUE_DATA_GRAPH_BIT_ARMspecifies that queues in this queue family support data graph operations.VK_QUEUE_PROTECTED_BITspecifies that queues in this queue family support theVK_DEVICE_QUEUE_CREATE_PROTECTED_BITbit. (see Protected Memory). If the physical device supports theprotectedMemoryfeature, at least one of its queue families must support this bit.
At least one queue family of at least one physical device exposed by the implementation must support at least one of the following sets of operations:
- graphics operations
- compute operations
- video encode operations
- video decode operations
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.
Furthermore, if the protectedMemory
physical device feature is supported, then at least one queue family of at
least one physical device exposed by the implementation must support
graphics operations, compute operations, and protected memory operations.
VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, then reporting
the VK_QUEUE_TRANSFER_BIT capability separately for that queue family
is optional.For further details see Queues.