Enum
VkBufferUsageFlagBits2
Bitmask controlling how a pipeline is created
Bits which can be set in VkBufferUsageFlags2CreateInfo::usage,
specifying usage behavior of a buffer, are:
typedef enum VkBufferUsageFlagBits2 {
VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL,
VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL,
VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL,
VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL,
VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL,
VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL,
VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL,
VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL,
VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL,
// Provided by extensions
VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL,
VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL,
VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000ULL,
VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT,
VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = VK_BUFFER_USAGE_2_TRANSFER_DST_BIT,
VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT,
VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT,
VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT,
VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT,
VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT,
VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT,
VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL,
VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL,
VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR,
VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL,
VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL,
VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL,
VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL,
VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL,
VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL,
VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT,
VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL,
VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL,
VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL,
VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL,
VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL,
VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL,
VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL,
VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL,
VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL,
VK_BUFFER_USAGE_2_RESERVED_34_BIT_EXT = 0x400000000ULL,
VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL,
VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL,
VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL,
VK_BUFFER_USAGE_2_RESERVED_35_BIT_KHR = 0x800000000ULL,
VK_BUFFER_USAGE_2_RESERVED_36_BIT_KHR = 0x1000000000ULL,
VK_BUFFER_USAGE_2_RESERVED_37_BIT_HUAWEI = 0x2000000000ULL,
} VkBufferUsageFlagBits2;
pub struct BufferUsageFlagBits2(u64);
impl BufferUsageFlagBits2 {
pub const TRANSFER_SRC: Self = 0x00000001;
pub const TRANSFER_DST: Self = 0x00000002;
pub const UNIFORM_TEXEL_BUFFER: Self = 0x00000004;
pub const STORAGE_TEXEL_BUFFER: Self = 0x00000008;
pub const UNIFORM_BUFFER: Self = 0x00000010;
pub const STORAGE_BUFFER: Self = 0x00000020;
pub const INDEX_BUFFER: Self = 0x00000040;
pub const VERTEX_BUFFER: Self = 0x00000080;
pub const INDIRECT_BUFFER: Self = 0x00000100;
pub const SHADER_DEVICE_ADDRESS: Self = 0x00020000;
pub const EXECUTION_GRAPH_SCRATCH_AMDX: Self = 0x02000000;
pub const DESCRIPTOR_HEAP_EXT: Self = 0x10000000;
pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC;
pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST;
pub const UNIFORM_TEXEL_BUFFER_KHR: Self = Self::UNIFORM_TEXEL_BUFFER;
pub const STORAGE_TEXEL_BUFFER_KHR: Self = Self::STORAGE_TEXEL_BUFFER;
pub const UNIFORM_BUFFER_KHR: Self = Self::UNIFORM_BUFFER;
pub const STORAGE_BUFFER_KHR: Self = Self::STORAGE_BUFFER;
pub const INDEX_BUFFER_KHR: Self = Self::INDEX_BUFFER;
pub const VERTEX_BUFFER_KHR: Self = Self::VERTEX_BUFFER;
pub const INDIRECT_BUFFER_KHR: Self = Self::INDIRECT_BUFFER;
pub const CONDITIONAL_RENDERING_EXT: Self = 0x00000200;
pub const SHADER_BINDING_TABLE_KHR: Self = 0x00000400;
pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE_KHR;
pub const TRANSFORM_FEEDBACK_BUFFER_EXT: Self = 0x00000800;
pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT: Self = 0x00001000;
pub const VIDEO_DECODE_SRC_KHR: Self = 0x00002000;
pub const VIDEO_DECODE_DST_KHR: Self = 0x00004000;
pub const VIDEO_ENCODE_DST_KHR: Self = 0x00008000;
pub const VIDEO_ENCODE_SRC_KHR: Self = 0x00010000;
pub const SHADER_DEVICE_ADDRESS_KHR: Self = Self::SHADER_DEVICE_ADDRESS;
pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR: Self = 0x00080000;
pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = 0x00100000;
pub const SAMPLER_DESCRIPTOR_BUFFER_EXT: Self = 0x00200000;
pub const RESOURCE_DESCRIPTOR_BUFFER_EXT: Self = 0x00400000;
pub const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT: Self = 0x04000000;
pub const MICROMAP_BUILD_INPUT_READ_ONLY_EXT: Self = 0x00800000;
pub const MICROMAP_STORAGE_EXT: Self = 0x01000000;
pub const COMPRESSED_DATA_DGF1_AMDX: Self = 0x200000000;
pub const DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM: Self = 0x20000000;
pub const RESERVED_34_EXT: Self = 0x400000000;
pub const TILE_MEMORY_QCOM: Self = 0x08000000;
pub const MEMORY_DECOMPRESSION_EXT: Self = 0x100000000;
pub const PREPROCESS_BUFFER_EXT: Self = 0x80000000;
pub const RESERVED_35_KHR: Self = 0x800000000;
pub const RESERVED_36_KHR: Self = 0x1000000000;
pub const RESERVED_37_HUAWEI: Self = 0x2000000000;
}
#define VkBufferUsageFlagBits2KHR VkBufferUsageFlagBits2
const BufferUsageFlagBits2KHR: _ = vk::BufferUsageFlagBits2;
VK_BUFFER_USAGE_2_TRANSFER_SRC_BITspecifies that the buffer can be used as the source of a transfer command (see the definition ofVK_PIPELINE_STAGE_TRANSFER_BIT).VK_BUFFER_USAGE_2_TRANSFER_DST_BITspecifies that the buffer can be used as the destination of a transfer command.VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BITspecifies that the buffer can be used to create aVkBufferViewsuitable for occupying aVkDescriptorSetslot of typeVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BITspecifies that the buffer can be used to create aVkBufferViewsuitable for occupying aVkDescriptorSetslot of typeVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BITspecifies that the buffer can be used in aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERorVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.VK_BUFFER_USAGE_2_STORAGE_BUFFER_BITspecifies that the buffer can be used in aVkDescriptorBufferInfosuitable for occupying aVkDescriptorSetslot either of typeVK_DESCRIPTOR_TYPE_STORAGE_BUFFERorVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.VK_BUFFER_USAGE_2_INDEX_BUFFER_BITspecifies that the buffer is suitable for passing as thebufferparameter to vkCmdBindIndexBuffer2 and vkCmdBindIndexBuffer.VK_BUFFER_USAGE_2_VERTEX_BUFFER_BITspecifies that the buffer is suitable for passing as an element of thepBuffersarray to vkCmdBindVertexBuffers.VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BITspecifies that the buffer is suitable for passing as thebufferparameter to vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDrawMeshTasksIndirectNV, vkCmdDrawMeshTasksIndirectCountNV,vkCmdDrawMeshTasksIndirectEXT,vkCmdDrawMeshTasksIndirectCountEXT, vkCmdDrawClusterIndirectHUAWEI, or vkCmdDispatchIndirect. It is also suitable for passing as thebuffermember ofVkIndirectCommandsStreamNV, orsequencesCountBufferorsequencesIndexBufferorpreprocessedBuffermember ofVkGeneratedCommandsInfoNV. It is also suitable for passing as the underlying buffer of either thepreprocessAddressorsequenceCountAddressmembers ofVkGeneratedCommandsInfoEXT.VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXTspecifies that the buffer is suitable for passing as thebufferparameter to vkCmdBeginConditionalRenderingEXT.VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXTspecifies that the buffer is suitable for using for binding as a transform feedback buffer with vkCmdBindTransformFeedbackBuffers2EXT or vkCmdBindTransformFeedbackBuffersEXT.VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXTspecifies that the buffer is suitable for using as a counter buffer with vkCmdBeginTransformFeedback2EXT, vkCmdEndTransformFeedback2EXT, vkCmdBeginTransformFeedbackEXT, and vkCmdEndTransformFeedbackEXT.VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXTspecifies that the buffer is suitable to contain sampler and combined image sampler descriptors when bound as a descriptor buffer. Buffers containing combined image sampler descriptors must also specifyVK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT.VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXTspecifies that the buffer is suitable to contain resource descriptors when bound as a descriptor buffer.VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXTspecifies that the buffer, when bound, can be used by the implementation to support push descriptors when using descriptor buffers.VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOMspecifies that the buffer can be bound toVkDeviceMemoryallocated from a VkMemoryHeap with theVK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOMproperty.VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NVspecifies that the buffer is suitable for use in vkCmdTraceRaysNV.VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHRspecifies that the buffer is suitable for use as a Shader Binding Table.VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHRspecifies that the buffer is suitable for use as a read-only input to an acceleration structure build.VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHRspecifies that the buffer is suitable for storage space for a VkAccelerationStructureKHR.VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BITspecifies that the buffer can be used to retrieve a buffer device address via vkGetBufferDeviceAddress and use that address to access the buffer’s memory from a shader.VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHRspecifies that the buffer can be used as the source video bitstream buffer in a video decode operation.VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHRis reserved for future use.VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHRspecifies that the buffer can be used as the destination video bitstream buffer in a video encode operation.VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHRis reserved for future use.VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDXspecifies that the buffer can be used for as scratch memory for execution graph dispatch.VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXTspecifies that the buffer can be used as a preprocess buffer for Device-Generated Commands.VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDXspecifies that the buffer is suitable as storage space for Dense Geometry Format data.VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARMspecifies that the buffer is suitable to contain resource descriptors when bound as a descriptor buffer in command buffers allocated from a command pool that can target foreign data graph processing engines.VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXTspecifies that the buffer can be used as a destination buffer in memory decompression.VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXTspecifies that the buffer can be used as a descriptor heap.
Parent
VK_VERSION_1_4Type
Enum