|Session Name:||High-performance, Low-Overhead Rendering with OpenGL and Vulkan (presented by NVIDIA)|
|Speaker(s):||Lars Bishop, Christoph Kubisch, Mathias Schott|
|Company Name(s):||NVIDIA, NVIDIA, NVIDIA|
|Track / Format:||Programming|
As advanced games and applications continue to push the performance envelope, developers look to their 3D APIs for improved predictability, threading and reduced CPU load. New extensions to OpenGL and a totally new 3D API Vulkan are answering these requests directly. This session introduces and details both of these approaches. The session shows how applications can use OpenGL "AZDO" (Approaching Zero Driver Overhead) extensions like NVIDIA's Command Lists to greatly reduce single-threaded CPU overhead while reusing existing OpenGL code. Going further, the second section introduces the new 3D API from Khronos called Vulkan; focusing on how to use Vulkan's command buffers, precompiled "SPIR-V" shaders, application-managed rendering resources and rendering queues, to take full advantage of true multi-threaded rendering. The speakers detail how to efficiently synchronize multiple threads using Vulkan at top performance. Finally, there is a discussion of the tradeoffs of extended OpenGL and AZDO versus Vulkan, and how a developer might choose between them. Throughout, examples of real applications and source code are shown.