Bindless Graphics Sample


Category:  Performance
Min PC GPU: Fermi-based (GTX 4xx)
Min Tegra Device: Tegra K1

Description

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.

APIs Used

Shared User Interface

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:

Device Input Result
touch 1-Finger Drag Orbit-rotate the camera
2-Finger Drag Move up/down/left/right
2-Finger Pinch Scale the view
mouse Left-Button Drag Orbit-rotate the camera
Right-Button Drag Move up/down/left/right
Middle-Click Drag Scale the view (up:out, down:in)
keyboard Escape Quit the application
  Tab Toggle Tweakbar visibility
gamepad Start Toggle Tweakbar visibility
  Right Thumbstick Orbit-rotate the camera
  Left Thumbstick Move forward/backward. Slide left/right
  Left/Right Triggers Move up/down

Technical Details

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.

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.

See Also

 

 


NVIDIA® GameWorks™ Documentation Rev. 1.0.200608 ©2014-2020. NVIDIA Corporation. All Rights Reserved.