vulkan-3.2.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Core10.Enums.AccessFlagBits

Synopsis

Documentation

newtype AccessFlagBits Source #

VkAccessFlagBits - Bitmask specifying memory access types that will participate in a memory dependency

Description

Certain access types are only performed by a subset of pipeline stages. Any synchronization command that takes both stage masks and access masks uses both to define the access scopes - only the specified access types performed by the specified stages are included in the access scope. An application must not specify an access flag in a synchronization command if it does not include a pipeline stage in the corresponding stage mask that is able to perform accesses of that type. The following table lists, for each access flag, which pipeline stages can perform that type of access.

Access flag Supported pipeline stages
ACCESS_INDIRECT_COMMAND_READ_BIT PIPELINE_STAGE_DRAW_INDIRECT_BIT
ACCESS_INDEX_READ_BIT PIPELINE_STAGE_VERTEX_INPUT_BIT
ACCESS_VERTEX_ATTRIBUTE_READ_BIT PIPELINE_STAGE_VERTEX_INPUT_BIT
ACCESS_UNIFORM_READ_BIT PIPELINE_STAGE_TASK_SHADER_BIT_NV, PIPELINE_STAGE_MESH_SHADER_BIT_NV, PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, PIPELINE_STAGE_VERTEX_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, PIPELINE_STAGE_GEOMETRY_SHADER_BIT, PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or PIPELINE_STAGE_COMPUTE_SHADER_BIT
ACCESS_SHADER_READ_BIT PIPELINE_STAGE_TASK_SHADER_BIT_NV, PIPELINE_STAGE_MESH_SHADER_BIT_NV, PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, PIPELINE_STAGE_VERTEX_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, PIPELINE_STAGE_GEOMETRY_SHADER_BIT, PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or PIPELINE_STAGE_COMPUTE_SHADER_BIT
ACCESS_SHADER_WRITE_BIT PIPELINE_STAGE_TASK_SHADER_BIT_NV, PIPELINE_STAGE_MESH_SHADER_BIT_NV, PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, PIPELINE_STAGE_VERTEX_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, PIPELINE_STAGE_GEOMETRY_SHADER_BIT, PIPELINE_STAGE_FRAGMENT_SHADER_BIT, or PIPELINE_STAGE_COMPUTE_SHADER_BIT
ACCESS_INPUT_ATTACHMENT_READ_BIT PIPELINE_STAGE_FRAGMENT_SHADER_BIT
ACCESS_COLOR_ATTACHMENT_READ_BIT PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
ACCESS_COLOR_ATTACHMENT_WRITE_BIT PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, or PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, or PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
ACCESS_TRANSFER_READ_BIT PIPELINE_STAGE_TRANSFER_BIT
ACCESS_TRANSFER_WRITE_BIT PIPELINE_STAGE_TRANSFER_BIT
ACCESS_HOST_READ_BIT PIPELINE_STAGE_HOST_BIT
ACCESS_HOST_WRITE_BIT PIPELINE_STAGE_HOST_BIT
ACCESS_MEMORY_READ_BIT Any
ACCESS_MEMORY_WRITE_BIT Any
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT
ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT PIPELINE_STAGE_DRAW_INDIRECT_BIT
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, or PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT

Supported access types

If a memory object does not have the MEMORY_PROPERTY_HOST_COHERENT_BIT property, then flushMappedMemoryRanges must be called in order to guarantee that writes to the memory object from the host are made available to the host domain, where they can be further made available to the device domain via a domain operation. Similarly, invalidateMappedMemoryRanges must be called to guarantee that writes which are available to the host domain are made visible to host operations.

If the memory object does have the MEMORY_PROPERTY_HOST_COHERENT_BIT property flag, writes to the memory object from the host are automatically made available to the host domain. Similarly, writes made available to the host domain are automatically made visible to the host.

Note

The queueSubmit command automatically performs a domain operation from host to device for all writes performed before the command executes, so in most cases an explicit memory barrier is not needed for this case. In the few circumstances where a submit does not occur between the host write and the device read access, writes can be made available by using an explicit memory barrier.

See Also

AccessFlags

Constructors

AccessFlagBits Flags 

Bundled Patterns

pattern ACCESS_INDIRECT_COMMAND_READ_BIT :: AccessFlagBits

ACCESS_INDIRECT_COMMAND_READ_BIT specifies read access to indirect command data read as part of an indirect drawing or dispatch command.

pattern ACCESS_INDEX_READ_BIT :: AccessFlagBits

ACCESS_INDEX_READ_BIT specifies read access to an index buffer as part of an indexed drawing command, bound by cmdBindIndexBuffer.

pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT :: AccessFlagBits

