Semantics: 'invocations' defaults to 1, not 0.

'invocations' was using 0 as the "shader never set" flag and as the
default. Formalize this and explicit set to 1 and link time.
This commit is contained in:
John Kessenich 2015-12-13 10:59:17 -07:00
parent 04bb8a01d6
commit 61d9fb9048
13 changed files with 34 additions and 26 deletions

View file

@ -359,6 +359,10 @@ void TIntermediate::finalCheck(TInfoSink& infoSink)
// overlap/alias/missing I/O, etc.
inOutLocationCheck(infoSink);
// invocations
if (invocations == TQualifier::layoutNotSet)
invocations = 1;
if (inIoAccessed("gl_ClipDistance") && inIoAccessed("gl_ClipVertex"))
error(infoSink, "Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)");
@ -561,7 +565,7 @@ void TIntermediate::inOutLocationCheck(TInfoSink& infoSink)
if (profile == EEsProfile) {
if (numFragOut > 1 && fragOutWithNoLocation)
error(infoSink, "when more than one fragment shader output, all must have location qualifiers");
}
}
}
TIntermSequence& TIntermediate::findLinkerObjects() const