Forbid shared and packed layouts in WebGL
WebGL 2.0 spec section 5.25 specifies this.
BUG=angleproject:1542
TEST=WebGL 2 conformance tests
Change-Id: Ic5758bc0e767a8e6dd032e42c0a69bcae06381c4
Reviewed-on: https://chromium-review.googlesource.com/399682
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index 79b2b06..70c0c27 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -2865,10 +2865,18 @@
if (qualifierType == "shared")
{
+ if (IsWebGLBasedSpec(mShaderSpec))
+ {
+ error(qualifierTypeLine, "Only std140 layout is allowed in WebGL", "shared");
+ }
qualifier.blockStorage = EbsShared;
}
else if (qualifierType == "packed")
{
+ if (IsWebGLBasedSpec(mShaderSpec))
+ {
+ error(qualifierTypeLine, "Only std140 layout is allowed in WebGL", "packed");
+ }
qualifier.blockStorage = EbsPacked;
}
else if (qualifierType == "std140")