如何在Shader Model 5上使用DXC?

问题描述 投票:0回答:1

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'
...

visual-studio directx hlsl
1个回答
0
投票

好像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,
© www.soinside.com 2019 - 2024. All rights reserved.