0

这个话题听起来像是一个重复的问题,但我的问题是我的项目中没有包含任何 HLSL 文件。因此,我不能手动禁用/更改 dxc 编译器。不过,我添加了一个使用 CMake 的预构建命令来从 HLSL 文件生成 SPIR-V。编译项目时出现以下错误:

dxc 失败:SPIR-V CodeGen 不可用。请使用 -DENABLE_SPIRV_CODEGEN=ON 重新编译。

这意味着 Visual Studio 使用不支持 SPIR-V CodeGen 的内置 dxc。如何使用 CMake 明确告知要使用哪个 dxc 版本?

4

1 回答 1

0

明确指定使用 VulkanSDK 版本的 dxc 路径修复了问题

add_custom_command(
    TARGET ${target}
    PRE_BUILD
    COMMAND $ENV{VULKAN_SDK}/bin/dxc.exe -spirv -fvk-invert-y -T vs_6_0 -E ${vertexEntry} ${file} -Fo ${CMAKE_SOURCE_DIR}/Assets/${vertexEntry}.spv
    COMMAND $ENV{VULKAN_SDK}/bin/dxc.exe -spirv -T ps_6_0 -E ${fragmentEntry} ${file} -Fo ${CMAKE_SOURCE_DIR}/Assets/${fragmentEntry}.spv
)
于 2022-02-16T21:50:06.977 回答