Enum
VkAccessFlagBits2
Access flags for VkAccessFlags2
Bits which can be set in the srcAccessMask and dstAccessMask
members of VkMemoryBarrier2KHR, VkImageMemoryBarrier2KHR, and
VkBufferMemoryBarrier2KHR, specifying access behavior, are:
typedef enum VkAccessFlagBits2 {
VK_ACCESS_2_NONE = 0,
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL,
VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL,
VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL,
VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL,
VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL,
VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL,
VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL,
VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL,
VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL,
VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL,
VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL,
VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL,
VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL,
VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL,
VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL,
VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL,
VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL,
// bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum
VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL,
VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL,
VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL,
} VkAccessFlagBits2;
pub struct AccessFlagBits2(u64);
impl AccessFlagBits2 {
pub const NONE: Self = 0;
pub const INDIRECT_COMMAND_READ: Self = 0x00000001;
pub const INDEX_READ: Self = 0x00000002;
pub const VERTEX_ATTRIBUTE_READ: Self = 0x00000004;
pub const UNIFORM_READ: Self = 0x00000008;
pub const INPUT_ATTACHMENT_READ: Self = 0x00000010;
pub const SHADER_READ: Self = 0x00000020;
pub const SHADER_WRITE: Self = 0x00000040;
pub const COLOR_ATTACHMENT_READ: Self = 0x00000080;
pub const COLOR_ATTACHMENT_WRITE: Self = 0x00000100;
pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = 0x00000200;
pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = 0x00000400;
pub const TRANSFER_READ: Self = 0x00000800;
pub const TRANSFER_WRITE: Self = 0x00001000;
pub const HOST_READ: Self = 0x00002000;
pub const HOST_WRITE: Self = 0x00004000;
pub const MEMORY_READ: Self = 0x00008000;
pub const MEMORY_WRITE: Self = 0x00010000;
// bitpos 17-31 are specified by extensions to the original VkAccessFlagBits enum
pub const SHADER_SAMPLED_READ: Self = 0x100000000;
pub const SHADER_STORAGE_READ: Self = 0x200000000;
pub const SHADER_STORAGE_WRITE: Self = 0x400000000;
}
#define VkAccessFlagBits2KHR VkAccessFlagBits2
const AccessFlagBits2KHR: _ = vk::AccessFlagBits2;
VK_ACCESS_2_NONEspecifies no accesses.VK_ACCESS_2_MEMORY_READ_BITspecifies all read accesses. It is always valid in any access mask, and is treated as equivalent to setting allREADaccess flags that are valid where it is used.VK_ACCESS_2_MEMORY_WRITE_BITspecifies all write accesses. It is always valid in any access mask, and is treated as equivalent to setting allWRITEaccess flags that are valid where it is used.VK_ACCESS_2_INDIRECT_COMMAND_READ_BITspecifies read access to command data read from indirect buffers as part of an indirect build, trace, drawing or dispatch command. Such access occurs in theVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BITpipeline stage. It also specifies read access to command data read from indirect buffers as part of a copy command with access occurring in theVK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHRpipeline stage.VK_ACCESS_2_INDEX_READ_BITspecifies read access to an index buffer as part of an indexed drawing command, bound by vkCmdBindIndexBuffer2 and vkCmdBindIndexBuffer. Such access occurs in theVK_PIPELINE_STAGE_2_INDEX_INPUT_BITpipeline stage.VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BITspecifies read access to a vertex buffer as part of a drawing command, bound by vkCmdBindVertexBuffers. Such access occurs in theVK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BITpipeline stage.VK_ACCESS_2_UNIFORM_READ_BITspecifies read access to a uniform buffer in any shader pipeline stage.VK_ACCESS_2_INPUT_ATTACHMENT_READ_BITspecifies read access to an input attachment within a render pass during subpass shading or fragment shading. Such access occurs in theVK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEIorVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BITpipeline stage.VK_ACCESS_2_SHADER_SAMPLED_READ_BITspecifies read access to a uniform texel buffer or sampled image in any shader pipeline stage.VK_ACCESS_2_SHADER_STORAGE_READ_BITspecifies read access to a storage buffer, physical storage buffer, storage texel buffer, or storage image in any shader pipeline stage.VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHRspecifies read access to a shader binding table in any shader pipeline stage.VK_ACCESS_2_SHADER_READ_BITis equivalent to the logical OR of:VK_ACCESS_2_SHADER_SAMPLED_READ_BITVK_ACCESS_2_SHADER_STORAGE_READ_BITVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHRVK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM
VK_ACCESS_2_SHADER_STORAGE_WRITE_BITspecifies write access to a storage buffer, physical storage buffer, storage texel buffer, or storage image in any shader pipeline stage.VK_ACCESS_2_SHADER_WRITE_BITis equivalent toVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT.VK_ACCESS_2_COLOR_ATTACHMENT_READ_BITspecifies read access to a color attachment, such as via blending (other than advanced blend operations), logic operations or certain render pass load operations in theVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITpipeline stage or via fragment shader tile image reads in theVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BITpipeline stage.VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BITspecifies write access to a color attachment during a render pass or via certain render pass load, store, and multisample resolve operations. This includes multisample resolve operations for depth/stencil resolve attachments. Such access occurs in theVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITpipeline stage.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BITspecifies read access to a depth/stencil attachment, via depth or stencil operations or certain render pass load operations in theVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BITorVK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BITpipeline stages or via fragment shader tile image reads in theVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BITpipeline stage.VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BITspecifies write access to a depth/stencil attachment, via depth or stencil operations or certain render pass load and store operations. Such access occurs in theVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BITorVK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BITpipeline stages.VK_ACCESS_2_TRANSFER_READ_BITspecifies read access to an image or buffer in a copy operation. Such access occurs in theVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT, orVK_PIPELINE_STAGE_2_RESOLVE_BITpipeline stages.VK_ACCESS_2_TRANSFER_WRITE_BITspecifies write access to an image or buffer in a clear or copy operation. Such access occurs in theVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_CLEAR_BIT, orVK_PIPELINE_STAGE_2_RESOLVE_BITpipeline stages.VK_ACCESS_2_HOST_READ_BITspecifies read access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in theVK_PIPELINE_STAGE_2_HOST_BITpipeline stage.VK_ACCESS_2_HOST_WRITE_BITspecifies write access by a host operation. Accesses of this type are not performed through a resource, but directly on memory. Such access occurs in theVK_PIPELINE_STAGE_2_HOST_BITpipeline stage.VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXTspecifies read access to a predicate as part of conditional rendering. Such access occurs in theVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXTpipeline stage.VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXTspecifies write access to a transform feedback buffer made when transform feedback is active. Such access occurs in theVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXTpipeline stage.VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXTspecifies read access to a transform feedback counter buffer which is read when vkCmdBeginTransformFeedbackEXT executes. Such access occurs in theVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXTpipeline stage.VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXTspecifies write access to a transform feedback counter buffer which is written when vkCmdEndTransformFeedbackEXT executes. Such access occurs in theVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXTpipeline stage.VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NVspecifies reads from buffer inputs to vkCmdPreprocessGeneratedCommandsNV. Such access occurs in theVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVpipeline stage.VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NVspecifies writes to the target command buffer preprocess outputs. Such access occurs in theVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVpipeline stage.VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXTspecifies reads from buffer inputs to vkCmdPreprocessGeneratedCommandsEXT. Such access occurs in theVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXTpipeline stage.VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXTspecifies writes to the target command buffer preprocess outputs. Such access occurs in theVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXTpipeline stage.VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXTspecifies read access to memory in decompression commands vkCmdDecompressMemoryEXT and vkCmdDecompressMemoryIndirectCountEXT. Such access occurs inVK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXTpipeline stage.VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXTspecifies write access to memory in decompression commands vkCmdDecompressMemoryEXT and vkCmdDecompressMemoryIndirectCountEXT. Such access occurs inVK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXTpipeline stage.VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXTspecifies read access to color attachments, including advanced blend operations. Such access occurs in theVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITpipeline stage.VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEIspecifies read access to an invocation mask image in theVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEIpipeline stage.VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHRspecifies read access to an acceleration structure as part of a trace, build, or copy command, or to an acceleration structure scratch buffer as part of a build command. Such access occurs in theVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHRpipeline stage orVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage.VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHRspecifies write access to an acceleration structure or acceleration structure scratch buffer as part of a build or copy command. Such access occurs in theVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stage.VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXTspecifies read access to a fragment density map attachment during dynamic fragment density map operations. Such access occurs in theVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXTpipeline stage.VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHRspecifies read access to a fragment shading rate attachment during rasterization. Such access occurs in theVK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRpipeline stage.VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NVspecifies read access to a shading rate image during rasterization. Such access occurs in theVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NVpipeline stage. It is equivalent toVK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR.VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHRspecifies read access to an image or buffer resource in a video decode operation. Such access occurs in theVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHRpipeline stage.VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHRspecifies write access to an image or buffer resource in a video decode operation. Such access occurs in theVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHRpipeline stage.VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHRspecifies read access to an image or buffer resource in a video encode operation. Such access occurs in theVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHRpipeline stage.VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHRspecifies write access to an image or buffer resource in a video encode operation. Such access occurs in theVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHRpipeline stage.VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXTspecifies read access to a descriptor buffer in any shader pipeline stage.VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NVspecifies read access to an image or buffer resource as part of a optical flow operation. Such access occurs in theVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NVpipeline stage.VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NVspecifies write access to an image or buffer resource as part of a optical flow operation. Such access occurs in theVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NVpipeline stage.VK_ACCESS_2_MICROMAP_WRITE_BIT_EXTspecifies write access to a micromap object. Such access occurs in theVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXTpipeline stage.VK_ACCESS_2_MICROMAP_READ_BIT_EXTspecifies read access to a micromap object. Such access occurs in theVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXTandVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRpipeline stages.VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOMspecifies read access to a tile attachment. Such access occurs in theVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BITorVK_PIPELINE_STAGE_2_COMPUTE_SHADER_BITpipeline stages.VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOMspecifies write access to a tile attachment. Such access occurs in theVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BITorVK_PIPELINE_STAGE_2_COMPUTE_SHADER_BITpipeline stages.VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARMspecifies read access to resources in theVK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARMpipeline stage.VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARMspecifies write access to resources in theVK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARMpipeline stage.VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXTspecifies read access to a sampler heap in any shader pipeline stage.VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXTspecifies read access to a resource heap in any shader pipeline stage.
Certain access types are only performed by a subset of pipeline stages, as described in more detail for VkAccessFlagBits. The Supported Access Types table lists, for each access flag, which pipeline stages can perform that type of access.
In situations where an application wishes to select all access types for a
given set of pipeline stages,
VK_ACCESS_2_MEMORY_READ_BIT or
VK_ACCESS_2_MEMORY_WRITE_BIT can be used.
This is particularly useful when specifying stages that only have a single
access type.The
VkAccessFlags2 bitmask goes beyond the 31 individual bit flags
allowable within a C99 enum, which is how VkAccessFlagBits is defined.
The first 31 values are common to both, and are interchangeable.Parent
VK_VERSION_1_3Type
Enum