Friday, August 5, 2011

Spark: Modular, Composable Shaders for Graphics Hardware

Spark: Modular, Composable Shaders for Graphics Hardware

By Tim Foley (Intel Corporation and Stanford University), Pat Hanrahan (Stanford University)


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

Read the Siggraph paper: Spark: Modular, Composable Shaders for Graphics Hardware [PDF 3.1 MB]

Download the source code: spark-0.1.zip* [ZIP 36.3 MB];

Presented at: ACM SIGGRAPH 2011, Vancouver, B.C. Canada

Source INTEL

No comments:

Post a Comment