将 DXBC 转换为 DXIL(DirectX 字节码到 DirectX 中间语言)

Convert DXBC to DXIL (DirectX Bytecode to DirectX Intermediate Language)

Microsoft 的开源 DirectX Shader Compiler 描述了一种用于 HLSL 着色器的新中间语言 (IL) 的格式,称为 DXIL。

文档引用了从以前的 HLSL IL(称为 DXBC)到新 DXIL 的转换器:https://github.com/Microsoft/DirectXShaderCompiler/blob/master/docs/DXIL.rst

但是,我无法找到引用的 dxbc2dxil 工具,或任何其他将 DXBC 转换为 DXIL 的方法。我已尝试将 DXBC 文件传递​​给 DirectX Shader Compiler 项目中的各种工具,但 none 已接受纯 DXBC 作为输入。

目前有没有办法从旧的 DXBC 获取 DXIL?

我对这份文档的理解是微软以后只负责向厂商的驱动提供DXIR。 DXBC2DXIL 是 Microsoft 内部专用模块。

据我所知,DirectX Shader Compiler 存储库中没有任何内容能够将 DXBC IL 转换为 DXIL。

查看此项目以获取有效 hack:https://github.com/Nukem9/Dxbc2Dxil

他们使用来自 win10 的 "dxilconv.dll" 创建未记录的 DXBC->DXIL 转换器的实例。