Enable shader validation with WebGL compatibility extension.
The change configures shaders to be of a compatible spec upon creation.
BUG=angleproject:1523
Change-Id: Id345d0b8f0abad8ed3c4fb3117d0fdfeab9fea53
Reviewed-on: https://chromium-review.googlesource.com/405778
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Compiler.cpp b/src/libANGLE/Compiler.cpp
index b745888..bc57042 100644
--- a/src/libANGLE/Compiler.cpp
+++ b/src/libANGLE/Compiler.cpp
@@ -23,27 +23,29 @@
// ShFinalize.
size_t activeCompilerHandles = 0;
-ShShaderSpec SelectShaderSpec(GLint majorVersion, GLint minorVersion)
+ShShaderSpec SelectShaderSpec(GLint majorVersion, GLint minorVersion, bool isWebGL)
{
if (majorVersion >= 3)
{
if (minorVersion == 1)
{
- return SH_GLES3_1_SPEC;
+ return isWebGL ? SH_WEBGL3_SPEC : SH_GLES3_1_SPEC;
}
else
{
- return SH_GLES3_SPEC;
+ return isWebGL ? SH_WEBGL2_SPEC : SH_GLES3_SPEC;
}
}
- return SH_GLES2_SPEC;
+ return isWebGL ? SH_WEBGL_SPEC : SH_GLES2_SPEC;
}
} // anonymous namespace
Compiler::Compiler(rx::GLImplFactory *implFactory, const ContextState &state)
: mImplementation(implFactory->createCompiler()),
- mSpec(SelectShaderSpec(state.getClientMajorVersion(), state.getClientMinorVersion())),
+ mSpec(SelectShaderSpec(state.getClientMajorVersion(),
+ state.getClientMinorVersion(),
+ state.getExtensions().webglCompatibility)),
mOutputType(mImplementation->getTranslatorOutputType()),
mResources(),
mFragmentCompiler(nullptr),