# D3D12_QUERY_DATA_PIPELINE_STATISTICS structure

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

## Syntax

```
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`

Number of vertices read by input assembler.

`IAPrimitives`

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`

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

`GSInvocations`

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`

Specifies the number of geometry shader output primitives.

`CInvocations`

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

`CPrimitives`

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`

Specifies the number of pixel shader invocations.

`HSInvocations`

Specifies the number of hull shader invocations.

`DSInvocations`

Specifies the number of domain shader invocations.

`CSInvocations`

Specifies the number of compute shader invocations.

## Remarks

Use this structure with D3D12_QUERY_HEAP_TYPE and CreateQueryHeap.

## Requirements

Header |
d3d12.h |