D3DDisassemble11Trace 函式 (d3d11shadertracing.h)
反組譯已編譯 Microsoft 高階著色器語言的區段, (HLSL) 著色器追蹤步驟所指定的程式代碼。
語法
HRESULT D3DDisassemble11Trace(
[in] LPCVOID pSrcData,
[in] SIZE_T SrcDataSize,
[in] ID3D11ShaderTrace *pTrace,
[in] UINT StartStep,
[in] UINT NumSteps,
[in] UINT Flags,
[out] ID3D10Blob **ppDisassembly
);
參數
[in] pSrcData
類型: LPCVOID
已編譯著色器數據的指標。
[in] SrcDataSize
類型: SIZE_T
pSrcData 指向之內存區塊的大小,以位元組為單位。
[in] pTrace
類型: ID3D11ShaderTrace*
著色器追蹤信息物件的ID3D11ShaderTrace介面指標。
[in] StartStep
類型: UINT
D3DDisassemble11Trace 啟動反組譯碼之追蹤中的步驟數目。
[in] NumSteps
類型: UINT
要反組譯的追蹤步驟數目。
[in] Flags
類型: UINT
下列旗標的零或多個組合,使用位 OR 運算結合。 產生的值會指定 D3DDisassemble11Trace 如何反組譯編譯的著色器數據。
旗標 | 描述 |
---|---|
D3D_DISASM_ENABLE_COLOR_CODE (0x01) | 啟用色彩代碼的輸出。 |
D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS (0x02) | 啟用預設值的輸出。 |
D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING (0x04) | 啟用指示編號。 |
D3D_DISASM_ENABLE_INSTRUCTION_CYCLE (0x08) | 沒有影響。 |
D3D_DISASM_DISABLE_DEBUG_INFO (0x10) | 停用偵錯信息的輸出。 |
D3D_DISASM_ENABLE_INSTRUCTION_OFFSET (0x20) | 啟用指令位移的輸出。 |
D3D_DISASM_INSTRUCTION_ONLY (0x40) |
在 D3DDisassemble11Trace 中啟用每個步驟指令周期的輸出。 此旗標類似於D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING和D3D_DISASM_ENABLE_INSTRUCTION_OFFSET旗標。
此旗標在 D3DDisassembleRegion 函式中沒有任何作用。 迴圈資訊來自追蹤;因此,迴圈資訊只能在追蹤反組譯碼中使用。 |
[out] ppDisassembly
類型: ID3D10Blob**
緩衝區的指標,接收存取反組譯碼 HLSL 程式代碼的 ID3DBlob 介面。
傳回值
類型: HRESULT
這個方法會傳回 HRESULT 錯誤碼。
備註
D3DDisassemble11Trace 會逐步解說著色器追蹤的步驟,並針對以步驟的指示索引為基礎的每個步驟輸出適當的反組譯碼。 反組譯碼會以追蹤中的緩存值資訊加上批注。 D3DDisassemble11Trace 的行為與 D3DDisassemble 不同,不同於 D3DDisassemble 所執行的已編譯著色器靜態反組譯碼,D3DDisassemble11Trace 會根據著色器追蹤資訊提供執行追蹤。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d3d11shadertracing.h |
Dll | D3D11SDKLayers.dll;D3D11_1SDKLayers.dll;D3D11_2SDKLayers.dll |