summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-compiler.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-09-02 12:21:28 -0700
committerGitHub <noreply@github.com>2020-09-02 12:21:28 -0700
commita2a7c4d988b2b7126130d9dcbe4ec94e1ce8424b (patch)
tree5e9559abd79b9e2f7d4f22f65a77daaaae3eed16 /source/slang/slang-compiler.cpp
parent7f567df6937b33c653c424af3abb20d32eb80561 (diff)
Allow unspecialized existential shader parameters (dynamic dispatch). (#1529)
* Allow unspecialized existential shader parameters (dynamic dispatch). * Fixes. * Fixes * disable cuda test
Diffstat (limited to 'source/slang/slang-compiler.cpp')
-rwxr-xr-xsource/slang/slang-compiler.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/slang/slang-compiler.cpp b/source/slang/slang-compiler.cpp
index 53e529cc7..9b567a7d7 100755
--- a/source/slang/slang-compiler.cpp
+++ b/source/slang/slang-compiler.cpp
@@ -2483,13 +2483,14 @@ SlangResult dissassembleDXILUsingDXC(
BackEndCompileRequest* compileRequest,
EndToEndCompileRequest* endToEndReq)
{
- // If we are about to generate output code, but we still
+ // When dynamic dispatch is disabled, the program must
+ // be fully specialized by now. So we check if we still
// have unspecialized generic/existential parameters,
- // then there is a problem.
+ // and report them as an error.
//
auto program = compileRequest->getProgram();
auto specializationParamCount = program->getSpecializationParamCount();
- if( specializationParamCount != 0 )
+ if (compileRequest->disableDynamicDispatch && specializationParamCount != 0)
{
auto sink = compileRequest->getSink();