From f96a3fea6704da866e96e453f722a951c214ba28 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 18 Mar 2024 16:41:40 -0700 Subject: Fix SPIRV for mesh shaders, checks for invalid target code&recursion. (#3788) * Fix #3780. * Fixers #3781. * Add test for #3781. * Diagnose error on unsupported builtin intrinsic types. * Add check for recursion. * Fix. * Fix. * Fix recursion detection. * Fix. * Fix. * Fix recursion logic. * More fix. --- source/slang/slang-emit.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-emit.cpp') diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index ee38996e6..649858e51 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -8,6 +8,7 @@ #include "slang-ir-any-value-inference.h" #include "slang-ir-bind-existentials.h" #include "slang-ir-byte-address-legalize.h" +#include "slang-ir-check-unsupported-inst.h" #include "slang-ir-collect-global-uniforms.h" #include "slang-ir-cleanup-void.h" #include "slang-ir-composite-reg-to-mem.h" @@ -1061,7 +1062,9 @@ Result linkAndOptimizeIR( outLinkedIR.metadata = metadata; - return SLANG_OK; + checkUnsupportedInst(codeGenContext->getTargetReq(), irModule, sink); + + return sink->getErrorCount() == 0 ? SLANG_OK : SLANG_FAIL; } SlangResult CodeGenContext::emitEntryPointsSourceFromIR(ComPtr& outArtifact) -- cgit v1.2.3