diff options
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/lower.cpp | 11 | ||||
| -rw-r--r-- | source/slang/options.cpp | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/source/slang/lower.cpp b/source/slang/lower.cpp index 7a12fc3b7..70c153902 100644 --- a/source/slang/lower.cpp +++ b/source/slang/lower.cpp @@ -2833,6 +2833,17 @@ struct LoweringVisitor // due to, e.g., bindless textures. shouldDesugarTupleTypes = true; } + else if( shared->compileRequest->compileFlags & SLANG_COMPILE_FLAG_SPLIT_MIXED_TYPES ) + { + // If the user is directly asking us to do this transformation, + // then obviously we need to do it. + // + // TODO: The way this is defined here means it will even apply to user + // HLSL code (not just code written in Slang). We may want to + // reconsider that choice, and only split things that originated in Slang. + // + shouldDesugarTupleTypes = true; + } bool isResultATupleType = false; bool hasAnyNonTupleFields = false; diff --git a/source/slang/options.cpp b/source/slang/options.cpp index a360695f2..0e329ccd2 100644 --- a/source/slang/options.cpp +++ b/source/slang/options.cpp @@ -254,6 +254,10 @@ struct OptionsParser //else if (argStr == "-no-checking") flags |= SLANG_COMPILE_FLAG_NO_CHECKING; + else if(argStr == "-split-mixed-types" ) + { + flags |= SLANG_COMPILE_FLAG_SPLIT_MIXED_TYPES; + } else if (argStr == "-backend" || argStr == "-target") { String name = tryReadCommandLineArgument(arg, &argCursor, argEnd); |
