{-# 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.FundamentalTypes (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 -- . -- -- 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 (Eq, Ord, Storable, Zero, Bits) -- | 'QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT' specifies that -- queries managed by the pool will count the number of vertices processed -- by the -- -- stage. Vertices corresponding to incomplete primitives /may/ contribute -- to the count. pattern 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 -- -- stage. If primitive restart is enabled, restarting the primitive -- topology has no effect on the count. Incomplete primitives /may/ be -- counted. pattern 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 -- . pattern 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 -- . -- In the case of -- , -- the geometry shader invocations count is incremented for each separate -- instanced invocation. pattern 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 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 -- -- stage of the pipeline. The counter’s value is incremented each time a -- primitive reaches the primitive clipping stage. pattern 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 -- -- 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 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 -- . pattern 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 -- . pattern 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 -- . pattern 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 QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400 type QueryPipelineStatisticFlags = QueryPipelineStatisticFlagBits instance Show QueryPipelineStatisticFlagBits where showsPrec p = \case QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT -> showString "QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT" QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT -> showString "QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT" QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT" QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT" QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT -> showString "QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT" QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT" QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT -> showString "QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT" QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT" QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT -> showString "QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT" QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT" QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT -> showString "QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT" QueryPipelineStatisticFlagBits x -> showParen (p >= 11) (showString "QueryPipelineStatisticFlagBits 0x" . showHex x) instance Read QueryPipelineStatisticFlagBits where readPrec = parens (choose [("QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT", pure QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT) , ("QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT", pure QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT) , ("QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT) , ("QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT) , ("QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT", pure QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT) , ("QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT) , ("QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT", pure QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT) , ("QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT) , ("QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT", pure QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT) , ("QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT) , ("QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT", pure QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)] +++ prec 10 (do expectP (Ident "QueryPipelineStatisticFlagBits") v <- step readPrec pure (QueryPipelineStatisticFlagBits v)))