“A Texture Streaming Pipeline for Real-Time GPU Ray Tracing” by Lee, Zeichner and Li – ACM SIGGRAPH HISTORY ARCHIVES

“A Texture Streaming Pipeline for Real-Time GPU Ray Tracing” by Lee, Zeichner and Li

  • 2025 Talks_Lee_A Texture Streaming Pipeline for Real-Time GPU Ray Tracing

Conference:


Type(s):


Title:

    A Texture Streaming Pipeline for Real-Time GPU Ray Tracing

Session/Category Title:

    Real-Time and Mobile Techniques

Presenter(s)/Author(s):


Moderator(s):



Abstract:


    Walt Disney Animation Studios makes heavy use of Ptex across its assets. We developed a new pipeline for our real time GPU ray tracer to support visualizing and manipulating these large textured scenes. The goal of the system is to maintain a real-time framerate regardless of the texture complexity of a scene. When a scene is first loaded, the GPU texture cache will be empty, then as objects come into view or are marked as needed, fragments, or tiles, of texture data are streamed onto the GPU for display. This provides a faster time to first pixel by avoiding the need to preload textures for the first frame. A core design principle was to develop a cache that eliminates all stalls but trades that for additional latency during the texture loading. This is important for maintaining glitch free real-time framerates. Since GPU memory is a scarce resource in comparison to CPU memory, we set out to make maximal use out of a relatively small texture cache allocated on the GPU. We achieved this by employing a very fast slab allocator combined with a LRU eviction scheme, and a GPU-friendly cuckoo hash table to communicate which texture tiles are resident. We cover these details, as well as the high-level architecture of the new pipeline, its integration with our different renderers, and its use in production.

References:


    [1] Jeff Bonwick. 1994. The Slab Allocator: An Object-Caching Kernel. In USENIX Summer 1994 Technical Conference (USENIX Summer 1994 Technical Conference). USENIX Association, Boston, MA. https://www.usenix.org/conference/usenix-summer-1994-technical-conference/slab-allocator-object-caching-kernel
    [2] Brent Burley, David Adler, Matt Jen-Yuan Chiang, Hank Driskill, Ralf Habel, Patrick Kelly, Peter Kutz, Yining Karl Li, and Dan Teece. 2018. The Design and Evolution of Disney’s Hyperion Renderer. ACM Transactions on Graphics 37, 3, Article 33 (Aug. 2018).
    [3] Brent Burley and Dylan Lacewell. 2008. Ptex: Per-Face Texture Mapping for Production Rendering. Computer Graphics Forum 27, 4 (2008), 1155–1164.
    [4] Manfred Ernst, Marc Stamminger, and Günther Greiner. 2006. Filter Importance Sampling. In Proc. of IEEE Symposium on Interactive Ray Tracing. 125–132.
    [5] Mark Lee, Brian Green, Feng Xie, and Eric Tabellion. 2017. Vectorized production path tracing. In Proceedings of High Performance Graphics (Los Angeles, California) (HPG ’17). Association for Computing Machinery, New York, NY, USA, Article 10, 11 pages.
    [6] Nvidia. 2024. Optix Demand Loading Library. https://github.com/NVIDIA/optix-toolkit/tree/master/DemandLoading.
    [7] Darwyn Peachey. 1990. Texture on Demand. Pixar Technical Memos, Article 217 (1990).
    [8] Matt Pharr, Bartlomiej Wronski, Marco Salvi, and Marcos Fajardo. 2024. Filtering After Shading With Stochastic Texture Filtering. Proc. ACM Comput. Graph. Interact. Tech. 7, 1, Article 14 (May 2024), 20 pages.
    [9] Jan Paul van Wavern. 2009. id Tech 5 Challenges: From Texture Virtualization to Massive Parallelization. SIGGRAPH 2009: Beyond Programmably Shading Course Notes, Article 7 (Aug. 2009).


ACM Digital Library Publication:



Overview Page:



Submit a story:

If you would like to submit a story about this presentation, please contact us: historyarchives@siggraph.org