from geographic source data
play

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


  1. Run-Time Scene-Graph Construction from Geographic Source Data Tim Woodard Chief Technology Officer Diamond Visionics www.dvcsim.com GPU Technology Conference 2016

  2. Three-Headed Monster 2

  3. Evolution of Simulation 3

  4. Source to Scene Pipeline 4 Pre-computed LODs Scene Graph

  5. Pilot Expectations 5 https://vimeo.com/113736724

  6. Hardware Parallelism 6

  7. Software Serialization 7

  8. Source to Scene Pipeline 8 Pre-computed LODs Scene Graph

  9. 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

  10. OpenGL Rendering Scene Graph // Display lists glNewList(list_id,GL_COMPILE); // ...Call draw commands glEndList(); // Draw display list with one command glCallList(list_id);

  11. OpenGL Rendering 11

  12. Vulkan FTW! 12 From: www.khronos.org/vulkan

  13. 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;

  14. 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!

  15. Hardware Consolidation 15

  16. 16 Integration with NVIDIA WaveWorks

  17. 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!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend