{-# language CPP #-}
-- No documentation found for Chapter "AccessFlagBits"
module Vulkan.Core10.Enums.AccessFlagBits  ( AccessFlags
                                           , 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_NONE_KHR
                                                           , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
                                                           , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV
                                                           , ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
                                                           , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
                                                           , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
                                                           , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR
                                                           , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
                                                           , 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
                                                           , ..
                                                           )
                                           ) where

import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import GHC.Show (showString)
import Numeric (showHex)
import Vulkan.Zero (Zero)
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Vulkan.Core10.FundamentalTypes (Flags)
type AccessFlags = AccessFlagBits

-- | VkAccessFlagBits - Bitmask specifying memory access types that will
-- participate in a memory dependency
--
-- = Description
--
-- These values all have the same meaning as the equivalently named values
-- for 'Vulkan.Extensions.VK_KHR_synchronization2.AccessFlags2KHR'.
--
-- 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'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INDEX_READ_BIT'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_UNIFORM_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_READ_BIT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_SHADER_WRITE_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or         |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_READ_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFER_WRITE_BIT'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_READ_BIT'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_HOST_WRITE_BIT'                                                              | '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'                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'Vulkan.Extensions.VK_KHR_synchronization2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'             |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |
-- |                                                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |
-- +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+
--
-- Supported access types
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
-- 'AccessFlags'
newtype AccessFlagBits = AccessFlagBits Flags
  deriving newtype (AccessFlagBits -> AccessFlagBits -> Bool
(AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool) -> Eq AccessFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessFlagBits -> AccessFlagBits -> Bool
$c/= :: AccessFlagBits -> AccessFlagBits -> Bool
== :: AccessFlagBits -> AccessFlagBits -> Bool
$c== :: AccessFlagBits -> AccessFlagBits -> Bool
Eq, Eq AccessFlagBits
Eq AccessFlagBits
-> (AccessFlagBits -> AccessFlagBits -> Ordering)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> Bool)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> Ord AccessFlagBits
AccessFlagBits -> AccessFlagBits -> Bool
AccessFlagBits -> AccessFlagBits -> Ordering
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmin :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
max :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cmax :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
>= :: AccessFlagBits -> AccessFlagBits -> Bool
$c>= :: AccessFlagBits -> AccessFlagBits -> Bool
> :: AccessFlagBits -> AccessFlagBits -> Bool
$c> :: AccessFlagBits -> AccessFlagBits -> Bool
<= :: AccessFlagBits -> AccessFlagBits -> Bool
$c<= :: AccessFlagBits -> AccessFlagBits -> Bool
< :: AccessFlagBits -> AccessFlagBits -> Bool
$c< :: AccessFlagBits -> AccessFlagBits -> Bool
compare :: AccessFlagBits -> AccessFlagBits -> Ordering
$ccompare :: AccessFlagBits -> AccessFlagBits -> Ordering
$cp1Ord :: Eq AccessFlagBits
Ord, Ptr b -> Int -> IO AccessFlagBits
Ptr b -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> IO AccessFlagBits
Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
Ptr AccessFlagBits -> AccessFlagBits -> IO ()
AccessFlagBits -> Int
(AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> (Ptr AccessFlagBits -> Int -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO AccessFlagBits)
-> (forall b. Ptr b -> Int -> AccessFlagBits -> IO ())
-> (Ptr AccessFlagBits -> IO AccessFlagBits)
-> (Ptr AccessFlagBits -> AccessFlagBits -> IO ())
-> Storable AccessFlagBits
forall b. Ptr b -> Int -> IO AccessFlagBits
forall b. Ptr b -> Int -> AccessFlagBits -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr AccessFlagBits -> AccessFlagBits -> IO ()
$cpoke :: Ptr AccessFlagBits -> AccessFlagBits -> IO ()
peek :: Ptr AccessFlagBits -> IO AccessFlagBits
$cpeek :: Ptr AccessFlagBits -> IO AccessFlagBits
pokeByteOff :: Ptr b -> Int -> AccessFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> AccessFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO AccessFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO AccessFlagBits
pokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
$cpokeElemOff :: Ptr AccessFlagBits -> Int -> AccessFlagBits -> IO ()
peekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
$cpeekElemOff :: Ptr AccessFlagBits -> Int -> IO AccessFlagBits
alignment :: AccessFlagBits -> Int
$calignment :: AccessFlagBits -> Int
sizeOf :: AccessFlagBits -> Int
$csizeOf :: AccessFlagBits -> Int
Storable, AccessFlagBits
AccessFlagBits -> Zero AccessFlagBits
forall a. a -> Zero a
zero :: AccessFlagBits
$czero :: AccessFlagBits
Zero, Eq AccessFlagBits
AccessFlagBits
Eq AccessFlagBits
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> AccessFlagBits
-> (Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> Bool)
-> (AccessFlagBits -> Maybe Int)
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Bool)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int -> AccessFlagBits)
-> (AccessFlagBits -> Int)
-> Bits AccessFlagBits
Int -> AccessFlagBits
AccessFlagBits -> Bool
AccessFlagBits -> Int
AccessFlagBits -> Maybe Int
AccessFlagBits -> AccessFlagBits
AccessFlagBits -> Int -> Bool
AccessFlagBits -> Int -> AccessFlagBits
AccessFlagBits -> AccessFlagBits -> AccessFlagBits
forall a.
Eq a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: AccessFlagBits -> Int
$cpopCount :: AccessFlagBits -> Int
rotateR :: AccessFlagBits -> Int -> AccessFlagBits
$crotateR :: AccessFlagBits -> Int -> AccessFlagBits
rotateL :: AccessFlagBits -> Int -> AccessFlagBits
$crotateL :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftR :: AccessFlagBits -> Int -> AccessFlagBits
shiftR :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftR :: AccessFlagBits -> Int -> AccessFlagBits
unsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cunsafeShiftL :: AccessFlagBits -> Int -> AccessFlagBits
shiftL :: AccessFlagBits -> Int -> AccessFlagBits
$cshiftL :: AccessFlagBits -> Int -> AccessFlagBits
isSigned :: AccessFlagBits -> Bool
$cisSigned :: AccessFlagBits -> Bool
bitSize :: AccessFlagBits -> Int
$cbitSize :: AccessFlagBits -> Int
bitSizeMaybe :: AccessFlagBits -> Maybe Int
$cbitSizeMaybe :: AccessFlagBits -> Maybe Int
testBit :: AccessFlagBits -> Int -> Bool
$ctestBit :: AccessFlagBits -> Int -> Bool
complementBit :: AccessFlagBits -> Int -> AccessFlagBits
$ccomplementBit :: AccessFlagBits -> Int -> AccessFlagBits
clearBit :: AccessFlagBits -> Int -> AccessFlagBits
$cclearBit :: AccessFlagBits -> Int -> AccessFlagBits
setBit :: AccessFlagBits -> Int -> AccessFlagBits
$csetBit :: AccessFlagBits -> Int -> AccessFlagBits
bit :: Int -> AccessFlagBits
$cbit :: Int -> AccessFlagBits
zeroBits :: AccessFlagBits
$czeroBits :: AccessFlagBits
rotate :: AccessFlagBits -> Int -> AccessFlagBits
$crotate :: AccessFlagBits -> Int -> AccessFlagBits
shift :: AccessFlagBits -> Int -> AccessFlagBits
$cshift :: AccessFlagBits -> Int -> AccessFlagBits
complement :: AccessFlagBits -> AccessFlagBits
$ccomplement :: AccessFlagBits -> AccessFlagBits
xor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cxor :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.|. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$c.&. :: AccessFlagBits -> AccessFlagBits -> AccessFlagBits
$cp1Bits :: Eq AccessFlagBits
Bits, Bits AccessFlagBits
Bits AccessFlagBits
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> (AccessFlagBits -> Int)
-> FiniteBits AccessFlagBits
AccessFlagBits -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: AccessFlagBits -> Int
$ccountTrailingZeros :: AccessFlagBits -> Int
countLeadingZeros :: AccessFlagBits -> Int
$ccountLeadingZeros :: AccessFlagBits -> Int
finiteBitSize :: AccessFlagBits -> Int
$cfiniteBitSize :: AccessFlagBits -> Int
$cp1FiniteBits :: Bits AccessFlagBits
FiniteBits)

