> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_QUERY_DATA_PIPELINE_STATISTICS

> Query information about graphics-pipeline activity in between calls to BeginQuery and EndQuery.

Query information about graphics-pipeline activity in between calls to [BeginQuery](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_beginquery_public) and [EndQuery](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_endquery_public).

## Syntax

```cpp theme={null}
typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
{
    UINT64 IAVertices;
    UINT64 IAPrimitives;
    UINT64 VSInvocations;
    UINT64 GSInvocations;
    UINT64 GSPrimitives;
    UINT64 CInvocations;
    UINT64 CPrimitives;
    UINT64 PSInvocations;
    UINT64 HSInvocations;
    UINT64 DSInvocations;
    UINT64 CSInvocations;
} D3D12_QUERY_DATA_PIPELINE_STATISTICS
```

### Members

*IAVertices*\
Type: UINT64

Number of vertices read by input assembler.

*IAPrimitives*\
Type: UINT64

Number of primitives read by the input assembler. This number can be different depending on the primitive topology used. For example, a triangle strip with 6 vertices will produce 4 triangles, however a triangle list with 6 vertices will produce 2 triangles.

*VSInvocations*\
Type: UINT64

Specifies the number of vertex shader invocations. Direct3D invokes the vertex shader once per vertex.

*GSInvocations*\
Type: UINT64

Specifies the number of geometry shader invocations. When the geometry shader is set to NULL, this statistic may or may not increment depending on the graphics adapter.

*GSPrimitives*\
Type: UINT64

Specifies the number of geometry shader output primitives.

*CInvocations*\
Type: UINT64

Number of primitives that were sent to the rasterizer. When the rasterizer is disabled, this will not increment.

*CPrimitives*\
Type: UINT64

Number of primitives that were rendered. This may be larger or smaller than CInvocations because after a primitive is clipped sometimes it is either broken up into more than one primitive or completely culled.

*PSInvocations*\
Type: UINT64

Specifies the number of pixel shader invocations.

*HSInvocations*\
Type: UINT64

Specifies the number of hull shader invocations.

*DSInvocations*\
Type: UINT64

Specifies the number of domain shader invocations.

*CSInvocations*\
Type: UINT64

Specifies the number of compute shader invocations.

## Remarks

Use this structure with [D3D12\_QUERY\_HEAP\_TYPE](/reference/graphics/d3d12_x/enums/d3d12_query_heap_type) and [CreateQueryHeap](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createqueryheap_public).

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core Structures](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)


## Related topics

- [D3D12_QUERY_DATA_SO_STATISTICS](/reference/graphics/d3d12/structs/d3d12_query_data_so_statistics_public.md)
- [D3D12_CACHED_PIPELINE_STATE](/reference/graphics/d3d12/structs/d3d12_cached_pipeline_state_public.md)
- [D3D12_FEATURE_DATA_D3D12_OPTIONS12](/reference/graphics/d3d12/structs/d3d12_feature_data_d3d12_options12_public.md)
- [D3D12_PIPELINE_STATE_STREAM_DESC](/reference/graphics/d3d12/structs/d3d12_pipeline_state_stream_desc_public.md)
- [D3D12_FEATURE_DATA_QUERY_META_COMMAND](/reference/graphics/d3d12/structs/d3d12_feature_data_query_meta_command_public.md)
