A collection of flags is represented by a bitmask using the type
// Provided by VK_VERSION_1_0 typedef uint32_t VkFlags;
Bitmasks are passed to many commands and structures to compactly represent
VkFlags is not used directly in the API.
Vk*Flags type which is an alias of
whose name matches the corresponding
Vk*FlagBits that are valid for
that type, is used.
Vk*Flags member or parameter used in the API as an input must be
a valid combination of bit flags.
A valid combination is either zero or the bitwise OR of valid bit flags.
A bit flag is valid if:
The bit flag is defined as part of the
Vk*FlagBitstype, where the bits type is obtained by taking the flag type and replacing the trailing
FlagBits. For example, a flag value of type VkColorComponentFlags must contain only bit flags defined by VkColorComponentFlagBits.
The flag is allowed in the context in which it is being used. For example, in some cases, certain bit flags or combinations of bit flags are mutually exclusive.
Vk*Flags member or parameter returned from a query command or
otherwise output from Vulkan to the application may contain bit flags
undefined in its corresponding
An application cannot rely on the state of these unspecified bits.
Only the low-order 31 bits (bit positions zero through 30) are available for use as flag bits.
This restriction is due to poorly defined behavior by C compilers given a C
enumerant value of
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.