-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect
-- command data read as part of an indirect build, trace, drawing or
-- dispatching command. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'
-- pipeline stage.
pattern $bACCESS_INDIRECT_COMMAND_READ_BIT :: AccessFlagBits
$mACCESS_INDIRECT_COMMAND_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access
-- occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'
-- pipeline stage.
pattern $bACCESS_INDEX_READ_BIT :: AccessFlagBits
$mACCESS_INDEX_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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
-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. Such access
-- occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'
-- pipeline stage.
pattern $bACCESS_VERTEX_ATTRIBUTE_READ_BIT :: AccessFlagBits
$mACCESS_VERTEX_ATTRIBUTE_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>
-- in any shader pipeline stage.
pattern $bACCESS_UNIFORM_READ_BIT :: AccessFlagBits
$mACCESS_UNIFORM_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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 subpass shading or fragment shading. Such
-- access occurs in the
-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
-- or
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'
-- pipeline stage.
pattern $bACCESS_INPUT_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_INPUT_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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-uniformbuffer uniform 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-sampledimage sampled image>,
-- <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#shader-binding-table shader binding table>,
-- <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>
-- in any shader pipeline stage.
pattern $bACCESS_SHADER_READ_BIT :: AccessFlagBits
$mACCESS_SHADER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>
-- in any shader pipeline stage.
pattern $bACCESS_SHADER_WRITE_BIT :: AccessFlagBits
$mACCESS_SHADER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_COLOR_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_COLOR_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
-- or
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
-- pipeline stages.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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>.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT'
-- or
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'
-- pipeline stages.
pattern $bACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: AccessFlagBits
$mACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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. Such access occurs in the
-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_TRANSFER_READ_BIT :: AccessFlagBits
$mACCESS_TRANSFER_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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. Such access occurs in the
-- 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_TRANSFER_WRITE_BIT :: AccessFlagBits
$mACCESS_TRANSFER_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
-- pipeline stage.
pattern $bACCESS_HOST_READ_BIT :: AccessFlagBits
$mACCESS_HOST_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'
-- pipeline stage.
pattern $bACCESS_HOST_WRITE_BIT :: AccessFlagBits
$mACCESS_HOST_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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 $bACCESS_MEMORY_READ_BIT :: AccessFlagBits
$mACCESS_MEMORY_READ_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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 $bACCESS_MEMORY_WRITE_BIT :: AccessFlagBits
$mACCESS_MEMORY_WRITE_BIT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_MEMORY_WRITE_BIT                     = AccessFlagBits 0x00010000
-- | 'ACCESS_NONE_KHR' specifies no accesses.
pattern $bACCESS_NONE_KHR :: AccessFlagBits
$mACCESS_NONE_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_NONE_KHR                             = AccessFlagBits 0x00000000
-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the target
-- command buffer:VkBuffer preprocess outputs in
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
-- pipeline stage.
pattern $bACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV      = AccessFlagBits 0x00040000
-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' specifies reads from buffer
-- inputs to
-- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'
-- pipeline stage.
pattern $bACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits
$mACCESS_COMMAND_PREPROCESS_READ_BIT_NV :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV       = AccessFlagBits 0x00020000
-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read
-- access to a fragment shading rate attachment during rasterization. Such
-- access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits
$mACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits 0x00800000
-- | '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>
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: AccessFlagBits
$mACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT    = AccessFlagBits 0x01000000
-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to
-- an acceleration structure or
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>
-- as part of a build or copy command. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits 0x00400000
-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' specifies read access to an
-- acceleration structure as part of a trace, build, or copy command, or to
-- an
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>
-- as part of a build command. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR'
-- pipeline stage or
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: AccessFlagBits
$mACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR  = AccessFlagBits 0x00200000
-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read access
-- to
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass color attachments>,
-- including
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
-- Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: AccessFlagBits
$mACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits 0x00080000
-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a
-- predicate as part of conditional rendering. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: AccessFlagBits
$mACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'
-- executes. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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
-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
-- executes. Such access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
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. Such
-- access occurs in the
-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: AccessFlagBits
$mACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall r. AccessFlagBits -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT     = AccessFlagBits 0x02000000

