共用方式為


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]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
遮罩,指出每個戳記涵蓋哪些 MSAA 範例。 此涵蓋範圍會在像素上執行 Alpha 到涵蓋範圍、深度和樣板作業之前發生。 針對非 MSAA,請檢查 LSB) 最小有效位 (。 此遮罩可以是 0,僅適用於僅執行以支持鄰近圖元的衍生專案。

PixelDiscardedMask[4]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
表示已捨棄樣本的遮罩。 如果圖元著色器以像素頻率執行,「捨棄」會關閉所有樣本。 如果所有樣本都關閉,下列四個遮罩成員也是 0。

PixelCoverageMaskAfterShader[4]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
表示涵蓋之 MSAA 範例的遮罩。 針對非 MSAA,請檢查 LSB。

PixelCoverageMaskAfterA2CSampleMask[4]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
遮罩,表示在Alpha到涵蓋範圍+sampleMask之後所涵蓋的 MSAA 樣本,但在深度和樣板之前。 針對非 MSAA,請檢查 LSB。

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
遮罩,表示在 Alpha 到涵蓋範圍+sampleMask+depth 之後所涵蓋的 MSAA 樣本,但在樣板之前。 針對非 MSAA,請檢查 LSB。

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

注意 此成員僅適用於圖元著色器 [stampIndex]。
 
遮罩,表示在 Alpha 到涵蓋範圍+sampleMask+depth+樣本之後所涵蓋的 MSAA 樣本。 針對非 MSAA,請檢查 LSB。

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_COMPONENT_MASK的相關信息,請參閱 D3D11_TRACE_VALUE

D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER值可透過呼叫ID3D11ShaderTrace::GetInitialRegisterContents方法取得。

DSInputPatchConstantMask[32]

注意 此成員僅適用於網域著色器。
 
網域著色器輸入的元件追蹤遮罩。 如需D3D11_TRACE_COMPONENT_MASK的相關信息,請參閱 D3D11_TRACE_VALUE

下列值可透過呼叫 ID3D11ShaderTrace::GetInitialRegisterContents 方法取得:

備註

此 API 需要適用於 Windows 8 的 Windows 軟體開發工具包 (SDK) 。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
標頭 d3d11shadertracing.h

另請參閱

ID3D11ShaderTrace::GetTraceStats

著色器結構