Bindless Graphics Sample
This sample demonstrates the large performance increase in OpenGL that is made possible by 'Bindless Graphics'. These extensions allow applications to draw large numbers of objects with only a few setup calls, rather than a few calls per object, thus reducing the driver overhead necessary to render highly populated scenery.
Shared User Interface
The Graphics samples all share a common app framework and certain user interface elements, centered around the "Tweakbar" panel on the left side of the screen which lets you interactively control certain variables in each sample.
To show and hide the Tweakbar, simply click or touch the triangular button positioned in the top-left of the view.
This sample demonstrates using bindless rendering with
GL_NV_vertex_buffer_unified_memory to render very large numbers of the same object with slight differences in their visual attributes.
GL_NV_shader_buffer_loadallows the program to use GPU pointers in the vertex shader to load uniforms directly from GPU memory.
GL_NV_vertex_buffer_unified_memoryallows the program to use GPU pointers to vertex and index data when making rendering calls.
GL_NV_bindless_textureallows the program to access texture objects in shaders without first binding each texture to one of a limited number of texture image units.
All of these extensions can significantly reduce CPU L2 cache misses and pollution; this can dramatically speed up scenes with large numbers of draw calls.
For more detailed information on bindless rendering, see the resources below.