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]
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、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_INPUT_PRIMITIVE_ID_REGISTER値は、ID3D11ShaderTrace::GetInitialRegisterContents メソッドの呼び出しによって使用できます。
DSInputPatchConstantMask[32]
ID3D11ShaderTrace::GetInitialRegisterContents メソッドを呼び出すと、次の値を使用できます。
注釈
この API には、Windows 8用の Windows ソフトウェア開発キット (SDK) が必要です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
Header | d3d11shadertracing.h |