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 |