Share via


D3D11_TRACE_STEP 結構 (d3d11shadertracing.h)

描述追蹤步驟,這是指令。

語法

typedef struct D3D11_TRACE_STEP {
  UINT                             ID;
  BOOL                             InstructionActive;
  UINT8                            NumRegistersWritten;
  UINT8                            NumRegistersRead;
  D3D11_TRACE_MISC_OPERATIONS_MASK MiscOperations;
  UINT                             OpcodeType;
  UINT64                           CurrentGlobalCycle;
} D3D11_TRACE_STEP;

成員

ID

識別指令的數位,做為著色器中存在之可執行指令的位移。

HLSL 偵錯資訊使用相同的慣例。 因此,HLSL 指令會與一組識別碼相符。 然後,您可以將識別碼對應至可向使用者顯示的反組譯字串。

InstructionActive

值,指定指令是否作用中。 如果發生問題,此值為 TRUE;因此,您應該剖析此結構中的其他資料。 否則,不會發生任何事;例如,如果指令因為流程式控制制而停用,即使戳記中的其他圖元執行它也一樣。

NumRegistersWritten

寫入指令的暫存器數目。 暫存器的範圍是 [0...NumRegistersWritten-1]。 您可以將暫存器號碼傳遞至ID3D11ShaderTrace::GetWrittenRegisterwritenRegisterIndex參數,以擷取個別的寫入暫存器資訊。

NumRegistersRead

讀取來源指令的暫存器數目。 暫存器的範圍是 [0...NumRegistersRead-1]。 您可以將暫存器號碼傳遞至ID3D11ShaderTrace::GetReadRegisterreadRegisterIndex參數,以擷取個別的讀取註冊資訊。

MiscOperations

使用位 OR 運算結合的下列值組合。 產生的值會指定追蹤其他作業的遮罩。 當著色器作業未寫入任何輸出暫存器時,這些旗標表示著色器作業的可能效果。 例如,「add r0, r1 ,r2」 作業會寫入 r0 暫存器;因此,您可以查看追蹤寫入暫存器的資訊,以判斷作業變更的內容。 不過,某些著色器指令不會寫入任何暫存器,但仍會影響這些暫存器。

旗標 描述
D3D11_TRACE_MISC_GS_EMIT (0x1) 作業是幾何著色器資料發出。
D3D11_TRACE_MISC_GS_CUT (0x2) 作業是幾何著色器帶形剪下。
D3D11_TRACE_MISC_PS_DISCARD (0x4) 作業是圖元著色器捨棄,會拒絕圖元。
D3D11_TRACE_MISC_GS_EMIT_STREAM (0x8) 與D3D11_TRACE_MISC_GS_EMIT相同,但 著色器模型 5 除外,您可以在其中指定要發出的特定資料流程。
D3D11_TRACE_MISC_GS_CUT_STREAM (0x10) 與D3D11_TRACE_MISC_GS_CUT相同,但 著色器模型 5 除外,您可以在其中指定要切割的特定資料流程。
D3D11_TRACE_MISC_HALT (0x20) 作業是著色器停止指令,可停止著色器執行。 HLSL 中止 內建函式會導致停止。
D3D11_TRACE_MISC_MESSAGE (0x40) 作業是著色器訊息輸出,可記錄到資訊佇列。 HLSL printferrorf 內建函式會造成訊息。
 

如果 NumRegistersWritten 成員為 0,請檢查此成員,雖然此成員仍然可能是空的 (0) 。

OpcodeType

指定指令類型的數位 (例如 ,新增mul等) 。 如果您不知道指令類型的數位,可以忽略此成員。 此成員會提供一些便利性,但代價是略過追蹤。 您可以使用 識別碼 成員,並對應回原始著色器程式碼,以擷取指示的完整資訊。

CurrentGlobalCycle

此步驟的全域週期計數。 您可以使用這個成員,透過多個同時追蹤相互關聯平行線程執行,例如計算著色器。

注意 執行中相同時間點的多個執行緒可能會記錄相同的 CurrentGlobalCycle
 

備註

此 API 需要適用于 Windows 8 的 Windows 軟體發展工具組 (SDK) 。

需求

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

另請參閱

著色器結構