Alexander Monakov - A standalone threaded dispatch library for OpenGL

This talk describes implementation of a library that performs threaded (multithreaded) dispatch for OpenGL API calls. The goal is to have a thin layer between the application and the vendor GL library that saves the GL API call arguments in a buffer and then calls the vendor implementation in a secondary thread, asynchronously. This technique is known as "GL threaded optimization" in NVIDIA drivers and has also been experimentally implemented in Mesa. The project aims to implement this technique as a standalone library, independently of underlying vendor implementation, and with very high efficiency. The talk describes the overall approach, several specific takes taken to reduce dispatch overhead, and notes a couple of missing features in the OpenGL API that would make such approach more powerful. At present, a work-in-progress implementation (iow: quick-hack-level) can outperform NVIDIA's counterpart on Unigine Heaven.

Slides Video