{-# language CPP #-}
-- No documentation found for Chapter "BufferUsageFlags2"
module Vulkan.Core14.Enums.BufferUsageFlags2  ( BufferUsageFlags2
                                              , BufferUsageFlagBits2( BUFFER_USAGE_2_TRANSFER_SRC_BIT
                                                                    , BUFFER_USAGE_2_TRANSFER_DST_BIT
                                                                    , BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_UNIFORM_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_STORAGE_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_INDEX_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_VERTEX_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_INDIRECT_BUFFER_BIT
                                                                    , BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT
                                                                    , BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM
                                                                    , BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM
                                                                    , BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX
                                                                    , BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
                                                                    , BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
                                                                    , BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
                                                                    , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
                                                                    , BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
                                                                    , BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
                                                                    , BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
                                                                    , BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
                                                                    , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
                                                                    , BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
                                                                    , BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
                                                                    , BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT
                                                                    , BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
                                                                    , BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT
                                                                    , ..
                                                                    )
                                              ) where

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

-- | VkBufferUsageFlagBits2 - Bitmask controlling how a pipeline is created
--
-- = Description
--
-- -   'BUFFER_USAGE_2_TRANSFER_SRC_BIT' specifies that the buffer /can/ be
--     used as the source of a /transfer command/ (see the definition of
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#synchronization-pipeline-stages-transfer >).
--
-- -   'BUFFER_USAGE_2_TRANSFER_DST_BIT' specifies that the buffer /can/ be
--     used as the destination of a transfer command.
--
-- -   'BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT' specifies that the buffer
--     /can/ be used to create a 'Vulkan.Core10.Handles.BufferView'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'.
--
-- -   'BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT' specifies that the buffer
--     /can/ be used to create a 'Vulkan.Core10.Handles.BufferView'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'.
--
-- -   'BUFFER_USAGE_2_UNIFORM_BUFFER_BIT' specifies that the buffer /can/
--     be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     either of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'
--     or
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.
--
-- -   'BUFFER_USAGE_2_STORAGE_BUFFER_BIT' specifies that the buffer /can/
--     be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo'
--     suitable for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot
--     either of type
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'
--     or
--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.
--
-- -   'BUFFER_USAGE_2_INDEX_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as the @buffer@ parameter to
--     'Vulkan.Core14.Promoted_From_VK_KHR_maintenance5Roadmap.cmdBindIndexBuffer2'
--     and 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.
--
-- -   'BUFFER_USAGE_2_VERTEX_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as an element of the @pBuffers@ array to
--     'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.
--
-- -   'BUFFER_USAGE_2_INDIRECT_BUFFER_BIT' specifies that the buffer is
--     suitable for passing as the @buffer@ parameter to
--     'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',
--     'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect',
--     'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV',
--     'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV',
--     'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT',
--     'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT',
--     'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI',
--     or 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'. It is
--     also suitable for passing as the @buffer@ member of
--     'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV',
--     or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or
--     @preprocessedBuffer@ member of
--     'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'.
--     It is also suitable for passing as the underlying buffer of either
--     the @preprocessAddress@ or @sequenceCountAddress@ members of
--     'Vulkan.Extensions.VK_EXT_device_generated_commands.GeneratedCommandsInfoEXT'.
--
-- -   'BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies that the
--     buffer is suitable for passing as the @buffer@ parameter to
--     'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'.
--
-- -   'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' specifies that
--     the buffer is suitable for using for binding as a transform feedback
--     buffer with
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT'.
--
-- -   'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' specifies
--     that the buffer is suitable for using as a counter buffer with
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT'
--     and
--     'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'.
--
-- -   'BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' specifies that
--     the buffer is suitable to contain sampler and combined image sampler
--     descriptors when bound as a descriptor buffer. Buffers containing
--     combined image sampler descriptors /must/ also specify
--     'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'.
--
-- -   'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that
--     the buffer is suitable to contain resource descriptors when bound as
--     a descriptor buffer.
--
-- -   'BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT'
--     specifies that the buffer, when bound, /can/ be used by the
--     implementation to support push descriptors when using descriptor
--     buffers.
--
-- -   'BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM' specifies that the buffer
--     /can/ be bound to 'Vulkan.Core10.Handles.DeviceMemory' allocated
--     from a 'Vulkan.Core10.DeviceInitialization.MemoryHeap' with the
--     'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_TILE_MEMORY_BIT_QCOM'
--     property.
--
-- -   'Vulkan.Extensions.VK_KHR_maintenance5.BUFFER_USAGE_2_RAY_TRACING_BIT_NV'
--     specifies that the buffer is suitable for use in
--     'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV'.
--
-- -   'BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' specifies that the
--     buffer is suitable for use as a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#shader-binding-table Shader Binding Table>.
--
-- -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR'
--     specifies that the buffer is suitable for use as a read-only input
--     to an
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#acceleration-structure-building acceleration structure build>.
--
-- -   'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies
--     that the buffer is suitable for storage space for a
--     'Vulkan.Extensions.Handles.AccelerationStructureKHR'.
--
-- -   'BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT' specifies that the buffer
--     /can/ be used to retrieve a buffer device address via
--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'
--     and use that address to access the buffer’s memory from a shader.
--
-- -   'BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' specifies that the buffer
--     /can/ be used as the source video bitstream buffer in a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-decode-operations video decode operation>.
--
-- -   'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' is reserved for future
--     use.
--
-- -   'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' specifies that the buffer
--     /can/ be used as the destination video bitstream buffer in a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#video-encode-operations video encode operation>.
--
-- -   'BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' is reserved for future
--     use.
--
-- -   'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the
--     buffer /can/ be used for as scratch memory for
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#executiongraphs execution graph dispatch>.
--
-- -   'BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT' specifies that the buffer
--     /can/ be used as a preprocess buffer for
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#device-generated-commands Device-Generated Commands>.
--
-- -   'BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX' specifies that the
--     buffer is suitable as storage space for
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#dense-geometry-format Dense Geometry Format>
--     data.
--
-- -   'BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM' specifies
--     that the buffer is suitable to contain resource descriptors when
--     bound as a descriptor buffer in command buffers allocated from a
--     command pool that /can/ target foreign
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#graphs-processing-engines data graph processing engines>.
--
-- -   'BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT' specifies that the
--     buffer /can/ be used as a destination buffer in
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#memory-decompression memory decompression>.
--
-- -   'BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT' specifies that the buffer
--     /can/ be used as a
--     <https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#descriptorheaps descriptor heap>.
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_maintenance5 VK_KHR_maintenance5>,
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_4 VK_VERSION_1_4>,
-- 'BufferUsageFlags2'
newtype BufferUsageFlagBits2 = BufferUsageFlagBits2 Flags64
  deriving newtype (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
(BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> Eq BufferUsageFlagBits2
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
== :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
$c/= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
/= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
Eq, Eq BufferUsageFlagBits2
Eq BufferUsageFlagBits2 =>
(BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Ordering)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2
    -> BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2
    -> BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> Ord BufferUsageFlagBits2
BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Ordering
BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
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
$ccompare :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Ordering
compare :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Ordering
$c< :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
< :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
$c<= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
<= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
$c> :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
> :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
$c>= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
>= :: BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> Bool
$cmax :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
max :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
$cmin :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
min :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
Ord, Ptr BufferUsageFlagBits2 -> IO BufferUsageFlagBits2
Ptr BufferUsageFlagBits2 -> Int -> IO BufferUsageFlagBits2
Ptr BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2 -> IO ()
Ptr BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> IO ()
BufferUsageFlagBits2 -> Int
(BufferUsageFlagBits2 -> Int)
-> (BufferUsageFlagBits2 -> Int)
-> (Ptr BufferUsageFlagBits2 -> Int -> IO BufferUsageFlagBits2)
-> (Ptr BufferUsageFlagBits2
    -> Int -> BufferUsageFlagBits2 -> IO ())
-> (forall b. Ptr b -> Int -> IO BufferUsageFlagBits2)
-> (forall b. Ptr b -> Int -> BufferUsageFlagBits2 -> IO ())
-> (Ptr BufferUsageFlagBits2 -> IO BufferUsageFlagBits2)
-> (Ptr BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> IO ())
-> Storable BufferUsageFlagBits2
forall b. Ptr b -> Int -> IO BufferUsageFlagBits2
forall b. Ptr b -> Int -> BufferUsageFlagBits2 -> 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
$csizeOf :: BufferUsageFlagBits2 -> Int
sizeOf :: BufferUsageFlagBits2 -> Int
$calignment :: BufferUsageFlagBits2 -> Int
alignment :: BufferUsageFlagBits2 -> Int
$cpeekElemOff :: Ptr BufferUsageFlagBits2 -> Int -> IO BufferUsageFlagBits2
peekElemOff :: Ptr BufferUsageFlagBits2 -> Int -> IO BufferUsageFlagBits2
$cpokeElemOff :: Ptr BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2 -> IO ()
pokeElemOff :: Ptr BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2 -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits2
peekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits2
$cpokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits2 -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits2 -> IO ()
$cpeek :: Ptr BufferUsageFlagBits2 -> IO BufferUsageFlagBits2
peek :: Ptr BufferUsageFlagBits2 -> IO BufferUsageFlagBits2
$cpoke :: Ptr BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> IO ()
poke :: Ptr BufferUsageFlagBits2 -> BufferUsageFlagBits2 -> IO ()
Storable, BufferUsageFlagBits2
BufferUsageFlagBits2 -> Zero BufferUsageFlagBits2
forall a. a -> Zero a
$czero :: BufferUsageFlagBits2
zero :: BufferUsageFlagBits2
Zero, Eq BufferUsageFlagBits2
BufferUsageFlagBits2
Eq BufferUsageFlagBits2 =>
(BufferUsageFlagBits2
 -> BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2
    -> BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2
    -> BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> BufferUsageFlagBits2
-> (Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> Bool)
-> (BufferUsageFlagBits2 -> Maybe Int)
-> (BufferUsageFlagBits2 -> Int)
-> (BufferUsageFlagBits2 -> Bool)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2)
-> (BufferUsageFlagBits2 -> Int)
-> Bits BufferUsageFlagBits2
Int -> BufferUsageFlagBits2
BufferUsageFlagBits2 -> Bool
BufferUsageFlagBits2 -> Int
BufferUsageFlagBits2 -> Maybe Int
BufferUsageFlagBits2 -> BufferUsageFlagBits2
BufferUsageFlagBits2 -> Int -> Bool
BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
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
$c.&. :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
.&. :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
$c.|. :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
.|. :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
$cxor :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
xor :: BufferUsageFlagBits2
-> BufferUsageFlagBits2 -> BufferUsageFlagBits2
$ccomplement :: BufferUsageFlagBits2 -> BufferUsageFlagBits2
complement :: BufferUsageFlagBits2 -> BufferUsageFlagBits2
$cshift :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
shift :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$crotate :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
rotate :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$czeroBits :: BufferUsageFlagBits2
zeroBits :: BufferUsageFlagBits2
$cbit :: Int -> BufferUsageFlagBits2
bit :: Int -> BufferUsageFlagBits2
$csetBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
setBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$cclearBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
clearBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$ccomplementBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
complementBit :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$ctestBit :: BufferUsageFlagBits2 -> Int -> Bool
testBit :: BufferUsageFlagBits2 -> Int -> Bool
$cbitSizeMaybe :: BufferUsageFlagBits2 -> Maybe Int
bitSizeMaybe :: BufferUsageFlagBits2 -> Maybe Int
$cbitSize :: BufferUsageFlagBits2 -> Int
bitSize :: BufferUsageFlagBits2 -> Int
$cisSigned :: BufferUsageFlagBits2 -> Bool
isSigned :: BufferUsageFlagBits2 -> Bool
$cshiftL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
shiftL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$cunsafeShiftL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
unsafeShiftL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$cshiftR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
shiftR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$cunsafeShiftR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
unsafeShiftR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$crotateL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
rotateL :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$crotateR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
rotateR :: BufferUsageFlagBits2 -> Int -> BufferUsageFlagBits2
$cpopCount :: BufferUsageFlagBits2 -> Int
popCount :: BufferUsageFlagBits2 -> Int
Bits, Bits BufferUsageFlagBits2
Bits BufferUsageFlagBits2 =>
(BufferUsageFlagBits2 -> Int)
-> (BufferUsageFlagBits2 -> Int)
-> (BufferUsageFlagBits2 -> Int)
-> FiniteBits BufferUsageFlagBits2
BufferUsageFlagBits2 -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: BufferUsageFlagBits2 -> Int
finiteBitSize :: BufferUsageFlagBits2 -> Int
$ccountLeadingZeros :: BufferUsageFlagBits2 -> Int
countLeadingZeros :: BufferUsageFlagBits2 -> Int
$ccountTrailingZeros :: BufferUsageFlagBits2 -> Int
countTrailingZeros :: BufferUsageFlagBits2 -> Int
FiniteBits)

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT"
pattern $mBUFFER_USAGE_2_TRANSFER_SRC_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFER_SRC_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_SRC_BIT = BufferUsageFlagBits2 0x0000000000000001

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_TRANSFER_DST_BIT"
pattern $mBUFFER_USAGE_2_TRANSFER_DST_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFER_DST_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_DST_BIT = BufferUsageFlagBits2 0x0000000000000002

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000004

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000008

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_UNIFORM_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_UNIFORM_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000010

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_STORAGE_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_STORAGE_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000020

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_INDEX_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_INDEX_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_INDEX_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000040

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_VERTEX_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VERTEX_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_VERTEX_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000080

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT"
pattern $mBUFFER_USAGE_2_INDIRECT_BUFFER_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_INDIRECT_BUFFER_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = BufferUsageFlagBits2 0x0000000000000100

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000080000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT"
pattern $mBUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = BufferUsageFlagBits2 0x0000000100000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM"
pattern $mBUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM :: BufferUsageFlagBits2
BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = BufferUsageFlagBits2 0x0000000008000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM"
pattern $mBUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM :: BufferUsageFlagBits2
BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = BufferUsageFlagBits2 0x0000000020000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX"
pattern $mBUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX :: BufferUsageFlagBits2
BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = BufferUsageFlagBits2 0x0000000200000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT"
pattern $mBUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits2 0x0000000001000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
pattern $mBUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits2 0x0000000000800000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000004000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000000400000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000000200000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
pattern $mBUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits2 0x0000000000100000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
pattern $mBUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits2 0x0000000000080000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR"
pattern $mBUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = BufferUsageFlagBits2 0x0000000000010000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR"
pattern $mBUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = BufferUsageFlagBits2 0x0000000000008000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR"
pattern $mBUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = BufferUsageFlagBits2 0x0000000000004000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR"
pattern $mBUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = BufferUsageFlagBits2 0x0000000000002000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000000001000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
pattern $mBUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits2 0x0000000000000800

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR"
pattern $mBUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: BufferUsageFlagBits2
BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits2 0x0000000000000400

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT"
pattern $mBUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits2 0x0000000000000200

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT"
pattern $mBUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT :: BufferUsageFlagBits2
BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = BufferUsageFlagBits2 0x0000000010000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
pattern $mBUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: BufferUsageFlagBits2
BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits2 0x0000000002000000

-- No documentation found for Nested "VkBufferUsageFlagBits2" "VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT"
pattern $mBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT :: forall {r}.
BufferUsageFlagBits2 -> ((# #) -> r) -> ((# #) -> r) -> r
$bBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT :: BufferUsageFlagBits2
BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = BufferUsageFlagBits2 0x0000000000020000

conNameBufferUsageFlagBits2 :: String
conNameBufferUsageFlagBits2 :: String
conNameBufferUsageFlagBits2 = String
"BufferUsageFlagBits2"

enumPrefixBufferUsageFlagBits2 :: String
enumPrefixBufferUsageFlagBits2 :: String
enumPrefixBufferUsageFlagBits2 = String
"BUFFER_USAGE_2_"

showTableBufferUsageFlagBits2 :: [(BufferUsageFlagBits2, String)]
showTableBufferUsageFlagBits2 :: [(BufferUsageFlagBits2, String)]
showTableBufferUsageFlagBits2 =
  [
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_SRC_BIT
    , String
"TRANSFER_SRC_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFER_DST_BIT
    , String
"TRANSFER_DST_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT
    , String
"UNIFORM_TEXEL_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT
    , String
"STORAGE_TEXEL_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_UNIFORM_BUFFER_BIT
    , String
"UNIFORM_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_STORAGE_BUFFER_BIT
    , String
"STORAGE_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_INDEX_BUFFER_BIT
    , String
"INDEX_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_VERTEX_BUFFER_BIT
    , String
"VERTEX_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_INDIRECT_BUFFER_BIT
    , String
"INDIRECT_BUFFER_BIT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT
    , String
"PREPROCESS_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT
    , String
"MEMORY_DECOMPRESSION_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM
    , String
"TILE_MEMORY_BIT_QCOM"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM
    , String
"DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX
    , String
"COMPRESSED_DATA_DGF1_BIT_AMDX"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
    , String
"MICROMAP_STORAGE_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
    , String
"MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
    , String
"SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
    , String
"ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
    , String
"VIDEO_ENCODE_SRC_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
    , String
"VIDEO_ENCODE_DST_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
    , String
"VIDEO_DECODE_DST_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
    , String
"VIDEO_DECODE_SRC_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
    , String
"TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
    , String
"SHADER_BINDING_TABLE_BIT_KHR"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
    , String
"CONDITIONAL_RENDERING_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT
    , String
"DESCRIPTOR_HEAP_BIT_EXT"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
    , String
"EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
    )
  ,
    ( BufferUsageFlagBits2
BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT
    , String
"SHADER_DEVICE_ADDRESS_BIT"
    )
  ]

instance Show BufferUsageFlagBits2 where
  showsPrec :: Int -> BufferUsageFlagBits2 -> ShowS
showsPrec =
    String
-> [(BufferUsageFlagBits2, String)]
-> String
-> (BufferUsageFlagBits2 -> Word64)
-> (Word64 -> ShowS)
-> Int
-> BufferUsageFlagBits2
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
      String
enumPrefixBufferUsageFlagBits2
      [(BufferUsageFlagBits2, String)]
showTableBufferUsageFlagBits2
      String
conNameBufferUsageFlagBits2
      (\(BufferUsageFlagBits2 Word64
x) -> Word64
x)
      (\Word64
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word64
x)

instance Read BufferUsageFlagBits2 where
  readPrec :: ReadPrec BufferUsageFlagBits2
readPrec =
    String
-> [(BufferUsageFlagBits2, String)]
-> String
-> (Word64 -> BufferUsageFlagBits2)
-> ReadPrec BufferUsageFlagBits2
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
      String
enumPrefixBufferUsageFlagBits2
      [(BufferUsageFlagBits2, String)]
showTableBufferUsageFlagBits2
      String
conNameBufferUsageFlagBits2
      Word64 -> BufferUsageFlagBits2
BufferUsageFlagBits2