ACCESS_VERTEX_ATTRIBUTE_READ_BIT specifies read access to a vertex buffer as part of a drawing command, bound by cmdBindVertexBuffers.

pattern ACCESS_UNIFORM_READ_BIT :: AccessFlagBits

ACCESS_UNIFORM_READ_BIT specifies read access to a uniform buffer.

pattern ACCESS_INPUT_ATTACHMENT_READ_BIT :: AccessFlagBits

ACCESS_INPUT_ATTACHMENT_READ_BIT specifies read access to an input attachment within a render pass during fragment shading.

pattern ACCESS_SHADER_READ_BIT :: AccessFlagBits

ACCESS_SHADER_READ_BIT specifies read access to a storage buffer, physical storage buffer, uniform texel buffer, storage texel buffer, sampled image, or storage image.

pattern ACCESS_SHADER_WRITE_BIT :: AccessFlagBits

ACCESS_SHADER_WRITE_BIT specifies write access to a storage buffer, physical storage buffer, storage texel buffer, or storage image.

pattern ACCESS_COLOR_ATTACHMENT_READ_BIT :: AccessFlagBits

ACCESS_COLOR_ATTACHMENT_READ_BIT specifies read access to a color attachment, such as via blending, logic operations, or via certain subpass load operations. It does not include advanced blend operations.

pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT :: AccessFlagBits

ACCESS_COLOR_ATTACHMENT_WRITE_BIT specifies write access to a color, resolve, or depth/stencil resolve attachment during a render pass or via certain subpass load and store operations.

pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: AccessFlagBits

ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT specifies read access to a depth/stencil attachment, via depth or stencil operations or via certain subpass load operations.

pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: AccessFlagBits

ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT specifies write access to a depth/stencil attachment, via depth or stencil operations or via certain subpass load and store operations.

pattern ACCESS_TRANSFER_READ_BIT :: AccessFlagBits

ACCESS_TRANSFER_READ_BIT specifies read access to an image or buffer in a copy operation.

pattern ACCESS_TRANSFER_WRITE_BIT :: AccessFlagBits

ACCESS_TRANSFER_WRITE_BIT specifies write access to an image or buffer in a clear or copy operation.

pattern ACCESS_HOST_READ_BIT :: AccessFlagBits

ACCESS_HOST_READ_BIT specifies read access by a host operation. Accesses of this type are not performed through a resource, but directly on memory.

pattern ACCESS_HOST_WRITE_BIT :: AccessFlagBits

ACCESS_HOST_WRITE_BIT specifies write access by a host operation. Accesses of this type are not performed through a resource, but directly on memory.

pattern ACCESS_MEMORY_READ_BIT :: AccessFlagBits

ACCESS_MEMORY_READ_BIT specifies all read accesses. It is always valid in any access mask, and is treated as equivalent to setting all READ access flags that are valid where it is used.

pattern ACCESS_MEMORY_WRITE_BIT :: AccessFlagBits

ACCESS_MEMORY_WRITE_BIT specifies all write accesses. It is always valid in any access mask, and is treated as equivalent to setting all WRITE access flags that are valid where it is used.

pattern ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits

ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV specifies writes to the Buffer preprocess outputs in cmdPreprocessGeneratedCommandsNV.

pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits

ACCESS_COMMAND_PREPROCESS_READ_BIT_NV specifies reads from Buffer inputs to cmdPreprocessGeneratedCommandsNV.

pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: AccessFlagBits

ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT specifies read access to a fragment density map attachment during dynamic fragment density map operations

pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: AccessFlagBits

ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV specifies read access to a shading rate image as part of a drawing command, as bound by cmdBindShadingRateImageNV.

pattern ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: AccessFlagBits

ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR specifies write access to an acceleration structure as part of a build command.

pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: AccessFlagBits

ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR specifies read access to an acceleration structure as part of a trace or build command.

pattern ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: AccessFlagBits

ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT is similar to ACCESS_COLOR_ATTACHMENT_READ_BIT, but also includes advanced blend operations.

pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: AccessFlagBits

ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT specifies read access to a predicate as part of conditional rendering.

pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: AccessFlagBits

ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT specifies write access to a transform feedback counter buffer which is written when cmdEndTransformFeedbackEXT executes.

pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: AccessFlagBits

ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT specifies read access to a transform feedback counter buffer which is read when cmdBeginTransformFeedbackEXT executes.

pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: AccessFlagBits

ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT specifies write access to a transform feedback buffer made when transform feedback is active.

Instances
Eq AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Ord AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Read AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Show AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Storable AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Bits AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits

Zero AccessFlagBits Source # 
Instance details

Defined in Graphics.Vulkan.Core10.Enums.AccessFlagBits