This problem is caused by chrome 31, chrome 31 changes its precision checking. Its error information is “Uniforms with the same name but different type/precision”,
We set the float’s precision to “highp” in vertex shader, because of high precision on position, while set the float’s precision to “mediump” in fragment shader, because of better performance. This setup works well on OpenGL , other browser and chrome before v31.
I don’t know what reason this changing is.