Slides: Reducing OpenGL driver overhead

Really interesting slide about how the latest OpenGL features can massively improve CPU performance.

It includes:

  • A super fast way to map buffers. You map a buffer once and can then modify it while the GPU is using it. All writes are immediately flushed to the GPU. I bet someone coughRivencough might be interested. ^^
  • More CPU efficient texture management using sparse textures. You create a sparsely allocated texture array, meaning only the parts that are actually committed use any VRAM. You can then stream in and out textures of this array. Just a single bind to get access to all textures the game needs.
  • Other ways of increasing batch sizes to reduce draw call overhead.

Link: http://www.slideshare.net/CassEveritt/beyond-porting

So, I decided to give it a try.

I updated my AMD drivers, and got OpenGL 4.3.

Unfortunately ARB_buffer_storage is not supported, in my case.


OpenGL version: 4.3.12618 Compatibility Profile Context 13.251.0.0

java.lang.IllegalStateException: Function is not supported
	at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
	at org.lwjgl.opengl.GL44.glBufferStorage(GL44.java:139)
	at org.lwjgl.opengl.ARBBufferStorage.glBufferStorage(ARBBufferStorage.java:53)
	at net.indiespot.opengl4.Main.main(Main.java:50)

Well, that was disappointing… Neither AMD nor Nvidia seems to be doing a very good job here. AMD is stuck on 4.3 and Nvidia’s 4.4 driver seems buggy.

Stuck on 3.2 here with my 280GTX anyway, no ARB_buffer_storage for me. Bah.

Cas :slight_smile: