summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit-glsl.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2023-01-18 00:01:58 -0500
committerGitHub <noreply@github.com>2023-01-17 21:01:58 -0800
commita0994a8da142e54362e9ec1fdb5e5abc708ec3d2 (patch)
tree363e75df065338fdb1da29286d932733fdb6b3c4 /source/slang/slang-emit-glsl.cpp
parent1a486813ef0bc7f7a2eb6eaeec2921fd71a2bd05 (diff)
Add `set` to spirv_instruction (#2597)
Diffstat (limited to 'source/slang/slang-emit-glsl.cpp')
-rw-r--r--source/slang/slang-emit-glsl.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/slang/slang-emit-glsl.cpp b/source/slang/slang-emit-glsl.cpp
index b1b92e7e7..13eb6e2f6 100644
--- a/source/slang/slang-emit-glsl.cpp
+++ b/source/slang/slang-emit-glsl.cpp
@@ -1999,6 +1999,22 @@ void GLSLSourceEmitter::emitFuncDecorationImpl(IRDecoration* decoration)
m_writer->emit("spirv_instruction(id = ");
emitSimpleValue(decoration->getOperand(0));
+
+ if (decoration->getOperandCount() >= 2)
+ {
+ if (auto stringLit = as<IRStringLit>(decoration->getOperand(1)))
+ {
+ m_writer->emit(toSlice(", set = "));
+
+ auto handler = StringEscapeUtil::getHandler(StringEscapeUtil::Style::Cpp);
+
+ StringBuilder buf;
+ StringEscapeUtil::appendQuoted(handler, stringLit->getStringSlice(), buf);
+
+ m_writer->emitRawTextSpan(buf.begin(), buf.end());
+ }
+ }
+
m_writer->emit(")\n");
}
else