Shader versions must match.
Per GLSL_ES_Specification_3.00.4 paragraph 3.3 Version Declaration:
"Shaders declaring version 3.00 of the shading language
cannot be linked with shaders declaring version 1.00."
BUG=angleproject:1361
TEST=GLSLTest_ES3.VersionMismatch
Change-Id: Icee672b798dcdb41a189e4a6459c4e643daf1fa6
Reviewed-on: https://chromium-review.googlesource.com/353182
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/Program.cpp b/src/libANGLE/Program.cpp
index 98fa9ae..65cde2f 100644
--- a/src/libANGLE/Program.cpp
+++ b/src/libANGLE/Program.cpp
@@ -462,6 +462,13 @@
}
ASSERT(mState.mAttachedVertexShader->getType() == GL_VERTEX_SHADER);
+ if (mState.mAttachedFragmentShader->getShaderVersion() !=
+ mState.mAttachedVertexShader->getShaderVersion())
+ {
+ mInfoLog << "Fragment shader version does not match vertex shader version.";
+ return Error(GL_NO_ERROR);
+ }
+
if (!linkAttributes(data, mInfoLog, mAttributeBindings, mState.mAttachedVertexShader))
{
return Error(GL_NO_ERROR);