title: Do operations on uniform variables get cached in GLSL?
body: <p>Let's say I have a very simple GLSL vertex shader:</p>
  
  <pre><code>uniform mat4 model;
  uniform mat4 view;
  uniform mat4 projection;
  
  in vec3 position;
  in vec3 color;
  
  out vec3 vertexColor;
  
  void main()
  {
      mat4 mvp = projection * view * model;
      vertexColor = color;
      gl_Position = mvp * vec4(position, 1.0);
  }
  </code></pre>
  
  <p>Is the variable <code>mvp</code> recalculated for every vertex, or is it precalculated and stored until the the uniform variables it depends on change?</p>