Well I figured out what was the slow down.
it was filling the arrays with the damn data.
I could call drawArrays/Elements 4-5 times and no fps drop…hmmm
Basically, it is better to fill an array[] and then use put(array[]) to put it into the buffer.
Using a dynamic vertex array version of my spritebatcher I can now get 75k at 66fps and this is with everything being floats. I am not fillrate limited woot.
The drawing is only 20fps drop, the updating and pushing into arrays is the slow part.
Oh I followed libgdx’s code where you don’t have one huge array/vbo of all data but instead send everything in chunks. I think 1-2k texture quads is optimal. Getting larger only slows things down.