This talk will feature an update on what's happening in the professional VR space at NVIDIA. We first introduce OpenGL and Vulkan VR functionality, and then will talk about how to drive dual-input HMDs from two GPUs efficiently.
Hear visualization experts explain why people in professional visualization, in particular virtual engineering, are great candidates to unleash the full potential of HMDs and how close today's technology pushes application developers to the finish line of discovering massive datasets with HMDs. Learn about new hardware (NVIDIA Pascal™-powered NVIDIA Quadro® GPUs), extensions, APIs (NVIDIA VRWorks™: NVIDIA SLI® VR, Single Pass Stereo), techniques (GPU culling), and next steps that enable ESI to create amazing VR experiences even with high node and triangle count.
Autodesk and NVIDIA will provide an update on current VR rendering features and their use in the wild. We'll introduce a new VR SLI extension and give an overview on other VR-related hardware features and algorithms. We'll then discuss their integration into Autodesk VRED and showcase the performance improvements achieved by leveraging features like VR SLI, single-pass stereo, and occlusion culling and how they help to great stunning VR experiences using complex, real-world automotive engineering and design datasets.
In the first part of the talk we'll present the VK_NVX_device_generated_commands extension, which allows the GPU to generate the most frequent rendering commands on its own, including pipeline changes.In the second part well introduce new Vulkan VR extensions, discuss their usage and provide short samples for common use cases. We also give a brief update on the new OpenGL VR SLI extension, plans for new API interoperability and shortly touch on new Vulkan Nsight functionality.
Since modern workstation applications become less CPU bound due to more efficient rendering pipelines, the GPU can become the bottleneck in a system and multi-GPU rendering can become an option to further speed up the rendering process. The first part of this talk will show the available tools for multi-gpu programming, including GPU-bound OpenGL contexts and functionality for synchronization and data transfer. The second part will dive into the details of designing a multi-threaded rendering pipeline which can be used to split up and distribute rendering tasks across a set of GPUs. Several split approaches and their resulting scaling behavior will be presented and discussed.
With more workstation applications utilizing more efficient rendering pipelines and rendering larger scenes with more complex fragment shaders, GPUs can become the bottleneck in a system. The first part of this talk will be a refresher on multi-gpu programming basics to scale your rendering tasks. We show how to target individual APIs programmatically as well as structure your application by using multiple threads, OpenGL contexts and handle the synchronization and data transfer. The second part will dive in to details of designing a rendering pipeline that can efficiently utilize a multi-GPU setup by splitting rendering tasks into a set of phases. These phases represent a set of threads that distribute the rendering load across a set of GPUs. The talk will comprise how to set up a multithreaded application using C++11 constructs, how to analyze/debug the performance of a graphics application, how to do PCIe transfers efficiently and how to optimally distribute workload across different GPUs.