diff options
Diffstat (limited to 'source/slang/slang-check-shader.cpp')
| -rw-r--r-- | source/slang/slang-check-shader.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/source/slang/slang-check-shader.cpp b/source/slang/slang-check-shader.cpp index a8c3aee15..4547281e1 100644 --- a/source/slang/slang-check-shader.cpp +++ b/source/slang/slang-check-shader.cpp @@ -448,6 +448,7 @@ void validateEntryPoint(EntryPoint* entryPoint, DiagnosticSink* sink) } bool canHaveVaryingInput = false; + bool shouldWarnOnNonUniformParam = true; switch (stage) { case Stage::Vertex: @@ -462,6 +463,9 @@ void validateEntryPoint(EntryPoint* entryPoint, DiagnosticSink* sink) case Stage::Domain: canHaveVaryingInput = true; break; + case Stage::Dispatch: + shouldWarnOnNonUniformParam = false; + break; default: break; } @@ -499,10 +503,13 @@ void validateEntryPoint(EntryPoint* entryPoint, DiagnosticSink* sink) // support varying input/output. We will automatically convert it to a 'uniform' parameter, // and diagnose a warning. addModifier(param, getCurrentASTBuilder()->create<HLSLUniformModifier>()); - sink->diagnose( - param, - Diagnostics::nonUniformEntryPointParameterTreatedAsUniform, - param->getName()); + if (shouldWarnOnNonUniformParam) + { + sink->diagnose( + param, + Diagnostics::nonUniformEntryPointParameterTreatedAsUniform, + param->getName()); + } } for (auto target : linkage->targets) |
