Spark : modular, composable shaders for graphics hardware

Placeholder Show Content

Abstract/Contents

Abstract
Real-time computer graphics have become a ubiquitous part of modern life. Rich user interfaces and interactive games appear on screens ranging from mobile phones to stereo-3D TVs. Programmable graphics \emph{pipelines} have been central to delivering these compelling experiences. Shaders - programs that describe the shape, movement, and appearance of rendered objects - run in the stages of these pipelines, and are used to define the "look and feel" of a production. The demand for rich, immersive experiences motivates the use of increasingly complex shaders. In creating these complex real-time shaders, programmers should ideally 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, that improves support for separation of concerns into modules. A Spark shader class can encapsulate a program feature that maps to more than one pipeline stage, and can be extended and composed using object-oriented inheritance. We first discuss the design of this language: its origins, goals, and key design choices. We then describe our implementation of a compiler, standard library, and runtime system for Spark, targeting current programmable graphics hardware. Finally, we evaluate this implementation and demonstrate that it achieves our modularity goals without compromising performance: in our tests, shaders written in Spark achieve performance within 2\% of Microsoft's High Level Shading Language (HLSL).

Description

Type of resource text
Form electronic; electronic resource; remote
Extent 1 online resource.
Publication date 2012
Issuance monographic
Language English

Creators/Contributors

Associated with Foley, Timothy John
Associated with Stanford University, Computer Science Department.
Primary advisor Hanrahan, P. M. (Patrick Matthew)
Thesis advisor Hanrahan, P. M. (Patrick Matthew)
Thesis advisor Aiken, Alexander
Thesis advisor Akeley, Kurt
Advisor Aiken, Alexander
Advisor Akeley, Kurt

Subjects

Genre Theses

Bibliographic information

Statement of responsibility Timothy John Foley.
Note Submitted to the Department of Computer Science.
Thesis Ph.D. Stanford University 2012
Location electronic resource

Access conditions

Copyright
© 2012 by Timothy John Foley
License
This work is licensed under a Creative Commons Attribution Non Commercial 3.0 Unported license (CC BY-NC).

Also listed in

Loading usage metrics...