Publication
No More Shading Languages: Compiling C++ to Vulkan SPIR-V
Hugo Devillers; Matthias Kurtenacker; Richard Membarth; Stefan Lemme; Michael Kenzel; Ömercan Yazici; Philipp Slusallek
In: Symposium Papers of the High-Performance Graphics (HPG). ACM/Eurographics High-Performance Graphics (was Graphics Hardware/Symposium on Interactive Ray Tracing) (HPG-2025), June 23-25, Copenhagen, Denmark, Pages 1-10, ISBN 978-3-03868-291-2, The Eurographics Association, 6/2025.
Abstract
Graphics APIs have traditionally relied on shading languages, however, these languages have a number of fundamental defects and limitations. By contrast, GPU compute platforms offer powerful, feature-rich languages suitable for heterogeneous compute.
We propose reframing shading languages as embedded domain-specific languages, layered on top of a more general language like C++, doing away with traditional limitations on pointers, functions, and recursion, to the benefit of programmability. This represents a significant compilation challenge because the limitations of shaders are reflected in their lower-level representations.
We present the Vcc compiler, which allows conventional C and C++ code to run as Vulkan shaders. Our compiler is complemented by a simple shading library and exposes GPU particulars as intrinsics and annotations.
We evaluate the performance of our compiler using a selection of benchmarks, including a real-time path tracer, achieving competitive performance compared to their native CUDA counterparts.
Projects
- FAIRe - Frugal Artificial Intelligence in Resource-limited environments
- IntelSaar_SDGP - Software-Defined Graphics Pipelines
- SolarEnvelopeCenter - Planning Support for the Solarization of the Building Envelope in New and Existing Buildings