conNameAccessFlagBits :: String
conNameAccessFlagBits :: String
conNameAccessFlagBits = String
"AccessFlagBits"

enumPrefixAccessFlagBits :: String
enumPrefixAccessFlagBits :: String
enumPrefixAccessFlagBits = String
"ACCESS_"

showTableAccessFlagBits :: [(AccessFlagBits, String)]
showTableAccessFlagBits :: [(AccessFlagBits, String)]
showTableAccessFlagBits =
  [ (AccessFlagBits
ACCESS_INDIRECT_COMMAND_READ_BIT           , String
"INDIRECT_COMMAND_READ_BIT")
  , (AccessFlagBits
ACCESS_INDEX_READ_BIT                      , String
"INDEX_READ_BIT")
  , (AccessFlagBits
ACCESS_VERTEX_ATTRIBUTE_READ_BIT           , String
"VERTEX_ATTRIBUTE_READ_BIT")
  , (AccessFlagBits
ACCESS_UNIFORM_READ_BIT                    , String
"UNIFORM_READ_BIT")
  , (AccessFlagBits
ACCESS_INPUT_ATTACHMENT_READ_BIT           , String
"INPUT_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_SHADER_READ_BIT                     , String
"SHADER_READ_BIT")
  , (AccessFlagBits
ACCESS_SHADER_WRITE_BIT                    , String
"SHADER_WRITE_BIT")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_BIT           , String
"COLOR_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_WRITE_BIT          , String
"COLOR_ATTACHMENT_WRITE_BIT")
  , (AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT   , String
"DEPTH_STENCIL_ATTACHMENT_READ_BIT")
  , (AccessFlagBits
ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT  , String
"DEPTH_STENCIL_ATTACHMENT_WRITE_BIT")
  , (AccessFlagBits
ACCESS_TRANSFER_READ_BIT                   , String
"TRANSFER_READ_BIT")
  , (AccessFlagBits
ACCESS_TRANSFER_WRITE_BIT                  , String
"TRANSFER_WRITE_BIT")
  , (AccessFlagBits
ACCESS_HOST_READ_BIT                       , String
"HOST_READ_BIT")
  , (AccessFlagBits
ACCESS_HOST_WRITE_BIT                      , String
"HOST_WRITE_BIT")
  , (AccessFlagBits
ACCESS_MEMORY_READ_BIT                     , String
"MEMORY_READ_BIT")
  , (AccessFlagBits
ACCESS_MEMORY_WRITE_BIT                    , String
"MEMORY_WRITE_BIT")
  , (AccessFlagBits
ACCESS_NONE_KHR                            , String
"NONE_KHR")
  , (AccessFlagBits
ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV     , String
"COMMAND_PREPROCESS_WRITE_BIT_NV")
  , (AccessFlagBits
ACCESS_COMMAND_PREPROCESS_READ_BIT_NV      , String
"COMMAND_PREPROCESS_READ_BIT_NV")
  , (AccessFlagBits
ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, String
"FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")
  , (AccessFlagBits
ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT   , String
"FRAGMENT_DENSITY_MAP_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, String
"ACCELERATION_STRUCTURE_WRITE_BIT_KHR")
  , (AccessFlagBits
ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR , String
"ACCELERATION_STRUCTURE_READ_BIT_KHR")
  , (AccessFlagBits
ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, String
"COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")
  , (AccessFlagBits
ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT  , String
"CONDITIONAL_RENDERING_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, String
"TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, String
"TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT")
  , (AccessFlagBits
ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT    , String
"TRANSFORM_FEEDBACK_WRITE_BIT_EXT")
  ]

instance Show AccessFlagBits where
  showsPrec :: Int -> AccessFlagBits -> ShowS
showsPrec = String
-> [(AccessFlagBits, String)]
-> String
-> (AccessFlagBits -> Flags)
-> (Flags -> ShowS)
-> Int
-> AccessFlagBits
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec String
enumPrefixAccessFlagBits
                            [(AccessFlagBits, String)]
showTableAccessFlagBits
                            String
conNameAccessFlagBits
                            (\(AccessFlagBits Flags
x) -> Flags
x)
                            (\Flags
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read AccessFlagBits where
  readPrec :: ReadPrec AccessFlagBits
readPrec = String
-> [(AccessFlagBits, String)]
-> String
-> (Flags -> AccessFlagBits)
-> ReadPrec AccessFlagBits
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec String
enumPrefixAccessFlagBits [(AccessFlagBits, String)]
showTableAccessFlagBits String
conNameAccessFlagBits Flags -> AccessFlagBits
AccessFlagBits