title: Strange OpenGL ES 2.0 bug on Galaxy Note 2
body: <p>This vertex shader code works on every device except for the <em>Galaxy Note 2</em>.
  <code>gl_Position = uMVPMatrix * vPosition;</code>
  where if I reverse the matrix multiplication to:
  <code>gl_Position = vPosition * uMVPMatrix;</code> I can actually get things to appear.</p>
  
  <p>Unfortunately, the reverse would require me to completely rewrite my transformations library.</p>
  
  <p>Does anyone have any insight on what could be causing this, is this an opengl driver error with the device?</p>
  
  <p><strong>Shader code</strong></p>
  
  <pre><code>private final String vertexShaderCode =
      // This matrix member variable provides a hook to manipulate
      // the coordinates of the objects that use this vertex shader
      "uniform mat4 uMVPMatrix;" +
  
      "attribute vec4 vPosition;" +
      "attribute vec2 a_TexCoordinate;" +
      "varying vec2 v_TexCoordinate;" +
      "void main() {" +
      // the matrix must be included as a modifier of gl_Position
      "v_TexCoordinate = a_TexCoordinate;" +
      "gl_Position = uMVPMatrix * vPosition;" +
      "}";
  
  private final String fragmentShaderCode =
      "precision mediump float;" +
      "uniform sampler2D u_Texture;" +
      "varying vec2 v_TexCoordinate;" +
      "void main() {" +
      "  gl_FragColor = texture2D(u_Texture, v_TexCoordinate);" +
      //"  gl_FragColor = vec4(v_TexCoordinate, 0, 1);" +
      "}";
  </code></pre>