Spark: modular, composable shaders for graphics hardware

  • Authors:
  • Tim Foley;Pat Hanrahan

  • Affiliations:
  • Stanford University;Stanford University

  • Venue:
  • ACM SIGGRAPH 2011 papers
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In creating complex real-time shaders, programmers should be able to decompose code into independent, localized modules of their choosing. Current real-time shading languages, however, enforce a fixed decomposition into per-pipeline-stage procedures. Program concerns at other scales -- including those that cross-cut multiple pipeline stages -- cannot be expressed as reusable modules. We present a shading language, Spark, and its implementation for modern graphics hardware that improves support for separation of concerns into modules. A Spark shader class can encapsulate code that maps to more than one pipeline stage, and can be extended and composed using object-oriented inheritance. In our tests, shaders written in Spark achieve performance within 2% of HLSL.