Invariant keyword support Added support for the invariant keyword in the parser. Also made sure all in/out types were handled properly in OutputASM.cpp. Change-Id: I40f0bc9caf5bccc691aa60dfaa90bed5d1d7d238 Reviewed-on: https://swiftshader-review.googlesource.com/3663 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/compiler/ParseHelper.cpp b/src/OpenGL/compiler/ParseHelper.cpp index f27486e..2fa4512 100644 --- a/src/OpenGL/compiler/ParseHelper.cpp +++ b/src/OpenGL/compiler/ParseHelper.cpp
@@ -1053,6 +1053,24 @@ return false; } +void TParseContext::es3InvariantErrorCheck(const TQualifier qualifier, const TSourceLoc &invariantLocation) +{ + switch(qualifier) + { + case EvqVaryingOut: + case EvqSmoothOut: + case EvqFlatOut: + case EvqCentroidOut: + case EvqVertexOut: + case EvqFragmentOut: + break; + default: + error(invariantLocation, "Only out variables can be invariant.", "invariant"); + recover(); + break; + } +} + bool TParseContext::supportsExtension(const char* extension) { const TExtensionBehavior& extbehavior = extensionBehavior();