How to Increase the Number of Draw Calls in OpenGL


How to Increase the Number of Draw Calls in OpenGL



AMD Mantle promises a lot of draw calls per frame. In a tweet (see this article), Jonhn Carmack said that OpenGL can give similar improvements via a correct use of some extensions.

Tweet from Jonh Carmack about OpenGL draw calls



Cass Everitt and John McDonald (both from NVIDIA) have published an interesting set of slides about how to use modern OpenGL to reduce graphics driver overhead and increase the draw call count and unveiled a bit what Carmack had in mind…


You can download the PDF here:
Download NVIDIA OpenGL beyond porting Version 2014.01.20



In short, the combined use of GL_ARB_buffer_storage + Bindless / sparse textures + shared UBOs (uniform buffer object) + GL_ARB_multi_draw_indirect can help to increase the draw call count…

The original slides can be found HERE.


6 thoughts on “How to Increase the Number of Draw Calls in OpenGL”

  1. Amy

    These extensions has been in OGL for a while now. And I don’t know a single game that support one of these.
    Mantle is still don’t public, but there is 20+ games in developement.
    Seriously why?

  2. DrBalthar

    Because AMD put a lot of ca$h on the table to convince people to use Mantle

  3. Mikkel Gjoel

    Not a whole lot of games ship with OpenGL (on Windows) – mainly due to driver-compatibility issues. Rage is one of the few recently.

    I implemented some of the Nvidia extensions for the game Brink, but due to some minor issues in our engine, we didn’t end up getting too much out of it (entirely our fault though, not the extension).

  4. John Smith

    ROP means “raster operations pipeline”, it’s responsible for anti-aliasing for example.

  5. jK

    I wonder if glViewPort is part of ROP in their testing.
    If so it’s much slower than I expected (I thought it would be on a similar level as glScissor which is just a ~uniform afaik).

Comments are closed.