diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-check-shader.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/slang/slang-check-shader.cpp b/source/slang/slang-check-shader.cpp index d04c72e15..fab1d3502 100644 --- a/source/slang/slang-check-shader.cpp +++ b/source/slang/slang-check-shader.cpp @@ -537,9 +537,17 @@ void validateEntryPoint(EntryPoint* entryPoint, DiagnosticSink* sink) } else { - // Only attempt to error if a user adds to slangc either `-profile` or `-capability` - if ((target->getOptionSet().hasOption(CompilerOptionName::Capability) || - target->getOptionSet().hasOption(CompilerOptionName::Profile)) && + auto& targetOptionSet = target->getOptionSet(); + bool specificProfileRequested = + targetOptionSet.hasOption(CompilerOptionName::Profile) && + (targetOptionSet.getIntOption(CompilerOptionName::Profile) != + SLANG_PROFILE_UNKNOWN); + bool specificCapabilityRequested = + targetOptionSet.hasOption(CompilerOptionName::Capability) && + (targetOptionSet.getIntOption(CompilerOptionName::Capability) != + SLANG_CAPABILITY_UNKNOWN); + // Only attempt to error if a specific profile or capability is requested + if ((specificCapabilityRequested || specificProfileRequested) && targetCaps.atLeastOneSetImpliedInOther( entryPointFuncDecl->inferredCapabilityRequirements) == CapabilitySet::ImpliesReturnFlags::NotImplied) |
