A language for shading and lighting calculations
SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
Global instruction scheduling for superscalar machines
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Lighting controls for computer cinematography
Journal of Graphics Tools
The Generation of Optimal Code for Arithmetic Expressions
Journal of the ACM (JACM)
Code Generation for Expressions with Common Subexpressions
Journal of the ACM (JACM)
Interactive multi-pass programmable shading
Proceedings of the 27th annual conference on Computer graphics and interactive techniques
Local Microcode Compaction Techniques
ACM Computing Surveys (CSUR)
A real-time procedural shading system for programmable graphics hardware
Proceedings of the 28th annual conference on Computer graphics and interactive techniques
Efficient partitioning of fragment shaders for multipass rendering on programmable graphics hardware
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
Integrated prepass scheduling for a Java Just-In-Time compiler on the IA-64 architecture
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
SIGGRAPH '84 Proceedings of the 11th annual conference on Computer graphics and interactive techniques
A linear-time algorithm for a special case of disjoint set union
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
Efficient partitioning of fragment shaders for multiple-output hardware
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
GPGPU: general purpose computation on graphics hardware
ACM SIGGRAPH 2004 Course Notes
Scout: A Hardware-Accelerated System for Quantitatively Driven Visualization and Analysis
VIS '04 Proceedings of the conference on Visualization '04
Optimal automatic multi-pass shader partitioning by dynamic programming
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
Lpics: a hybrid hardware-accelerated relighting engine for computer cinematography
ACM SIGGRAPH 2005 Papers
ACM SIGGRAPH 2006 Papers
Distributed texture memory in a multi-GPU environment
GH '06 Proceedings of the 21st ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware
Scout: a data-parallel programming language for graphics processors
Parallel Computing
Control flow emulation on tiled SIMD architectures
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
The CGiS compiler—a tool demonstration
CC'06 Proceedings of the 15th international conference on Compiler Construction
Hi-index | 0.00 |
Real-time graphics hardware continues to offer improved resources for programmable vertex and fragment shaders. However, shader programmers continue to write shaders that require more resources than are available in the hardware. One way to virtualize the resources necessary to run complex shaders is to partition the shaders into multiple rendering passes. This problem, called the "Multi-Pass Partitioning Problem" (MPP), and a solution for the problem, Recursive Dominator Split (RDS), have been presented by Eric Chan et al. The O(n3) RDS algorithm and its heuristic-based O(n2) cousin, RDSh, are robust in that they can efficiently partition shaders for many architectures with varying resources. However, RDS's high runtime cost and inability to handle multiple outputs per pass make it less desirable for real-time use on today's latest graphics hardware. This paper redefines the MPP as a scheduling problem and uses scheduling algorithms that allow incremental resource estimation and pass computation in O(n log n) time. Our scheduling algorithm, Mio, is experimentally compared to RDS and shown to have better run-time scaling and produce comparable partitions for emerging hardware architectures.