Ok, after some testing I had thought that the matrix upload was slow. But after some timing of functions I think I have found the culprit. glGetError!!!
It is taking from 250 to 3000 micro seconds! That is a lot when other GL functions, such as the draw and uniform uploads take around 10 microseconds. It seems to take longer if the number of calls to gl is larger before glGetError is called. That is if I call it after each matrix upload and draw pair it is around 200, if I call it after doing 100 matrix uploads and a 100 draw calls it is around 3000 mark.
Normally you would exclude it in release build but as there are no reported errors should it really be taking this long?
Can one of you guys time glGetError for me in your code and see if you get the same results.
I'm going to modify the supplied hello demos to see if I get the same results there.
