|
ABSTRACT
Real-time graphics hardware is becoming programmable, but this programmable hardware is complex and difficult to use given current APIs. Higher-level abstractions would both increase programmer productivity and make programs more portable. However, it is challenging to raise the abstraction level while still providing high performance. We have developed a real-time procedural shading language system designed to achieve this goal.
Our system is organized around multiple computation frequencies. For example, computations may be associated with vertices or with fragments/pixels. Our system's shading language provides a unified interface that allows a single procedure to include operations from more than one computation frequency.
Internally, our system virtualizes limited hardware resources to allow for arbitrarily-complex computations. We map operations to graphics hardware if possible, or to the host CPU as a last resort. This mapping is performed by compiler back-end modules associated with each computation frequency. Our system can map vertex operations to either programmable vertex hardware or to the host CPU, and can map fragment operations to either programmable fragment hardware or to multipass OpenGL. By carefully designing all the components of the system, we are able to generate highly-optimized code. We demonstrate our system running in real-time on a variety of hardware.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
|
 |
3
|
|
| |
4
|
|
 |
5
|
|
| |
6
|
|
| |
7
|
P. Jaquays and B. Hook. Quake 3: Arena Shader Manual, Revision 10, Sept. 1999.
|
| |
8
|
M. J. Kilgard. A Practical and Robust Bump-mapping Technique for Today's GPU's. Technical report, NVIDIA Corporation, July 2000. Available at http://www.nvidia.com/.
|
| |
9
|
E. Lindholm. Vertex Programs for Fixed Function Pipeline. NVIDIA Technical Presentation (from www.nvidia.com), Nov. 2000.
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
M. D. McCool. SMASH: A Next-Generation API for Programmable Graphics Accelerators. Technical Report CS- 2000-14, University of Waterloo, Aug. 2000.
|
| |
14
|
Microsoft. DirectX 8.0 Programmer's Reference, Oct. 2000.
|
 |
15
|
|
| |
16
|
NVIDIA Corporation. NVIDIA OpenGL Extension Specifications, May 2001. http://www.nvidia.com/developer/.
|
| |
17
|
|
 |
18
|
|
| |
19
|
|
 |
20
|
|
| |
21
|
M. Segal, K. Akeley, C. Frazier, and J. Leech. The OpenGL Graphics System: A Specification (Version 1.2), Mar. 1998.
|
 |
22
|
|
| |
23
|
|
CITED BY 52
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Greg Humphreys , Mike Houston , Ren Ng , Randall Frank , Sean Ahern , Peter D. Kirchner , James T. Klosowski, Chromium: a stream-processing framework for interactive rendering on clusters, ACM Transactions on Graphics (TOG), v.21 n.3, July 2002
|
|
|
|
|
|
|
|
|
|
|
|
Eric Chan , Ren Ng , Pradeep Sen , Kekoa Proudfoot , Pat Hanrahan, Efficient partitioning of fragment shaders for multipass rendering on programmable graphics hardware, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, September 01-02, 2002, Saarbrucken, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nolan Goodnight , Cliff Woolley , Gregory Lewin , David Luebke , Greg Humphreys, A multigrid solver for boundary value problems using programmable graphics hardware, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, July 26-27, 2003, San Diego, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yahya H. Mirza, Building compilers for DirectX 9.0 compatible graphics processors, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
|
|
|
Jiawen Chen , Michael I. Gordon , William Thies , Matthias Zwicker , Kari Pulli , Frédo Durand, A reconfigurable architecture for load-balanced rendering, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, July 30-31, 2005, Los Angeles, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Andrew Riffel , Aaron E. Lefohn , Kiril Vidimce , Mark Leone , John D. Owens, Mio: fast multipass partitioning via priority-based instruction scheduling, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, August 29-30, 2004, Grenoble, France
|
|
|
Aaron E. Lefohn , Shubhabrata Sengupta , Joe Kniss , Robert Strzodka , John D. Owens, Glift: Generic, efficient, random-access GPU data structures, ACM Transactions on Graphics (TOG), v.25 n.1, p.60-99, January 2006
|
|
|
|
|
|
|
|
|
|
|
|
Nolan Goodnight , Cliff Woolley , Gregory Lewin , David Luebke , Greg Humphreys, A multigrid solver for boundary value problems using programmable graphics hardware, ACM SIGGRAPH 2005 Courses, July 31-August 04, 2005, Los Angeles, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Greg Humphreys , Mike Houston , Ren Ng , Randall Frank , Sean Ahern , Peter D. Kirchner , James T. Klosowski, Chromium: a stream-processing framework for interactive rendering on clusters, ACM SIGGRAPH ASIA 2008 courses, p.1-10, December 10-13, 2008, Singapore
|
|
|
|
REVIEW
"Howard E. Whitston : Reviewer"
The authors describe their shading system, which allows the user to control the underlying hardware for generating shading without having to directly manipulate OpenGL. OpenGL allows individuals absolute control over the rendered image, but also r
more...
|