Skip to content

Commit 5450a49

Browse files
authored
Add emit logic for requirePrelude inst. (#5735)
1 parent 0c7801b commit 5450a49

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

source/slang/slang-emit-c-like.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -2948,6 +2948,13 @@ void CLikeSourceEmitter::defaultEmitInstExpr(IRInst* inst, const EmitOpInfo& inO
29482948
m_writer->emit(")");
29492949
break;
29502950
}
2951+
case kIROp_RequirePrelude:
2952+
{
2953+
auto preludeTextInst = as<IRStringLit>(inst->getOperand(0));
2954+
if (preludeTextInst)
2955+
m_requiredPreludes.add(preludeTextInst);
2956+
break;
2957+
}
29512958
case kIROp_RequireGLSLExtension:
29522959
{
29532960
break; // should already have set requirement; case covered for empty intrinsic block

tests/interop/require-prelude.slang

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//TEST:SIMPLE(filecheck=CHECK): -target glsl -entry computeMain -stage compute
2+
//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry computeMain -stage compute
3+
//TEST:SIMPLE(filecheck=CHECK): -target metal
4+
5+
// CHECK: #[compute]
6+
7+
[numthreads(1,1,1)]
8+
void computeMain()
9+
{
10+
__requirePrelude(R"(#[compute])");
11+
}

0 commit comments

Comments
 (0)