summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-03-18 16:41:40 -0700
committerGitHub <noreply@github.com>2024-03-18 16:41:40 -0700
commitf96a3fea6704da866e96e453f722a951c214ba28 (patch)
treee14aafe59eca98992593803db19cc3dff0ae1fe1 /source/slang/slang-emit.cpp
parent7f6e95917bb1929115b4cffa2ed9035aa8710ee4 (diff)
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.
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp5
1 files changed, 4 insertions, 1 deletions
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<IArtifact>& outArtifact)