from Geographic Source Data Tim Woodard Chief Technology Officer - PowerPoint PPT Presentation
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
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
Explore More Topics
Stay informed with curated content and fresh updates.