Christensen, PerFong, JulianKilpatrick, CharlieGonzalez, FranciscoRavichandran, SrinathShah, AkshayJaszewski, EthanFriedman, StephenBurgess, JamesRoy, Trina M.Nettleship, TomSeshadri, MeghanaSalituro, SusanKnoll, AaronPeters, Christoph2025-06-202025-06-2020251467-8659https://doi.org/10.1111/cgf.70218https://diglib.eg.org/handle/10.1111/cgf70218RenderMan XPU is a rewrite of Pixar's RenderMan renderer, designed to run on both CPUs and GPUs. Like its predecessor, it is a progressive path tracer, suitable for both interactive previews and high-quality final-frame rendering, but it utilizes modern hardware and software techniques to run significantly faster. Most source code is shared between the two platforms; code for materials (bxdfs) and light transport (integrators) is compiled with a C++ compiler for CPUs and a CUDA compiler for GPUs, with templating, specialization, and a few macros to handle syntax differences and parallel execution abstractions. The shaders that provide the material input values are written in OSL; we use LLVM so that the same OSL code will run on both types of hardware. Only the low-level ray tracing code and texture lookup and caching code is separate. Typical speedups over our previous renderer (for high-quality final-frame images) are 1.8× to 2.3× on CPUs, 5× to 10× on GPUs, and 6× to 15× on both.Attribution 4.0 International LicenseRenderMan XPU: A Hybrid CPU+GPU Renderer for Interactive and Final-frame Rendering10.1111/cgf.7021817 pages