https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-part1:
本主题涵盖用于 Shader Models 2 至 5.1 的 FXC.EXE 编译器。对于 Shader Model 6,您可以使用 DXC.EXE,这在使用 dxc.exe 和 dxcompiler.dll 中进行了记录。当为 HLSL 属性页配置选择 Shader Model 6 时,Visual Studio 将自动使用 DXC.EXE。
我有一个 hlsl 文件,Visual Studio 在构建时将其编译为
.cso
文件。根据文档,如果我在文件属性中指定着色器模型 5 fxc
,Visual Studio 会自动使用 /T cs_5_0
。
但是我需要使用
/HV 2021
,这需要dxc
。如何让 Visual Studio 将 dxc
与 /T cs_5_0
一起使用?有我可以设置的属性吗?
ChatGPT 希望使用自定义构建步骤。
我尝试将
Item Type
从 HLSL Compiler
更改为 Custom Build Tool
但这导致 CreateComputePipelineState
失败并出现 0x80004005 : 'Unspecified error'
...
好像DXC与着色器模型不兼容< 6. Would have been nice if they gave a warning...
-T <profile> Set target profile.
<profile>: ps_6_0, ps_6_1, ps_6_2, ps_6_3, ps_6_4, ps_6_5, ps_6_6,
vs_6_0, vs_6_1, vs_6_2, vs_6_3, vs_6_4, vs_6_5, vs_6_6,
cs_6_0, cs_6_1, cs_6_2, cs_6_3, cs_6_4, cs_6_5, cs_6_6,
gs_6_0, gs_6_1, gs_6_2, gs_6_3, gs_6_4, gs_6_5, gs_6_6,
ds_6_0, ds_6_1, ds_6_2, ds_6_3, ds_6_4, ds_6_5, ds_6_6,
hs_6_0, hs_6_1, hs_6_2, hs_6_3, hs_6_4, hs_6_5, hs_6_6,
lib_6_3, lib_6_4, lib_6_5, lib_6_6,