{-# language CPP #-} module Graphics.Vulkan.Core10.Enums.AccessFlagBits ( AccessFlagBits( ACCESS_INDIRECT_COMMAND_READ_BIT , ACCESS_INDEX_READ_BIT , ACCESS_VERTEX_ATTRIBUTE_READ_BIT , ACCESS_UNIFORM_READ_BIT , ACCESS_INPUT_ATTACHMENT_READ_BIT , ACCESS_SHADER_READ_BIT , ACCESS_SHADER_WRITE_BIT , ACCESS_COLOR_ATTACHMENT_READ_BIT , ACCESS_COLOR_ATTACHMENT_WRITE_BIT , ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT , ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT , ACCESS_TRANSFER_READ_BIT , ACCESS_TRANSFER_WRITE_BIT , ACCESS_HOST_READ_BIT , ACCESS_HOST_WRITE_BIT , ACCESS_MEMORY_READ_BIT , ACCESS_MEMORY_WRITE_BIT , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV , ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT , ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX , ACCESS_COMMAND_PROCESS_READ_BIT_NVX , ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT , ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT , ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT , ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT , .. ) , AccessFlags ) where import GHC.Read (choose) import GHC.Read (expectP) import GHC.Read (parens) import GHC.Show (showParen) import GHC.Show (showString) import Numeric (showHex) import Text.ParserCombinators.ReadPrec ((+++)) import Text.ParserCombinators.ReadPrec (prec) import Text.ParserCombinators.ReadPrec (step) import Data.Bits (Bits) import Foreign.Storable (Storable) import GHC.Read (Read(readPrec)) import Text.Read.Lex (Lexeme(Ident)) import Graphics.Vulkan.Core10.BaseType (Flags) import Graphics.Vulkan.Zero (Zero) -- | 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 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes 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' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_INDEX_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_UNIFORM_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_SHADER_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_SHADER_WRITE_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_TRANSFER_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_TRANSFER_WRITE_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_HOST_READ_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_HOST_WRITE_BIT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_MEMORY_READ_BIT' | Any | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_MEMORY_WRITE_BIT' | Any | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_COMMAND_PROCESS_READ_BIT_NVX' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV', or | -- | | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' | 'Graphics.Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' | -- +----------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -- -- Supported access types -- -- If a memory object does not have the -- 'Graphics.Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_COHERENT_BIT' -- property, then 'Graphics.Vulkan.Core10.Memory.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, 'Graphics.Vulkan.Core10.Memory.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 -- 'Graphics.Vulkan.Core10.Enums.MemoryPropertyFlagBits.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 'Graphics.Vulkan.Core10.Queue.queueSubmit' command -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-host-writes 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' newtype AccessFlagBits = AccessFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits) -- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect -- command data read as part of an indirect drawing or dispatch command. pattern ACCESS_INDIRECT_COMMAND_READ_BIT = AccessFlagBits 0x00000001 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part -- of an indexed drawing command, bound by -- 'Graphics.Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. pattern ACCESS_INDEX_READ_BIT = AccessFlagBits 0x00000002 -- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT' specifies read access to a vertex -- buffer as part of a drawing command, bound by -- 'Graphics.Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. pattern ACCESS_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits 0x00000004 -- | 'ACCESS_UNIFORM_READ_BIT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>. pattern ACCESS_UNIFORM_READ_BIT = AccessFlagBits 0x00000008 -- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' specifies read access to an -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during fragment shading. pattern ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010 -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>, -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern ACCESS_SHADER_READ_BIT = AccessFlagBits 0x00000020 -- | 'ACCESS_SHADER_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>, -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern ACCESS_SHADER_WRITE_BIT = AccessFlagBits 0x00000040 -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachment>, -- such as via -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending blending>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-logicop logic operations>, -- or via certain -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. -- It does not include -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080 -- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color, resolve, or depth\/stencil resolve attachment> -- during a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass render pass> -- or via certain -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>. pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations> -- or via certain -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>. pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400 -- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer -- in a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy> -- operation. pattern ACCESS_TRANSFER_READ_BIT = AccessFlagBits 0x00000800 -- | 'ACCESS_TRANSFER_WRITE_BIT' specifies write access to an image or buffer -- in a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear> -- or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies copy> -- operation. pattern ACCESS_TRANSFER_WRITE_BIT = AccessFlagBits 0x00001000 -- | '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_READ_BIT = AccessFlagBits 0x00002000 -- | '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_HOST_WRITE_BIT = AccessFlagBits 0x00004000 -- | '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_READ_BIT = AccessFlagBits 0x00008000 -- | '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_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000 -- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits 0x01000000 -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV' specifies write access to -- an acceleration structure as part of a build command. pattern ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = AccessFlagBits 0x00400000 -- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV' specifies read access to an -- acceleration structure as part of a trace or build command. pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = AccessFlagBits 0x00200000 -- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' specifies read access to a -- shading rate image as part of a drawing command, as bound by -- 'Graphics.Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV'. pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = AccessFlagBits 0x00800000 -- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' is similar to -- 'ACCESS_COLOR_ATTACHMENT_READ_BIT', but also includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>. pattern ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits 0x00080000 -- | 'ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX' specifies writes to the target -- command buffer in -- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.cmdProcessCommandsNVX'. pattern ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = AccessFlagBits 0x00040000 -- | 'ACCESS_COMMAND_PROCESS_READ_BIT_NVX' specifies reads from -- 'Graphics.Vulkan.Core10.Handles.Buffer' inputs to -- 'Graphics.Vulkan.Extensions.VK_NVX_device_generated_commands.cmdProcessCommandsNVX'. pattern ACCESS_COMMAND_PROCESS_READ_BIT_NVX = AccessFlagBits 0x00020000 -- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a -- predicate as part of conditional rendering. pattern ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits 0x00100000 -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' specifies write access -- to a transform feedback counter buffer which is written when -- 'Graphics.Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT' -- executes. pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits 0x08000000 -- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' specifies read access -- to a transform feedback counter buffer which is read when -- 'Graphics.Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT' -- executes. pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits 0x04000000 -- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' specifies write access to a -- transform feedback buffer made when transform feedback is active. pattern ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits 0x02000000 type AccessFlags = AccessFlagBits instance Show AccessFlagBits where showsPrec p = \case ACCESS_INDIRECT_COMMAND_READ_BIT -> showString "ACCESS_INDIRECT_COMMAND_READ_BIT" ACCESS_INDEX_READ_BIT -> showString "ACCESS_INDEX_READ_BIT" ACCESS_VERTEX_ATTRIBUTE_READ_BIT -> showString "ACCESS_VERTEX_ATTRIBUTE_READ_BIT" ACCESS_UNIFORM_READ_BIT -> showString "ACCESS_UNIFORM_READ_BIT" ACCESS_INPUT_ATTACHMENT_READ_BIT -> showString "ACCESS_INPUT_ATTACHMENT_READ_BIT" ACCESS_SHADER_READ_BIT -> showString "ACCESS_SHADER_READ_BIT" ACCESS_SHADER_WRITE_BIT -> showString "ACCESS_SHADER_WRITE_BIT" ACCESS_COLOR_ATTACHMENT_READ_BIT -> showString "ACCESS_COLOR_ATTACHMENT_READ_BIT" ACCESS_COLOR_ATTACHMENT_WRITE_BIT -> showString "ACCESS_COLOR_ATTACHMENT_WRITE_BIT" ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT -> showString "ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT" ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT -> showString "ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT" ACCESS_TRANSFER_READ_BIT -> showString "ACCESS_TRANSFER_READ_BIT" ACCESS_TRANSFER_WRITE_BIT -> showString "ACCESS_TRANSFER_WRITE_BIT" ACCESS_HOST_READ_BIT -> showString "ACCESS_HOST_READ_BIT" ACCESS_HOST_WRITE_BIT -> showString "ACCESS_HOST_WRITE_BIT" ACCESS_MEMORY_READ_BIT -> showString "ACCESS_MEMORY_READ_BIT" ACCESS_MEMORY_WRITE_BIT -> showString "ACCESS_MEMORY_WRITE_BIT" ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT -> showString "ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT" ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV -> showString "ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV" ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV -> showString "ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV" ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV -> showString "ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV" ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT -> showString "ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT" ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX -> showString "ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX" ACCESS_COMMAND_PROCESS_READ_BIT_NVX -> showString "ACCESS_COMMAND_PROCESS_READ_BIT_NVX" ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT -> showString "ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT" ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT -> showString "ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT" ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT -> showString "ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT" ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT -> showString "ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT" AccessFlagBits x -> showParen (p >= 11) (showString "AccessFlagBits 0x" . showHex x) instance Read AccessFlagBits where readPrec = parens (choose [("ACCESS_INDIRECT_COMMAND_READ_BIT", pure ACCESS_INDIRECT_COMMAND_READ_BIT) , ("ACCESS_INDEX_READ_BIT", pure ACCESS_INDEX_READ_BIT) , ("ACCESS_VERTEX_ATTRIBUTE_READ_BIT", pure ACCESS_VERTEX_ATTRIBUTE_READ_BIT) , ("ACCESS_UNIFORM_READ_BIT", pure ACCESS_UNIFORM_READ_BIT) , ("ACCESS_INPUT_ATTACHMENT_READ_BIT", pure ACCESS_INPUT_ATTACHMENT_READ_BIT) , ("ACCESS_SHADER_READ_BIT", pure ACCESS_SHADER_READ_BIT) , ("ACCESS_SHADER_WRITE_BIT", pure ACCESS_SHADER_WRITE_BIT) , ("ACCESS_COLOR_ATTACHMENT_READ_BIT", pure ACCESS_COLOR_ATTACHMENT_READ_BIT) , ("ACCESS_COLOR_ATTACHMENT_WRITE_BIT", pure ACCESS_COLOR_ATTACHMENT_WRITE_BIT) , ("ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT", pure ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT) , ("ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT", pure ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT) , ("ACCESS_TRANSFER_READ_BIT", pure ACCESS_TRANSFER_READ_BIT) , ("ACCESS_TRANSFER_WRITE_BIT", pure ACCESS_TRANSFER_WRITE_BIT) , ("ACCESS_HOST_READ_BIT", pure ACCESS_HOST_READ_BIT) , ("ACCESS_HOST_WRITE_BIT", pure ACCESS_HOST_WRITE_BIT) , ("ACCESS_MEMORY_READ_BIT", pure ACCESS_MEMORY_READ_BIT) , ("ACCESS_MEMORY_WRITE_BIT", pure ACCESS_MEMORY_WRITE_BIT) , ("ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT", pure ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT) , ("ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV", pure ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV) , ("ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV", pure ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV) , ("ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV", pure ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV) , ("ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT", pure ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT) , ("ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX", pure ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX) , ("ACCESS_COMMAND_PROCESS_READ_BIT_NVX", pure ACCESS_COMMAND_PROCESS_READ_BIT_NVX) , ("ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT", pure ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT) , ("ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT", pure ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT) , ("ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT", pure ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT) , ("ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT", pure ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT)] +++ prec 10 (do expectP (Ident "AccessFlagBits") v <- step readPrec pure (AccessFlagBits v)))