I'm having a strange issue.
A demo project I have set up, is happily drawing 90,000 textured triangles in the form of multiple(40) instances of textured ships on a Pi3 at 60fps.
Its a standard Pi3, not overclocked, and chugging away quite happily on 1 core at 7% usage, no threads running, though the Rasbian GUI is going in the background
All drawing is done from VBO's and once set up, are reused over and over. Uniforms and attribute ptrs are reset in the draw cycles.
GPU RAM is set to 256, and I'm not using even a fraction of that amount with a single 256x256 RGBA texture and 3 small VBO's
If I leave it alone, after 10-30 cycles through, the frame drop drops quite a bit, 30-40fps?
I thought at 1st I had an overheat problem but vcgencmd returns temps from 50-60degs, well below the 85 deg cut off point.
Some rearranging of my code to do, a full cycle of updates, followed by a full cycle of draws, (I had an update then draw cycle) had a delaying impact on the slow down but it still happens after 10-15 seconds.
Adding a glflush command at the end of the draw cycle also delayed the onset but it still happens.
Interestingly adding a glFinish() causes the slow down to occur immediately, which suggests some form of buffering may be happening on my gl commands....if thats the case I would like to know where the bottle neck is so I can have the CPU do some more work while it waits for the GPU.
Not really quite sure whats mechanisms are at work here, anyone got any ideas what to look for?