Statistics about the performance of a graphics driver.
typedef struct D3D11X_DRIVER_STATISTICS {
UINT FastDraws;
UINT ComplexDraws;
UINT CeDumps;
UINT TopologySets;
UINT VsSets;
UINT PsSets;
UINT VsPsLinkages;
UINT InhibitedIdentityVsPsLinkages;
UINT FastDrawSlowFlags;
UINT CommitMultisampleBuffers;
UINT PsShaderPatch;
UINT VsFetchShader;
UINT ShaderFastCacheMiss;
UINT ShaderSlowCacheMiss;
UINT UniquenessesCreated;
UINT UniquenessesMatched;
UINT UniquenessLongestList;
UINT UniquenessSize;
UINT FastDrawIneligible_PipelineConfiguration;
UINT FastDrawIneligible_RealizationFailure;
UINT FastDrawIneligible_ComplexVsShader;
UINT FastDrawIneligible_ComplexPsShader;
UINT FastDrawIneligible_UnusualDrawApi;
UINT ComplexVsShader_NoFetchShader;
UINT ComplexVsShader_UploadTablePtrs;
UINT ComplexVsShader_UsesGdsCounterRange;
UINT ComplexVsShader_ZeroConstRamDumpPacketCount;
UINT ComplexVsShader_UnusualUserDataPointerCount;
UINT ComplexVsShader_CeSizeTooBig;
UINT ComplexVsShader_CeCommandBufferTooBig;
UINT ComplexVsShader_UsesSampleBuffer;
UINT ComplexVsShader_NonZeroTmpRingSize;
UINT ComplexVsShader_NonZeroStepRate;
UINT ComplexVsShader_UsesInternalConstantBuffer;
UINT ComplexPsShader_UploadTablePtrs;
UINT ComplexPsShader_UnusualUserDataGlobalsPacketCount;
UINT ComplexPsShader_UnusualUserData;
UINT ComplexPsShader_CeSizeTooBig;
UINT ComplexPsShader_CeCommandBufferTooBig;
UINT ComplexPsShader_UsesSampleBuffer;
UINT ComplexPsShader_NonZeroTmpRingSize;
UINT ComplexPsShader_UsesPrimId;
UINT ComplexPsShader_UsesInternalConstantBuffer;
UINT DrawBundleExecutesWithContextRoll;
UINT DrawBundleExecutesWithoutContextRoll;
} D3D11X_DRIVER_STATISTICS;
FastDraws
Count of Draws going through the driver’s fast Draw path.
ComplexDraws
Count of Draws going through the driver’s complex Draw path.
CeDumps
Count of Constant Engine dump packets emitted.
TopologySets
Count of topology changes lazily processed (possible context roll).
VsSets
Count of set-vertex-shaders lazily processed.
PsSets
Count of set-pixel-shaders lazily processed.
VsPsLinkages
Count of vertex-shader/pixel-shader linkages lazily created (guaranteed context roll).
InhibitedIdentityVsPsLinkages
Count of times linkage creation was avoided because an identity linkage matched preceding identity linkage of same size.
FastDrawSlowFlags
Count of times slow flags had to be processed in the fast Draw path.
CommitMultisampleBuffers
Count of times the multi-sample buffer is lazily processed.
PsShaderPatch
Count of times a pixel shader was patched to match a render target or blend state.
VsFetchShader
Count of times a vertex shader fetch shader was created.
ShaderFastCacheMiss
Count of times there was a miss in the shader fast-cache.
ShaderSlowCacheMiss
Count of times there was a miss in the shader slow-cache (meaning the shader had to be compiled or patched or a fetch shader created).
UniquenessesCreated
Count of entries in the uniqueness database.
UniquenessesMatched
Count of times there was a match with an existing uniqueness.
UniquenessLongestList
Count of entries in the longest collision list.
UniquenessSize
Size, in bytes, of all the entries in the uniqueness database.
FastDrawIneligible_PipelineConfiguration
Count of Draws where fast-path couldn’t be used because of the pipeline configuration.
FastDrawIneligible_RealizationFailure
Count of Draws where fast-path couldn’t be used because of a failure in realizing a shader.
FastDrawIneligible_ComplexVsShader
Count of Draws where fast-path couldn’t be used because the vertex shader was too complex (see ComplexVsShader_* stats).
FastDrawIneligible_ComplexPsShader
Count of Draws where fast-path couldn’t be used because the pixel shader was too complex (see ComplexPsShader_* stats).
FastDrawIneligible_UnusualDrawApi
Count of Draws where fast-path couldn’t be used because the Draw API used doesn’t support a fast path.
ComplexVsShader_NoFetchShader
Count of Draws where fast-path couldn’t be used because vertex shader has no fetch shader.
ComplexVsShader_UploadTablePtrs
Count of Draws where fast-path couldn’t be used because vertex shader has upload table pointers.
ComplexVsShader_UsesGdsCounterRange
Count of Draws where fast-path couldn’t be used because vertex shader uses GDS counter range.
ComplexVsShader_ZeroConstRamDumpPacketCount
Count of Draws where fast-path couldn’t be used because vertex shader has zero dump packets.
ComplexVsShader_UnusualUserDataPointerCount
Count of Draws where fast-path couldn’t be used because vertex shader has an unusual user data pointer count.
ComplexVsShader_CeSizeTooBig
Count of Draws where fast-path couldn’t be used because vertex shader consumes too much CE dump memory.
ComplexVsShader_CeCommandBufferTooBig
Count of Draws where fast-path couldn’t be used because vertex shader requires too much command buffer memory.
ComplexVsShader_UsesSampleBuffer
Count of Draws where fast-path couldn’t be used because vertex shader requires the sample info/position buffer.
ComplexVsShader_NonZeroTmpRingSize
Count of Draws where fast-path couldn’t be used because vertex shader requires non-zero Tmp ring size.
ComplexVsShader_NonZeroStepRate
Count of Draws where fast-path couldn’t be used because vertex shader requires a non-zero step rate.
ComplexVsShader_UsesInternalConstantBuffer
Count of Draws where fast-path couldn’t be used because vertex shader requires an internal constant buffer to be set.
ComplexPsShader_UploadTablePtrs
Count of Draws where fast-path couldn’t be used because pixel shader has upload table pointers.
ComplexPsShader_UnusualUserDataGlobalsPacketCount
Count of Draws where fast-path couldn’t be used because pixel shader has an unusual user data global count.
ComplexPsShader_UnusualUserData
Count of Draws where fast-path couldn’t be used because pixel shader has unusual user data.
ComplexPsShader_CeSizeTooBig
Count of Draws where fast-path couldn’t be used because pixel shader requires too much CE dump memory.
ComplexPsShader_CeCommandBufferTooBig
Count of Draws where fast-path couldn’t be used because pixel shader requires too much command buffer memory.
ComplexPsShader_UsesSampleBuffer
Count of Draws where fast-path couldn’t be used because pixel shader requires the sample info/position buffer.
ComplexPsShader_NonZeroTmpRingSize
Count of Draws where fast-path couldn’t be used because pixel shader requires non-zero Tmp ring size.
ComplexPsShader_UsesPrimId
Count of Draws where fast-path couldn’t be used because pixel shader uses primitive ID.
ComplexPsShader_UsesInternalConstantBuffer
Count of Draws where fast-path couldn’t be used because pixel shader requires an internal constant buffer to be set.
DrawBundleExecutesWithContextRoll
Count of ID3D11DeviceContext::ExecuteCommandList calls of Draw Bundles where there had to be a context roll on the first Draw in the Bundle.
DrawBundleExecutesWithoutContextRoll
Count of ID3D11DeviceContext::ExecuteCommandList calls of Draw Bundles where a context roll on the first Draw in the Bundle was avoided.
This structure is output by ID3D11DeviceX::GetDriverStatistics.
This structure contains valid data only when the device is created with the D3D11_CREATE_DEVICE_VALIDATED or D3D11_CREATE_DEVICE_DEBUG flags. For reasons of performance, GetDriverStatistics always returns all zeroes for Retail or INSTRUMENTED (D3D11_CREATE_DEVICE_INSTRUMENTED) Direct3D devices.
The members of this structure are subject to change; see the declaration of this structure in d3d11_x.h.
Header: Declared in d3d11_x.h.
Library: Use d3d11_x.lib.