D3D11_TRACE_STATS 結構 (d3d11shadertracing.h)
指定追蹤的相關統計數據。
語法
typedef struct D3D11_TRACE_STATS {
D3D11_SHADER_TRACE_DESC TraceDesc;
UINT8 NumInvocationsInStamp;
UINT8 TargetStampIndex;
UINT NumTraceSteps;
D3D11_TRACE_COMPONENT_MASK InputMask[32];
D3D11_TRACE_COMPONENT_MASK OutputMask[32];
UINT16 NumTemps;
UINT16 MaxIndexableTempIndex;
UINT16 IndexableTempSize[4096];
UINT16 ImmediateConstantBufferSize;
UINT PixelPosition[4][2];
UINT64 PixelCoverageMask[4];
UINT64 PixelDiscardedMask[4];
UINT64 PixelCoverageMaskAfterShader[4];
UINT64 PixelCoverageMaskAfterA2CSampleMask[4];
UINT64 PixelCoverageMaskAfterA2CSampleMaskDepth[4];
UINT64 PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4];
BOOL PSOutputsDepth;
BOOL PSOutputsMask;
D3D11_TRACE_GS_INPUT_PRIMITIVE GSInputPrimitive;
BOOL GSInputsPrimitiveID;
D3D11_TRACE_COMPONENT_MASK HSOutputPatchConstantMask[32];
D3D11_TRACE_COMPONENT_MASK DSInputPatchConstantMask[32];
} D3D11_TRACE_STATS;
成員
TraceDesc
描述此結構指定統計數據之著色器追蹤物件的 D3D11_SHADER_TRACE_DESC 結構。
NumInvocationsInStamp
追蹤戳記中的呼叫數目。 這個值一律為 1,適用於頂點著色器、殼層著色器、定義域著色器、幾何著色器和計算著色器。 此值為像素著色器 4。
TargetStampIndex
目標戳記的索引。 這個值一律為 0,適用於頂點著色器、殼層著色器、定義域著色器、幾何著色器和計算著色器。 不過,對於圖元著色器,這個值表示戳記中四個圖元的哪一個是追蹤的目標。 您可以檢查戳記中其他像素的追蹤,以判斷衍生計算的發生方式。 您可以藉由將追蹤之間的緩存器相互關聯,來做出此判斷。
NumTraceSteps
追蹤的步驟總數。 所有戳記呼叫的這個數位都相同。
InputMask[32]
每個輸入 v# 快取器的元件追蹤遮罩。 如需D3D11_TRACE_COMPONENT_MASK的相關信息,請參閱 D3D11_TRACE_VALUE。
對於頂點著色器、幾何著色器、圖元著色器、殼層著色器和網域著色器,有效範圍為 [0..31]。 對於計算著色器,此成員不適用。 此外,幾何著色器的輸入會以 2D 編製索引。 例如,請考慮 v[頂點][屬性]。 在此範例中,[attribute] 的範圍是 [0..31]。 所有輸入的 [頂點] 軸大小都相同,由 GSInputPrimitive 成員決定。
同樣地,殼層著色器和網域著色器的輸入會以 2D 編製索引。 例如,請考慮 v[頂點][屬性]。 在此範例中,[attribute] 的範圍是 [0..15]。 所有輸入的 [頂點] 軸大小都相同。
OutputMask[32]
每個輸出 o# 快取器的元件追蹤遮罩。 如需D3D11_TRACE_COMPONENT_MASK的相關信息,請參閱 D3D11_TRACE_VALUE。
對於頂點著色器和幾何著色器,有效範圍為 [0..31]。 對於圖元著色器,有效範圍是 [0..7]。 對於計算著色器,此成員不適用。 針對殼層著色器的輸出控制點,緩存器會編製 2D 索引。 例如,請考慮 ocp[頂點][屬性]。 在此範例中,[attribute] 的範圍是 [0..31]。 所有輸入的 [頂點] 軸大小都相同。
NumTemps
暫存的數目,也就是宣告的 4x32 位 r# 快取器數目。
MaxIndexableTempIndex
宣告的所有可編製索引暫存 x#[] 的索引上限 #+1。 例如,如果它們宣告為疏鬆 (,x3[12] 和 x200[30] 僅) ,則此值為 201 (200+1) 。
IndexableTempSize[4096]
每個可索引暫存 temp x#[numTemps] 的暫存數目。 您只能有 MaxIndexableTempIndex 成員中的值。
ImmediateConstantBufferSize
如果即時常數緩衝區中有任何) , (4x32 位值的數目。
PixelPosition[4]
PixelCoverageMask[4]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
PSOutputsDepth
值,指定這個追蹤是否適用於輸出 oDepth 快取器的圖元著色器。 TRUE 表示圖元著色器輸出 oDepth 快取器;否則為 FALSE。
PSOutputsMask
值,指定這個追蹤是否適用於輸出 oMask 快取器的圖元著色器。 TRUE 表示圖元著色器會輸出 oMask 快取器;否則為 FALSE。
GSInputPrimitive
識別幾何著色器輸入基本類型的 D3D11_TRACE_GS_INPUT_PRIMITIVE型別值。 也就是說,此值會分別識別:{point、line、三角形、line_adj、triangle_adj} 或頂點數目:1、2、3、4 或 6。 例如,針對一行,輸入 v[][#] 實際上是 v[2][#]。 針對頂點著色器和像素著色器,請將此成員設定為 D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED。
GSInputsPrimitiveID
值,指定這個追蹤是否適用於輸入 PrimitiveID 快取器的幾何著色器。 TRUE 表示幾何著色器輸入 PrimitiveID 快取器;否則為 FALSE。
HSOutputPatchConstantMask[32]
D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER值可透過呼叫ID3D11ShaderTrace::GetInitialRegisterContents方法取得。
DSInputPatchConstantMask[32]
下列值可透過呼叫 ID3D11ShaderTrace::GetInitialRegisterContents 方法取得:
備註
此 API 需要適用於 Windows 8 的 Windows 軟體開發工具包 (SDK) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
標頭 | d3d11shadertracing.h |