{-# language CPP #-}
-- No documentation found for Chapter "AccessFlags2"
module Vulkan.Core13.Enums.AccessFlags2  ( pattern ACCESS_2_NONE_KHR
                                         , pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
                                         , pattern ACCESS_2_INDEX_READ_BIT_KHR
                                         , pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
                                         , pattern ACCESS_2_UNIFORM_READ_BIT_KHR
                                         , pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR
                                         , pattern ACCESS_2_SHADER_READ_BIT_KHR
                                         , pattern ACCESS_2_SHADER_WRITE_BIT_KHR
                                         , pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR
                                         , pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR
                                         , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR
                                         , pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR
                                         , pattern ACCESS_2_TRANSFER_READ_BIT_KHR
                                         , pattern ACCESS_2_TRANSFER_WRITE_BIT_KHR
                                         , pattern ACCESS_2_HOST_READ_BIT_KHR
                                         , pattern ACCESS_2_HOST_WRITE_BIT_KHR
                                         , pattern ACCESS_2_MEMORY_READ_BIT_KHR
                                         , pattern ACCESS_2_MEMORY_WRITE_BIT_KHR
                                         , pattern ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR
                                         , pattern ACCESS_2_SHADER_STORAGE_READ_BIT_KHR
                                         , pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR
                                         , AccessFlags2
                                         , AccessFlagBits2( ACCESS_2_NONE
                                                          , ACCESS_2_INDIRECT_COMMAND_READ_BIT
                                                          , ACCESS_2_INDEX_READ_BIT
                                                          , ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT
                                                          , ACCESS_2_UNIFORM_READ_BIT
                                                          , ACCESS_2_INPUT_ATTACHMENT_READ_BIT
                                                          , ACCESS_2_SHADER_READ_BIT
                                                          , ACCESS_2_SHADER_WRITE_BIT
                                                          , ACCESS_2_COLOR_ATTACHMENT_READ_BIT
                                                          , ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT
                                                          , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT
                                                          , ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
                                                          , ACCESS_2_TRANSFER_READ_BIT
                                                          , ACCESS_2_TRANSFER_WRITE_BIT
                                                          , ACCESS_2_HOST_READ_BIT
                                                          , ACCESS_2_HOST_WRITE_BIT
                                                          , ACCESS_2_MEMORY_READ_BIT
                                                          , ACCESS_2_MEMORY_WRITE_BIT
                                                          , ACCESS_2_SHADER_SAMPLED_READ_BIT
                                                          , ACCESS_2_SHADER_STORAGE_READ_BIT
                                                          , ACCESS_2_SHADER_STORAGE_WRITE_BIT
                                                          , ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
                                                          , ACCESS_2_OPTICAL_FLOW_READ_BIT_NV
                                                          , ACCESS_2_MICROMAP_WRITE_BIT_EXT
                                                          , ACCESS_2_MICROMAP_READ_BIT_EXT
                                                          , ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
                                                          , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
                                                          , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
                                                          , ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
                                                          , ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
                                                          , ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
                                                          , ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
                                                          , ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
                                                          , ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
                                                          , ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
                                                          , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
                                                          , ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
                                                          , ACCESS_2_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 (Flags64)
-- No documentation found for TopLevel "VK_ACCESS_2_NONE_KHR"
pattern $bACCESS_2_NONE_KHR :: AccessFlagBits2
$mACCESS_2_NONE_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_NONE_KHR = ACCESS_2_NONE


-- No documentation found for TopLevel "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR"
pattern $bACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = ACCESS_2_INDIRECT_COMMAND_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_INDEX_READ_BIT_KHR"
pattern $bACCESS_2_INDEX_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_INDEX_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INDEX_READ_BIT_KHR = ACCESS_2_INDEX_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR"
pattern $bACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_UNIFORM_READ_BIT_KHR"
pattern $bACCESS_2_UNIFORM_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_UNIFORM_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_UNIFORM_READ_BIT_KHR = ACCESS_2_UNIFORM_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR"
pattern $bACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = ACCESS_2_INPUT_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_READ_BIT_KHR"
pattern $bACCESS_2_SHADER_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_READ_BIT_KHR = ACCESS_2_SHADER_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_WRITE_BIT_KHR"
pattern $bACCESS_2_SHADER_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_WRITE_BIT_KHR = ACCESS_2_SHADER_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR"
pattern $bACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR"
pattern $bACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR"
pattern $bACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR"
pattern $bACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_READ_BIT_KHR"
pattern $bACCESS_2_TRANSFER_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_TRANSFER_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFER_READ_BIT_KHR = ACCESS_2_TRANSFER_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR"
pattern $bACCESS_2_TRANSFER_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_TRANSFER_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFER_WRITE_BIT_KHR = ACCESS_2_TRANSFER_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_HOST_READ_BIT_KHR"
pattern $bACCESS_2_HOST_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_HOST_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_HOST_READ_BIT_KHR = ACCESS_2_HOST_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_HOST_WRITE_BIT_KHR"
pattern $bACCESS_2_HOST_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_HOST_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_HOST_WRITE_BIT_KHR = ACCESS_2_HOST_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_READ_BIT_KHR"
pattern $bACCESS_2_MEMORY_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_MEMORY_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MEMORY_READ_BIT_KHR = ACCESS_2_MEMORY_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_MEMORY_WRITE_BIT_KHR"
pattern $bACCESS_2_MEMORY_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_MEMORY_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MEMORY_WRITE_BIT_KHR = ACCESS_2_MEMORY_WRITE_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR"
pattern $bACCESS_2_SHADER_SAMPLED_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_SAMPLED_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = ACCESS_2_SHADER_SAMPLED_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR"
pattern $bACCESS_2_SHADER_STORAGE_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_STORAGE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = ACCESS_2_SHADER_STORAGE_READ_BIT


-- No documentation found for TopLevel "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR"
pattern $bACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = ACCESS_2_SHADER_STORAGE_WRITE_BIT


type AccessFlags2 = AccessFlagBits2

-- | VkAccessFlagBits2 - Access flags for VkAccessFlags2
--
-- = Description
--
-- Note
--
-- In situations where an application wishes to select all access types for
-- a given set of pipeline stages, 'ACCESS_2_MEMORY_READ_BIT' or
-- 'ACCESS_2_MEMORY_WRITE_BIT' can be used. This is particularly useful
-- when specifying stages that only have a single access type.
--
-- Note
--
-- The 'AccessFlags2' bitmask goes beyond the 31 individual bit flags
-- allowable within a C99 enum, which is how
-- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' is defined. The
-- first 31 values are common to both, and are interchangeable.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>
newtype AccessFlagBits2 = AccessFlagBits2 Flags64
  deriving newtype (AccessFlagBits2 -> AccessFlagBits2 -> Bool
(AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> Eq AccessFlagBits2
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c/= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
== :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c== :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
Eq, Eq AccessFlagBits2
Eq AccessFlagBits2
-> (AccessFlagBits2 -> AccessFlagBits2 -> Ordering)
-> (AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2)
-> (AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2)
-> Ord AccessFlagBits2
AccessFlagBits2 -> AccessFlagBits2 -> Bool
AccessFlagBits2 -> AccessFlagBits2 -> Ordering
AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
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 :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
$cmin :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
max :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
$cmax :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
>= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c>= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
> :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c> :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
<= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c<= :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
< :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
$c< :: AccessFlagBits2 -> AccessFlagBits2 -> Bool
compare :: AccessFlagBits2 -> AccessFlagBits2 -> Ordering
$ccompare :: AccessFlagBits2 -> AccessFlagBits2 -> Ordering
Ord, Ptr AccessFlagBits2 -> IO AccessFlagBits2
Ptr AccessFlagBits2 -> Int -> IO AccessFlagBits2
Ptr AccessFlagBits2 -> Int -> AccessFlagBits2 -> IO ()
Ptr AccessFlagBits2 -> AccessFlagBits2 -> IO ()
AccessFlagBits2 -> Int
(AccessFlagBits2 -> Int)
-> (AccessFlagBits2 -> Int)
-> (Ptr AccessFlagBits2 -> Int -> IO AccessFlagBits2)
-> (Ptr AccessFlagBits2 -> Int -> AccessFlagBits2 -> IO ())
-> (forall b. Ptr b -> Int -> IO AccessFlagBits2)
-> (forall b. Ptr b -> Int -> AccessFlagBits2 -> IO ())
-> (Ptr AccessFlagBits2 -> IO AccessFlagBits2)
-> (Ptr AccessFlagBits2 -> AccessFlagBits2 -> IO ())
-> Storable AccessFlagBits2
forall b. Ptr b -> Int -> IO AccessFlagBits2
forall b. Ptr b -> Int -> AccessFlagBits2 -> 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 AccessFlagBits2 -> AccessFlagBits2 -> IO ()
$cpoke :: Ptr AccessFlagBits2 -> AccessFlagBits2 -> IO ()
peek :: Ptr AccessFlagBits2 -> IO AccessFlagBits2
$cpeek :: Ptr AccessFlagBits2 -> IO AccessFlagBits2
pokeByteOff :: forall b. Ptr b -> Int -> AccessFlagBits2 -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> AccessFlagBits2 -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO AccessFlagBits2
$cpeekByteOff :: forall b. Ptr b -> Int -> IO AccessFlagBits2
pokeElemOff :: Ptr AccessFlagBits2 -> Int -> AccessFlagBits2 -> IO ()
$cpokeElemOff :: Ptr AccessFlagBits2 -> Int -> AccessFlagBits2 -> IO ()
peekElemOff :: Ptr AccessFlagBits2 -> Int -> IO AccessFlagBits2
$cpeekElemOff :: Ptr AccessFlagBits2 -> Int -> IO AccessFlagBits2
alignment :: AccessFlagBits2 -> Int
$calignment :: AccessFlagBits2 -> Int
sizeOf :: AccessFlagBits2 -> Int
$csizeOf :: AccessFlagBits2 -> Int
Storable, AccessFlagBits2
AccessFlagBits2 -> Zero AccessFlagBits2
forall a. a -> Zero a
zero :: AccessFlagBits2
$czero :: AccessFlagBits2
Zero, Eq AccessFlagBits2
AccessFlagBits2
Eq AccessFlagBits2
-> (AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2)
-> (AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2)
-> (AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2)
-> (AccessFlagBits2 -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> AccessFlagBits2
-> (Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> Bool)
-> (AccessFlagBits2 -> Maybe Int)
-> (AccessFlagBits2 -> Int)
-> (AccessFlagBits2 -> Bool)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int -> AccessFlagBits2)
-> (AccessFlagBits2 -> Int)
-> Bits AccessFlagBits2
Int -> AccessFlagBits2
AccessFlagBits2 -> Bool
AccessFlagBits2 -> Int
AccessFlagBits2 -> Maybe Int
AccessFlagBits2 -> AccessFlagBits2
AccessFlagBits2 -> Int -> Bool
AccessFlagBits2 -> Int -> AccessFlagBits2
AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
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 :: AccessFlagBits2 -> Int
$cpopCount :: AccessFlagBits2 -> Int
rotateR :: AccessFlagBits2 -> Int -> AccessFlagBits2
$crotateR :: AccessFlagBits2 -> Int -> AccessFlagBits2
rotateL :: AccessFlagBits2 -> Int -> AccessFlagBits2
$crotateL :: AccessFlagBits2 -> Int -> AccessFlagBits2
unsafeShiftR :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cunsafeShiftR :: AccessFlagBits2 -> Int -> AccessFlagBits2
shiftR :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cshiftR :: AccessFlagBits2 -> Int -> AccessFlagBits2
unsafeShiftL :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cunsafeShiftL :: AccessFlagBits2 -> Int -> AccessFlagBits2
shiftL :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cshiftL :: AccessFlagBits2 -> Int -> AccessFlagBits2
isSigned :: AccessFlagBits2 -> Bool
$cisSigned :: AccessFlagBits2 -> Bool
bitSize :: AccessFlagBits2 -> Int
$cbitSize :: AccessFlagBits2 -> Int
bitSizeMaybe :: AccessFlagBits2 -> Maybe Int
$cbitSizeMaybe :: AccessFlagBits2 -> Maybe Int
testBit :: AccessFlagBits2 -> Int -> Bool
$ctestBit :: AccessFlagBits2 -> Int -> Bool
complementBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
$ccomplementBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
clearBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cclearBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
setBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
$csetBit :: AccessFlagBits2 -> Int -> AccessFlagBits2
bit :: Int -> AccessFlagBits2
$cbit :: Int -> AccessFlagBits2
zeroBits :: AccessFlagBits2
$czeroBits :: AccessFlagBits2
rotate :: AccessFlagBits2 -> Int -> AccessFlagBits2
$crotate :: AccessFlagBits2 -> Int -> AccessFlagBits2
shift :: AccessFlagBits2 -> Int -> AccessFlagBits2
$cshift :: AccessFlagBits2 -> Int -> AccessFlagBits2
complement :: AccessFlagBits2 -> AccessFlagBits2
$ccomplement :: AccessFlagBits2 -> AccessFlagBits2
xor :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
$cxor :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
.|. :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
$c.|. :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
.&. :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
$c.&. :: AccessFlagBits2 -> AccessFlagBits2 -> AccessFlagBits2
Bits, Bits AccessFlagBits2
Bits AccessFlagBits2
-> (AccessFlagBits2 -> Int)
-> (AccessFlagBits2 -> Int)
-> (AccessFlagBits2 -> Int)
-> FiniteBits AccessFlagBits2
AccessFlagBits2 -> Int
forall b.
Bits b -> (b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
countTrailingZeros :: AccessFlagBits2 -> Int
$ccountTrailingZeros :: AccessFlagBits2 -> Int
countLeadingZeros :: AccessFlagBits2 -> Int
$ccountLeadingZeros :: AccessFlagBits2 -> Int
finiteBitSize :: AccessFlagBits2 -> Int
$cfiniteBitSize :: AccessFlagBits2 -> Int
FiniteBits)

-- | 'ACCESS_2_NONE' specifies no accesses.
pattern $bACCESS_2_NONE :: AccessFlagBits2
$mACCESS_2_NONE :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_NONE = AccessFlagBits2 0x0000000000000000

-- | 'ACCESS_2_INDIRECT_COMMAND_READ_BIT' specifies read access to command
-- data read from indirect buffers as part of an indirect build, trace,
-- drawing or dispatch command. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT'
-- pipeline stage.
pattern $bACCESS_2_INDIRECT_COMMAND_READ_BIT :: AccessFlagBits2
$mACCESS_2_INDIRECT_COMMAND_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INDIRECT_COMMAND_READ_BIT = AccessFlagBits2 0x0000000000000001

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT'
-- pipeline stage.
pattern $bACCESS_2_INDEX_READ_BIT :: AccessFlagBits2
$mACCESS_2_INDEX_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INDEX_READ_BIT = AccessFlagBits2 0x0000000000000002

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT'
-- pipeline stage.
pattern $bACCESS_2_VERTEX_ATTRIBUTE_READ_BIT :: AccessFlagBits2
$mACCESS_2_VERTEX_ATTRIBUTE_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits2 0x0000000000000004

-- | 'ACCESS_2_UNIFORM_READ_BIT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>
-- in any shader pipeline stage.
pattern $bACCESS_2_UNIFORM_READ_BIT :: AccessFlagBits2
$mACCESS_2_UNIFORM_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_UNIFORM_READ_BIT = AccessFlagBits2 0x0000000000000008

-- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT' specifies read access to an
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment>
-- within a render pass during subpass shading or fragment shading. Such
-- access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI'
-- or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT'
-- pipeline stage.
pattern $bACCESS_2_INPUT_ATTACHMENT_READ_BIT :: AccessFlagBits2
$mACCESS_2_INPUT_ATTACHMENT_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000010

-- | 'ACCESS_2_SHADER_READ_BIT' is equivalent to the logical OR of:
--
-- -   'ACCESS_2_UNIFORM_READ_BIT'
--
-- -   'ACCESS_2_SHADER_SAMPLED_READ_BIT'
--
-- -   'ACCESS_2_SHADER_STORAGE_READ_BIT'
--
-- -   'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'
pattern $bACCESS_2_SHADER_READ_BIT :: AccessFlagBits2
$mACCESS_2_SHADER_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_READ_BIT = AccessFlagBits2 0x0000000000000020

-- | 'ACCESS_2_SHADER_WRITE_BIT' is equivalent to
-- 'ACCESS_2_SHADER_STORAGE_WRITE_BIT'.
pattern $bACCESS_2_SHADER_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_SHADER_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_WRITE_BIT = AccessFlagBits2 0x0000000000000040

-- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>,
-- such as via
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blending blending>,
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-logicop logic operations>,
-- or via certain
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
-- It does not include
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_2_COLOR_ATTACHMENT_READ_BIT :: AccessFlagBits2
$mACCESS_2_COLOR_ATTACHMENT_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000080

-- | 'ACCESS_2_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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass render pass>
-- or via certain
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_2_COLOR_ATTACHMENT_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_COLOR_ATTACHMENT_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100

-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'
-- or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'
-- pipeline stages.
pattern $bACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: AccessFlagBits2
$mACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000200

-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to
-- a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,
-- via
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-ds-state depth or stencil operations>
-- or via certain
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-load-store-ops subpass load and store operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT'
-- or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT'
-- pipeline stages.
pattern $bACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000400

-- | 'ACCESS_2_TRANSFER_READ_BIT' specifies read access to an image or buffer
-- in a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>
-- operation. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT', or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'
-- pipeline stages.
pattern $bACCESS_2_TRANSFER_READ_BIT :: AccessFlagBits2
$mACCESS_2_TRANSFER_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFER_READ_BIT = AccessFlagBits2 0x0000000000000800

-- | 'ACCESS_2_TRANSFER_WRITE_BIT' specifies write access to an image or
-- buffer in a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>
-- or
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>
-- operation. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT',
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT',
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT'
-- pipeline stages.
pattern $bACCESS_2_TRANSFER_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_TRANSFER_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFER_WRITE_BIT = AccessFlagBits2 0x0000000000001000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'
-- pipeline stage.
pattern $bACCESS_2_HOST_READ_BIT :: AccessFlagBits2
$mACCESS_2_HOST_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_HOST_READ_BIT = AccessFlagBits2 0x0000000000002000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT'
-- pipeline stage.
pattern $bACCESS_2_HOST_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_HOST_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_HOST_WRITE_BIT = AccessFlagBits2 0x0000000000004000

-- | 'ACCESS_2_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_2_MEMORY_READ_BIT :: AccessFlagBits2
$mACCESS_2_MEMORY_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MEMORY_READ_BIT = AccessFlagBits2 0x0000000000008000

-- | 'ACCESS_2_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_2_MEMORY_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_MEMORY_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MEMORY_WRITE_BIT = AccessFlagBits2 0x0000000000010000

-- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>
-- or
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled image>
-- in any shader pipeline stage.
pattern $bACCESS_2_SHADER_SAMPLED_READ_BIT :: AccessFlagBits2
$mACCESS_2_SHADER_SAMPLED_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_SAMPLED_READ_BIT = AccessFlagBits2 0x0000000100000000

-- | 'ACCESS_2_SHADER_STORAGE_READ_BIT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- or
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>
-- in any shader pipeline stage.
pattern $bACCESS_2_SHADER_STORAGE_READ_BIT :: AccessFlagBits2
$mACCESS_2_SHADER_STORAGE_READ_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_STORAGE_READ_BIT = AccessFlagBits2 0x0000000200000000

-- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT' specifies write access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>,
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffer>,
-- or
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>
-- in any shader pipeline stage.
pattern $bACCESS_2_SHADER_STORAGE_WRITE_BIT :: AccessFlagBits2
$mACCESS_2_SHADER_STORAGE_WRITE_BIT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_STORAGE_WRITE_BIT = AccessFlagBits2 0x0000000400000000

-- | 'ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV' specifies write access to an image
-- or buffer resource as part of a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operation>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'
-- pipeline stage.
pattern $bACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV :: AccessFlagBits2
$mACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = AccessFlagBits2 0x0000080000000000

-- | 'ACCESS_2_OPTICAL_FLOW_READ_BIT_NV' specifies read access to an image or
-- buffer resource as part of a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operation>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'
-- pipeline stage.
pattern $bACCESS_2_OPTICAL_FLOW_READ_BIT_NV :: AccessFlagBits2
$mACCESS_2_OPTICAL_FLOW_READ_BIT_NV :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = AccessFlagBits2 0x0000040000000000

-- | 'ACCESS_2_MICROMAP_WRITE_BIT_EXT' specifies write access to a micromap
-- object. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_MICROMAP_WRITE_BIT_EXT :: AccessFlagBits2
$mACCESS_2_MICROMAP_WRITE_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MICROMAP_WRITE_BIT_EXT = AccessFlagBits2 0x0000200000000000

-- | 'ACCESS_2_MICROMAP_READ_BIT_EXT' specifies read access to a micromap
-- object. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'
-- and
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
-- pipeline stages.
pattern $bACCESS_2_MICROMAP_READ_BIT_EXT :: AccessFlagBits2
$mACCESS_2_MICROMAP_READ_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_MICROMAP_READ_BIT_EXT = AccessFlagBits2 0x0000100000000000

-- | 'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table>
-- in any shader pipeline stage.
pattern $bACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = AccessFlagBits2 0x0000010000000000

-- | 'ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' specifies read access to a
-- invocation mask image in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'
-- pipeline stage.
pattern $bACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI :: AccessFlagBits2
$mACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2 0x0000008000000000

-- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read
-- access to
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,
-- including
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT'
-- pipeline stage.
pattern $bACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: AccessFlagBits2
$mACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits2 0x0000000000080000

-- | 'ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>
-- during dynamic
-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations>.
-- Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: AccessFlagBits2
$mACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits2 0x0000000001000000

-- | 'ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access
-- to an acceleration structure or
-- <https://registry.khronos.org/vulkan/specs/1.3-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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: AccessFlagBits2
$mACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits2 0x0000000000400000

-- | 'ACCESS_2_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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>
-- as part of a build command. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR'
-- pipeline stage or
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits2 0x0000000000200000

-- | 'ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read
-- access to a fragment shading rate attachment during rasterization. Such
-- access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'
-- pipeline stage.
pattern $bACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR :: AccessFlagBits2
$mACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits2 0x0000000000800000

-- | 'ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the
-- target command buffer preprocess outputs. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'
-- pipeline stage.
pattern $bACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV :: AccessFlagBits2
$mACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = AccessFlagBits2 0x0000000000040000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV'
-- pipeline stage.
pattern $bACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV :: AccessFlagBits2
$mACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = AccessFlagBits2 0x0000000000020000

-- | 'ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a
-- predicate as part of conditional rendering. Such access occurs in the
-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT :: AccessFlagBits2
$mACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = AccessFlagBits2 0x0000000000100000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: AccessFlagBits2
$mACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits2 0x0000000008000000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: AccessFlagBits2
$mACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits2 0x0000000004000000

-- | 'ACCESS_2_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.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT'
-- pipeline stage.
pattern $bACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: AccessFlagBits2
$mACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT :: forall {r}. AccessFlagBits2 -> (Void# -> r) -> (Void# -> r) -> r
ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2 0x0000000002000000

conNameAccessFlagBits2 :: String
conNameAccessFlagBits2 :: String
conNameAccessFlagBits2 = String
"AccessFlagBits2"

enumPrefixAccessFlagBits2 :: String
enumPrefixAccessFlagBits2 :: String
enumPrefixAccessFlagBits2 = String
"ACCESS_2_"

showTableAccessFlagBits2 :: [(AccessFlagBits2, String)]
showTableAccessFlagBits2 :: [(AccessFlagBits2, String)]
showTableAccessFlagBits2 =
  [ (AccessFlagBits2
ACCESS_2_NONE, String
"NONE")
  ,
    ( AccessFlagBits2
ACCESS_2_INDIRECT_COMMAND_READ_BIT
    , String
"INDIRECT_COMMAND_READ_BIT"
    )
  , (AccessFlagBits2
ACCESS_2_INDEX_READ_BIT, String
"INDEX_READ_BIT")
  ,
    ( AccessFlagBits2
ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT
    , String
"VERTEX_ATTRIBUTE_READ_BIT"
    )
  , (AccessFlagBits2
ACCESS_2_UNIFORM_READ_BIT, String
"UNIFORM_READ_BIT")
  ,
    ( AccessFlagBits2
ACCESS_2_INPUT_ATTACHMENT_READ_BIT
    , String
"INPUT_ATTACHMENT_READ_BIT"
    )
  , (AccessFlagBits2
ACCESS_2_SHADER_READ_BIT, String
"SHADER_READ_BIT")
  , (AccessFlagBits2
ACCESS_2_SHADER_WRITE_BIT, String
"SHADER_WRITE_BIT")
  ,
    ( AccessFlagBits2
ACCESS_2_COLOR_ATTACHMENT_READ_BIT
    , String
"COLOR_ATTACHMENT_READ_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT
    , String
"COLOR_ATTACHMENT_WRITE_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT
    , String
"DEPTH_STENCIL_ATTACHMENT_READ_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
    , String
"DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"
    )
  , (AccessFlagBits2
ACCESS_2_TRANSFER_READ_BIT, String
"TRANSFER_READ_BIT")
  , (AccessFlagBits2
ACCESS_2_TRANSFER_WRITE_BIT, String
"TRANSFER_WRITE_BIT")
  , (AccessFlagBits2
ACCESS_2_HOST_READ_BIT, String
"HOST_READ_BIT")
  , (AccessFlagBits2
ACCESS_2_HOST_WRITE_BIT, String
"HOST_WRITE_BIT")
  , (AccessFlagBits2
ACCESS_2_MEMORY_READ_BIT, String
"MEMORY_READ_BIT")
  , (AccessFlagBits2
ACCESS_2_MEMORY_WRITE_BIT, String
"MEMORY_WRITE_BIT")
  ,
    ( AccessFlagBits2
ACCESS_2_SHADER_SAMPLED_READ_BIT
    , String
"SHADER_SAMPLED_READ_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_SHADER_STORAGE_READ_BIT
    , String
"SHADER_STORAGE_READ_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_SHADER_STORAGE_WRITE_BIT
    , String
"SHADER_STORAGE_WRITE_BIT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
    , String
"OPTICAL_FLOW_WRITE_BIT_NV"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_OPTICAL_FLOW_READ_BIT_NV
    , String
"OPTICAL_FLOW_READ_BIT_NV"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_MICROMAP_WRITE_BIT_EXT
    , String
"MICROMAP_WRITE_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_MICROMAP_READ_BIT_EXT
    , String
"MICROMAP_READ_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
    , String
"SHADER_BINDING_TABLE_READ_BIT_KHR"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
    , String
"INVOCATION_MASK_READ_BIT_HUAWEI"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
    , String
"COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
    , String
"FRAGMENT_DENSITY_MAP_READ_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_WRITE_BIT_KHR"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_READ_BIT_KHR"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR
    , String
"FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
    , String
"COMMAND_PREPROCESS_WRITE_BIT_NV"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
    , String
"COMMAND_PREPROCESS_READ_BIT_NV"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
    , String
"CONDITIONAL_RENDERING_READ_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"
    )
  ,
    ( AccessFlagBits2
ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_WRITE_BIT_EXT"
    )
  ]

instance Show AccessFlagBits2 where
  showsPrec :: Int -> AccessFlagBits2 -> ShowS
showsPrec =
    String
-> [(AccessFlagBits2, String)]
-> String
-> (AccessFlagBits2 -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> AccessFlagBits2
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixAccessFlagBits2
      [(AccessFlagBits2, String)]
showTableAccessFlagBits2
      String
conNameAccessFlagBits2
      (\(AccessFlagBits2 Flags64
x) -> Flags64
x)
      (\Flags64
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags64 -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags64
x)

instance Read AccessFlagBits2 where
  readPrec :: ReadPrec AccessFlagBits2
readPrec =
    String
-> [(AccessFlagBits2, String)]
-> String
-> (Flags64 -> AccessFlagBits2)
-> ReadPrec AccessFlagBits2
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixAccessFlagBits2
      [(AccessFlagBits2, String)]
showTableAccessFlagBits2
      String
conNameAccessFlagBits2
      Flags64 -> AccessFlagBits2
AccessFlagBits2