The global invariant pragma must not leak across compilations.
BUG=chromium:625363
TEST=conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html
Change-Id: Ie8d38e44837fc87bb4c94e76e779ad41e8b79957
Reviewed-on: https://chromium-review.googlesource.com/358203
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
index 3c7742a..73420d3 100644
--- a/src/compiler/translator/Compiler.cpp
+++ b/src/compiler/translator/Compiler.cpp
@@ -246,10 +246,7 @@
if (success)
{
mPragma = parseContext.pragma();
- if (mPragma.stdgl.invariantAll)
- {
- symbolTable.setGlobalInvariant();
- }
+ symbolTable.setGlobalInvariant(mPragma.stdgl.invariantAll);
root = parseContext.getTreeRoot();
root = intermediate.postProcess(root);
diff --git a/src/compiler/translator/SymbolTable.h b/src/compiler/translator/SymbolTable.h
index 6de7c98..a3ca98f 100644
--- a/src/compiler/translator/SymbolTable.h
+++ b/src/compiler/translator/SymbolTable.h
@@ -469,8 +469,7 @@
mInvariantVaryings.count(originalName) > 0);
}
- void setGlobalInvariant() { mGlobalInvariant = true; }
- bool getGlobalInvariant() const { return mGlobalInvariant; }
+ void setGlobalInvariant(bool invariant) { mGlobalInvariant = invariant; }
static int nextUniqueId()
{