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.
The OpenGL 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.
Other controls are listed below:
This sample demonstrates using bindless rendering with GL_NV_shader_buffer_load
and 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_load
allows the program to use GPU pointers in the vertex shader to load uniforms directly from GPU memory.GL_NV_vertex_buffer_unified_memory
allows the program to use GPU pointers to vertex and index data when making rendering calls.Both 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.
NVIDIA® GameWorks™ Documentation Rev. 1.0.220830 ©2014-2022. NVIDIA Corporation and affiliates. All Rights Reserved.