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 です。 ただし、ピクセル シェーダーの場合、この値は、スタンプ内の 4 つのピクセルのうち、トレースのターゲットであるピクセルを示します。 スタンプ内の他のピクセルのトレースを調べて、派生計算がどのように発生したかを判断できます。 この決定を行うには、トレース間でレジスタを関連付けます。

NumTraceSteps

トレースのステップの合計数。 この番号は、すべてのスタンプ呼び出しで同じです。

InputMask[32]

各入力 v# レジスタのコンポーネント トレース マスク。 D3D11_TRACE_COMPONENT_MASKの詳細については、「 D3D11_TRACE_VALUE」を参照してください。

頂点シェーダー、ジオメトリ シェーダー、ピクセル シェーダー、ハル シェーダー、ドメイン シェーダーの場合、有効な範囲は [0..31] です。 コンピューティング シェーダーの場合、このメンバーは適用されません。 また、ジオメトリ シェーダーの入力は 2D インデックスが付けられます。 たとえば、v[vertex][attribute] とします。 この例では、[attribute] の範囲は [0..31] です。 [頂点] 軸は、 GSInputPrimitive メンバーによって決定されるすべての入力に対して同じサイズです。

同様に、ハル シェーダーとドメイン シェーダーの入力は 2D インデックスが付けられます。 たとえば、v[vertex][attribute] とします。 この例では、[attribute] の範囲は [0..15] です。 [頂点] 軸は、すべての入力で同じサイズです。

OutputMask[32]

各出力 o# レジスタのコンポーネント トレース マスク。 D3D11_TRACE_COMPONENT_MASKの詳細については、「 D3D11_TRACE_VALUE」を参照してください。

頂点シェーダーとジオメトリ シェーダーの場合、有効な範囲は [0..31] です。 ピクセル シェーダーの場合、有効な範囲は [0..7] です。 コンピューティング シェーダーの場合、このメンバーは適用されません。 ハル シェーダーの出力コントロール ポイントの場合、レジスタは 2D インデックスが付けられます。 たとえば、ocp[vertex][attribute] とします。 この例では、[attribute] の範囲は [0..31] です。 [頂点] 軸は、すべての入力で同じサイズです。

NumTemps

temp の数(つまり、宣言されている 4x32 ビット r# レジスタ)。

MaxIndexableTempIndex

宣言されているすべてのインデックス可能な temps x#[] の最大インデックス番号 #+1。 それらがまばらに宣言されている場合 (たとえば、x3[12] と x200[30] のみ)、この値は 201 (200+1) です。

IndexableTempSize[4096]

インデックス可能な各 temp x#[numTemps] の temp の数。 Temp は MaxIndexableTempIndex メンバーの値までしか持てない。

ImmediateConstantBufferSize

イミディエイト定数バッファー内にある 4x32 ビット値 (存在する場合) の数。

PixelPosition[4]

PixelCoverageMask[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
スタンプごとにカバーされる MSAA サンプルを示すマスク。 このカバレッジは、アルファ対カバレッジ、深度、ステンシル操作がピクセルで実行される前に発生します。 MSAA 以外の場合は、下位ビット (LSB) を調べます。 このマスクは、隣接するピクセルの派生をサポートするためにのみ実行されるピクセルの場合は 0 にすることができます。

PixelDiscardedMask[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
破棄されたサンプルを示すマスク。 ピクセル シェーダーがピクセル周波数で実行されている場合、"破棄" はすべてのサンプルをオフにします。 すべてのサンプルがオフの場合、次の 4 つのマスク メンバーも 0 になります。

PixelCoverageMaskAfterShader[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
対象となる MSAA サンプルを示すマスク。 MSAA 以外の場合は、LSB を調べます。

PixelCoverageMaskAfterA2CSampleMask[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
alpha-to-coverage+sampleMask の後、深度とステンシルの前にカバーされる MSAA サンプルを示すマスク。 MSAA 以外の場合は、LSB を調べます。

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
alpha-to-coverage+sampleMask+depth の後、ステンシルの前にカバーされる MSAA サンプルを示すマスク。 MSAA 以外の場合は、LSB を調べます。

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

メモ このメンバーはピクセル シェーダー専用の [stampIndex] です。
 
alpha-to-coverage+sampleMask+depth+ステンシルの後にカバーされる MSAA サンプルを示すマスク。 MSAA 以外の場合は、LSB を調べます。

PSOutputsDepth

このトレースが、oDepth レジスタを出力するピクセル シェーダー用かどうかを示す 値です。 TRUE は、ピクセル シェーダーが oDepth レジスタを出力することを示します。それ以外の場合は FALSE。

PSOutputsMask

このトレースが、oMask レジスタを出力するピクセル シェーダー用かどうかを示す 値です。 TRUE は、ピクセル シェーダーが oMask レジスタを出力することを示します。それ以外の場合は FALSE。

GSInputPrimitive

ジオメトリ シェーダー入力 プリミティブの種類を識別するD3D11_TRACE_GS_INPUT_PRIMITIVE型指定された値。 つまり、この値は{point、line、triangle、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 [デスクトップ アプリのみ]
Header d3d11shadertracing.h

こちらもご覧ください

ID3D11ShaderTrace::GetTraceStats

シェーダー構造体