D3DDisassemble11Trace 函数 (d3d11shadertracing.h)

) 着色器跟踪步骤指定的代码, (HLSL 反汇编编译的 Microsoft 高级着色器语言部分。

语法

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 的不同之处在于,D3DDisassemble11Trace 提供的执行跟踪基于着色器跟踪信息,而不是 D3DDisassemble 执行的已编译着色器静态反汇编。

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d3d11shadertracing.h
DLL D3D11SDKLayers.dll;D3D11_1SDKLayers.dll;D3D11_2SDKLayers.dll

另请参阅

着色器函数