Run-Time Scene-Graph Construction from Geographic Source Data Tim Woodard Chief Technology Officer Diamond Visionics www.dvcsim.com GPU Technology Conference 2016
Three-Headed Monster 2
Evolution of Simulation 3
Source to Scene Pipeline 4 Pre-computed LODs Scene Graph
Pilot Expectations 5 https://vimeo.com/113736724
Hardware Parallelism 6
Software Serialization 7
Source to Scene Pipeline 8 Pre-computed LODs Scene Graph
Slaying the Beast 9 Defer commitment to as late as possible Pre-compiling data results in expansion and loss of abstraction Pre-compiling makes changing data and/or rendering fidelity costly Pre-compiling does not Use data structures that are memory-friendly Not always obvious, can go against academic guidelines Use parallelism effectively Minimal locking of shared resources Eliminate driver overhead
OpenGL Rendering Scene Graph // Display lists glNewList(list_id,GL_COMPILE); // ...Call draw commands glEndList(); // Draw display list with one command glCallList(list_id);
OpenGL Rendering 11
Vulkan FTW! 12 From: www.khronos.org/vulkan
Until Vulkan, Command List CL is OpenGL extension which offers much of what Vulkan provides Greatly reduces driver overhead // Example of a state command char tokens[]; // ... Pack state and draw commands into tokens array typedef struct { GLuint header; // Initialize token buffer float scale; glGenBuffers(1, &token_id); float bias; glNamedBufferDataEXT(token_id, sizeof(tokens), tokens, } PolygonOffsetCommandNV; ...); // Example of a draw command // Draw tokens typedef struct { glDrawCommandsNV(GL_TRIANGLES, id, offsets, sizes, GLuint header; num_tokens); GLenum mode; GLuint count; GLuint instanceCount; GLuint first; GLuint baseInstance; } DrawArraysInstancedCommandNV;
Results 14 Going from K6000 to M6000, saw 100% performance improvement Test scene, 5.66M polygons, full-scene shadows Became CPU-bound Modern OpenGL, CPU times dropped from 9.8 to 7.2ms (see GTC 2015 talk) Better scene graph organization: 7.2 to 4.5ms! GPU times about the same, so GPU-bound. Able to increase fidelity NOW Ready for Pascal!
Hardware Consolidation 15
16 Integration with NVIDIA WaveWorks
NVIDIA WaveWorks Integration 17 Related talks: Tim Woodard • S6138 - GPU-Driven Rendering in Vulkan and OpenGL timw@dvcsim.com • S6817 - High-Performance, Low-Overhead Rendering with OpenGL and Vulkan • S6818 - Vulkan and NVIDIA: The Essentials Thank you! Exhibit hall: PNY and Concurrent Please complete the Presenter Evaluation sent to you by email or through the GTC Mobile App. Your feedback is important!
Recommend
More recommend