我们可以使用 utils.glsl2spv 规则将 GLSL/HLSL 着色器编译为 SPIR-V。
add_rules("mode.debug", "mode.release")
add_requires("glslang", {configs = {binaryonly = true}})
target("test")
set_kind("binary")
add_rules("utils.glsl2spv", {bin2c = true})
add_files("src/*.c")
add_files("src/*.glsl")
add_packages("glslang")
我们也可以使用 utils.hlsl2spv 规则来编译 HLSL 到 SPIR-V。
add_rules("mode.debug", "mode.release")
add_requires("directxshadercompiler", {configs = {binaryonly = true}})
target("test")
set_kind("binary")
add_rules("utils.hlsl2spv", {bin2c = true})
add_files("src/*.c")
add_files("src/*.hlsl")
add_packages("directxshadercompiler")
默认情况下,该规则可能使用 bin2c 来嵌入 SPV 数据。我们可以切换到 bin2obj 模式以在处理大型着色器时获得更好的性能:
add_rules("mode.debug", "mode.release")
add_requires("glslang", {configs = {binaryonly = true}})
target("test")
set_kind("binary")
add_rules("utils.glsl2spv", {bin2obj = true})
add_files("src/*.c")
add_files("src/*.glsl")
add_packages("glslang")