summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-03-13 17:27:35 +0800
committerGitHub <[email protected]>2022-03-13 17:27:35 +0800
commitb8d08294e7ea773ec6aa877e06844ab5024f9a5e (patch)
treeaba2ee42059903193c838c64704afba941eaa957
parenta853f8718c494fb69293a6088e581d255f27d5f7 (diff)
parenta63fb414d214fb08914a6f51dd8af8efefb9a483 (diff)
Merge pull request #2157 from Shan-Zhou/patch-3
Support mesh / raytracing shaders and customizable target environment
-rw-r--r--xmake/rules/utils/glsl2spv/xmake.lua7
1 files changed, 4 insertions, 3 deletions
diff --git a/xmake/rules/utils/glsl2spv/xmake.lua b/xmake/rules/utils/glsl2spv/xmake.lua
index faf655ec6..b7c772a2b 100644
--- a/xmake/rules/utils/glsl2spv/xmake.lua
+++ b/xmake/rules/utils/glsl2spv/xmake.lua
@@ -34,7 +34,7 @@
--
--
rule("utils.glsl2spv")
- set_extensions(".vert", ".frag", ".tesc", ".tese", ".geom", ".comp", ".glsl")
+ set_extensions(".vert", ".tesc", ".tese", ".geom", ".comp", ".frag", ".comp", ".mesh", ".task", ".rgen", ".rint", ".rahit", ".rchit", ".rmiss", ".rcall", ".glsl")
on_load(function (target)
local is_bin2c = target:extraconf("rules", "utils.glsl2spv", "bin2c")
if is_bin2c then
@@ -57,14 +57,15 @@ rule("utils.glsl2spv")
assert(glslangValidator or glslc, "glslangValidator or glslc not found!")
-- glsl to spv
+ local targetenv = target:extraconf("rules", "utils.glsl2spv", "targetenv") or "vulkan1.0"
local outputdir = target:extraconf("rules", "utils.glsl2spv", "outputdir") or path.join(target:autogendir(), "rules", "utils", "glsl2spv")
local spvfilepath = path.join(outputdir, path.filename(sourcefile_glsl) .. ".spv")
batchcmds:show_progress(opt.progress, "${color.build.object}generating.glsl2spv %s", sourcefile_glsl)
batchcmds:mkdir(outputdir)
if glslangValidator then
- batchcmds:vrunv(glslangValidator.program, {"-V", "-o", spvfilepath, sourcefile_glsl})
+ batchcmds:vrunv(glslangValidator.program, {"--target-env", targetenv, "-o", spvfilepath, sourcefile_glsl})
else
- batchcmds:vrunv(glslc.program, {"-o", spvfilepath, sourcefile_glsl})
+ batchcmds:vrunv(glslc.program, {"--target-env", targetenv, "-o", spvfilepath, sourcefile_glsl})
end
-- do bin2c