{-# language CPP #-}
module Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits  ( QueryPipelineStatisticFlagBits( QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
                                                                                           , QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
                                                                                           , ..
                                                                                           )
                                                           , QueryPipelineStatisticFlags
                                                           ) where

import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Foreign.Storable (Storable)
import GHC.Read (Read(readPrec))
import Text.Read.Lex (Lexeme(Ident))
import Vulkan.Core10.BaseType (Flags)
import Vulkan.Zero (Zero)
-- | VkQueryPipelineStatisticFlagBits - Bitmask specifying queried pipeline
-- statistics
--
-- = Description
--
-- These values are intended to measure relative statistics on one
-- implementation. Various device architectures will count these values
-- differently. Any or all counters /may/ be affected by the issues
-- described in
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-operation-undefined Query Operation>.
--
-- Note
--
-- For example, tile-based rendering devices /may/ need to replay the scene
-- multiple times, affecting some of the counts.
--
-- If a pipeline has @rasterizerDiscardEnable@ enabled, implementations
-- /may/ discard primitives after the final vertex processing stage. As a
-- result, if @rasterizerDiscardEnable@ is enabled, the clipping input and
-- output primitives counters /may/ not be incremented.
--
-- When a pipeline statistics query finishes, the result for that query is
-- marked as available. The application /can/ copy the result to a buffer
-- (via 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'), or
-- request it be put into host memory (via
-- 'Vulkan.Core10.Query.getQueryPoolResults').
--
-- = See Also
--
-- 'QueryPipelineStatisticFlags'
newtype QueryPipelineStatisticFlagBits = QueryPipelineStatisticFlagBits Flags
  deriving newtype (QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
(QueryPipelineStatisticFlagBits
 -> QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> Bool)
-> Eq QueryPipelineStatisticFlagBits
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c/= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
== :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c== :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
Eq, Eq QueryPipelineStatisticFlagBits
Eq QueryPipelineStatisticFlagBits =>
(QueryPipelineStatisticFlagBits
 -> QueryPipelineStatisticFlagBits -> Ordering)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits)
-> Ord QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Ordering
QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
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 :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$cmin :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
max :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$cmax :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
>= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c>= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
> :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c> :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
<= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c<= :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
< :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
$c< :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Bool
compare :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Ordering
$ccompare :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> Ordering
$cp1Ord :: Eq QueryPipelineStatisticFlagBits
Ord, Ptr b -> Int -> IO QueryPipelineStatisticFlagBits
Ptr b -> Int -> QueryPipelineStatisticFlagBits -> IO ()
Ptr QueryPipelineStatisticFlagBits
-> IO QueryPipelineStatisticFlagBits
Ptr QueryPipelineStatisticFlagBits
-> Int -> IO QueryPipelineStatisticFlagBits
Ptr QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits -> IO ()
Ptr QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> IO ()
QueryPipelineStatisticFlagBits -> Int
(QueryPipelineStatisticFlagBits -> Int)
-> (QueryPipelineStatisticFlagBits -> Int)
-> (Ptr QueryPipelineStatisticFlagBits
    -> Int -> IO QueryPipelineStatisticFlagBits)
-> (Ptr QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits -> IO ())
-> (forall b. Ptr b -> Int -> IO QueryPipelineStatisticFlagBits)
-> (forall b.
    Ptr b -> Int -> QueryPipelineStatisticFlagBits -> IO ())
-> (Ptr QueryPipelineStatisticFlagBits
    -> IO QueryPipelineStatisticFlagBits)
-> (Ptr QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits -> IO ())
-> Storable QueryPipelineStatisticFlagBits
forall b. Ptr b -> Int -> IO QueryPipelineStatisticFlagBits
forall b. Ptr b -> Int -> QueryPipelineStatisticFlagBits -> 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 QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> IO ()
$cpoke :: Ptr QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> IO ()
peek :: Ptr QueryPipelineStatisticFlagBits
-> IO QueryPipelineStatisticFlagBits
$cpeek :: Ptr QueryPipelineStatisticFlagBits
-> IO QueryPipelineStatisticFlagBits
pokeByteOff :: Ptr b -> Int -> QueryPipelineStatisticFlagBits -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> QueryPipelineStatisticFlagBits -> IO ()
peekByteOff :: Ptr b -> Int -> IO QueryPipelineStatisticFlagBits
$cpeekByteOff :: forall b. Ptr b -> Int -> IO QueryPipelineStatisticFlagBits
pokeElemOff :: Ptr QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits -> IO ()
$cpokeElemOff :: Ptr QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits -> IO ()
peekElemOff :: Ptr QueryPipelineStatisticFlagBits
-> Int -> IO QueryPipelineStatisticFlagBits
$cpeekElemOff :: Ptr QueryPipelineStatisticFlagBits
-> Int -> IO QueryPipelineStatisticFlagBits
alignment :: QueryPipelineStatisticFlagBits -> Int
$calignment :: QueryPipelineStatisticFlagBits -> Int
sizeOf :: QueryPipelineStatisticFlagBits -> Int
$csizeOf :: QueryPipelineStatisticFlagBits -> Int
Storable, QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits
-> Zero QueryPipelineStatisticFlagBits
forall a. a -> Zero a
zero :: QueryPipelineStatisticFlagBits
$czero :: QueryPipelineStatisticFlagBits
Zero, Eq QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits
Eq QueryPipelineStatisticFlagBits =>
(QueryPipelineStatisticFlagBits
 -> QueryPipelineStatisticFlagBits
 -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> QueryPipelineStatisticFlagBits
-> (Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits -> Int -> Bool)
-> (QueryPipelineStatisticFlagBits -> Maybe Int)
-> (QueryPipelineStatisticFlagBits -> Int)
-> (QueryPipelineStatisticFlagBits -> Bool)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits
    -> Int -> QueryPipelineStatisticFlagBits)
-> (QueryPipelineStatisticFlagBits -> Int)
-> Bits QueryPipelineStatisticFlagBits
Int -> QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits -> Bool
QueryPipelineStatisticFlagBits -> Int
QueryPipelineStatisticFlagBits -> Maybe Int
QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits -> Int -> Bool
QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
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 :: QueryPipelineStatisticFlagBits -> Int
$cpopCount :: QueryPipelineStatisticFlagBits -> Int
rotateR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$crotateR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
rotateL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$crotateL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
unsafeShiftR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cunsafeShiftR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
shiftR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cshiftR :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
unsafeShiftL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cunsafeShiftL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
shiftL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cshiftL :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
isSigned :: QueryPipelineStatisticFlagBits -> Bool
$cisSigned :: QueryPipelineStatisticFlagBits -> Bool
bitSize :: QueryPipelineStatisticFlagBits -> Int
$cbitSize :: QueryPipelineStatisticFlagBits -> Int
bitSizeMaybe :: QueryPipelineStatisticFlagBits -> Maybe Int
$cbitSizeMaybe :: QueryPipelineStatisticFlagBits -> Maybe Int
testBit :: QueryPipelineStatisticFlagBits -> Int -> Bool
$ctestBit :: QueryPipelineStatisticFlagBits -> Int -> Bool
complementBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$ccomplementBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
clearBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cclearBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
setBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$csetBit :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
bit :: Int -> QueryPipelineStatisticFlagBits
$cbit :: Int -> QueryPipelineStatisticFlagBits
zeroBits :: QueryPipelineStatisticFlagBits
$czeroBits :: QueryPipelineStatisticFlagBits
rotate :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$crotate :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
shift :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
$cshift :: QueryPipelineStatisticFlagBits
-> Int -> QueryPipelineStatisticFlagBits
complement :: QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$ccomplement :: QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
xor :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$cxor :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
.|. :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$c.|. :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
.&. :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$c.&. :: QueryPipelineStatisticFlagBits
-> QueryPipelineStatisticFlagBits -> QueryPipelineStatisticFlagBits
$cp1Bits :: Eq QueryPipelineStatisticFlagBits
Bits)

-- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT' specifies that
-- queries managed by the pool will count the number of vertices processed
-- by the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing input assembly>
-- stage. Vertices corresponding to incomplete primitives /may/ contribute
-- to the count.
pattern $bQUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = QueryPipelineStatisticFlagBits 0x00000001
-- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT' specifies that
-- queries managed by the pool will count the number of primitives
-- processed by the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing input assembly>
-- stage. If primitive restart is enabled, restarting the primitive
-- topology has no effect on the count. Incomplete primitives /may/ be
-- counted.
pattern $bQUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000002
-- | 'QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT' specifies that
-- queries managed by the pool will count the number of vertex shader
-- invocations. This counter’s value is incremented each time a vertex
-- shader is
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-vertex-execution invoked>.
pattern $bQUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000004
-- | 'QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT' specifies
-- that queries managed by the pool will count the number of geometry
-- shader invocations. This counter’s value is incremented each time a
-- geometry shader is
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution invoked>.
-- In the case of
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#geometry-invocations instanced geometry shaders>,
-- the geometry shader invocations count is incremented for each separate
-- instanced invocation.
pattern $bQUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000008
-- | 'QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT' specifies that
-- queries managed by the pool will count the number of primitives
-- generated by geometry shader invocations. The counter’s value is
-- incremented each time the geometry shader emits a primitive. Restarting
-- primitive topology using the SPIR-V instructions @OpEndPrimitive@ or
-- @OpEndStreamPrimitive@ has no effect on the geometry shader output
-- primitives count.
pattern $bQUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000010
-- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT' specifies that
-- queries managed by the pool will count the number of primitives
-- processed by the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>
-- stage of the pipeline. The counter’s value is incremented each time a
-- primitive reaches the primitive clipping stage.
pattern $bQUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000020
-- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT' specifies that
-- queries managed by the pool will count the number of primitives output
-- by the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>
-- stage of the pipeline. The counter’s value is incremented each time a
-- primitive passes the primitive clipping stage. The actual number of
-- primitives output by the primitive clipping stage for a particular input
-- primitive is implementation-dependent but /must/ satisfy the following
-- conditions:
--
-- -   If at least one vertex of the input primitive lies inside the
--     clipping volume, the counter is incremented by one or more.
--
-- -   Otherwise, the counter is incremented by zero or more.
pattern $bQUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000040
-- | 'QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT' specifies
-- that queries managed by the pool will count the number of fragment
-- shader invocations. The counter’s value is incremented each time the
-- fragment shader is
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-execution invoked>.
pattern $bQUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000080
-- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT'
-- specifies that queries managed by the pool will count the number of
-- patches processed by the tessellation control shader. The counter’s
-- value is incremented once for each patch for which a tessellation
-- control shader is
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-tessellation-control-execution invoked>.
pattern $bQUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = QueryPipelineStatisticFlagBits 0x00000100
-- | 'QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'
-- specifies that queries managed by the pool will count the number of
-- invocations of the tessellation evaluation shader. The counter’s value
-- is incremented each time the tessellation evaluation shader is
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>.
pattern $bQUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000200
-- | 'QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT' specifies that
-- queries managed by the pool will count the number of compute shader
-- invocations. The counter’s value is incremented every time the compute
-- shader is invoked. Implementations /may/ skip the execution of certain
-- compute shader invocations or execute additional compute shader
-- invocations for implementation-dependent reasons as long as the results
-- of rendering otherwise remain unchanged.
pattern $bQUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: QueryPipelineStatisticFlagBits
$mQUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT :: forall r.
QueryPipelineStatisticFlagBits -> (Void# -> r) -> (Void# -> r) -> r
QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400

type QueryPipelineStatisticFlags = QueryPipelineStatisticFlagBits

instance Show QueryPipelineStatisticFlagBits where
  showsPrec :: Int -> QueryPipelineStatisticFlagBits -> ShowS
showsPrec p :: Int
p = \case
    QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"
    QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"
    QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"
    QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"
    QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"
    QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"
    QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"
    QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"
    QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"
    QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"
    QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT -> String -> ShowS
showString "QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"
    QueryPipelineStatisticFlagBits x :: Flags
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "QueryPipelineStatisticFlagBits 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Flags
x)

instance Read QueryPipelineStatisticFlagBits where
  readPrec :: ReadPrec QueryPipelineStatisticFlagBits
readPrec = ReadPrec QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec QueryPipelineStatisticFlagBits)]
-> ReadPrec QueryPipelineStatisticFlagBits
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose [("QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT)
                            , ("QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT", QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure QueryPipelineStatisticFlagBits
QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)]
                     ReadPrec QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "QueryPipelineStatisticFlagBits")
                       Flags
v <- ReadPrec Flags -> ReadPrec Flags
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Flags
forall a. Read a => ReadPrec a
readPrec
                       QueryPipelineStatisticFlagBits
-> ReadPrec QueryPipelineStatisticFlagBits
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Flags -> QueryPipelineStatisticFlagBits
QueryPipelineStatisticFlagBits Flags
v)))