6
\$\begingroup\$

I'm rendering just a really small amount of polygons for my UI but however I still tried to increase the FPS. In the end I removed redundant calls which increased the FPS. I really don't want to lose FPS for nothing so I keep looking for more improvements.

APITrace from AMD PerfStudio2

The first thing I noticed is the "huge" time where no calls are made before SwapBuffer (the black one). Well I know that OpenGL works asynchronous so SwapBuffer has to wait until everything is done. But shouldn't PerfStudio mark this time also as black ? Correct me If I am wrong.

The second thing I noticed is that some glUniform2f calls just take longer (the brown ones). I mean they should all upload 2floats to the GPU how can the time be so different from call to call. The program isn't even changed or something like that.

I also tried to look at other programs like gDebugger or CodeXL but they often crashed and they show less statistics (only # of calls or redundant calls etc.)

EDIT: I also realized that the draw calls also have different durations, which was obvious for me but sometimes drawing more vertices is faster than drawing less vertices.

\$\endgroup\$
  • \$\begingroup\$ Are you batching or doing separate draw calls for each of your quads? \$\endgroup\$ – Stephan van den Heuvel Nov 6 '13 at 21:06
  • \$\begingroup\$ You don't have a particularly clear question here. The times of things will vary a lot; there's a lot going on under the hood between driver state caches, OS context switches, various hardware queues, etc. Was that your question? \$\endgroup\$ – Sean Middleditch Dec 4 '13 at 22:15