Cache GL.GetUniformLocation since it causes a rendering pipeline stall. This is a big performance win.