Bulldog: a compiler for VLSI architectures
Bulldog: a compiler for VLSI architectures
Lazy data routing and greedy scheduling for application-specific signal processors
MICRO 21 Proceedings of the 21st annual workshop on Microprogramming and microarchitecture
A language for shading and lighting calculations
SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
Code scheduling for VLIW/superscalar processors with limited register files
MICRO 25 Proceedings of the 25th annual international symposium on Microarchitecture
Proceedings of the 28th annual international symposium on Microarchitecture
A shading language on graphics hardware: the pixelflow shading system
Proceedings of the 25th annual conference on Computer graphics and interactive techniques
Advanced compiler design and implementation
Advanced compiler design and implementation
SIGGRAPH '85 Proceedings of the 12th annual conference on Computer graphics and interactive techniques
Interactive multi-pass programmable shading
Proceedings of the 27th annual conference on Computer graphics and interactive techniques
A user-programmable vertex engine
Proceedings of the 28th annual conference on Computer graphics and interactive techniques
A real-time procedural shading system for programmable graphics hardware
Proceedings of the 28th annual conference on Computer graphics and interactive techniques
RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics
RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics
Advanced RenderMan: Creating CGI for Motion Picture
Advanced RenderMan: Creating CGI for Motion Picture
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
A real-time procedural shading system for programmable graphics hardware
Proceedings of the 28th annual conference on Computer graphics and interactive techniques
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
ACM SIGGRAPH 2004 Papers
Hi-index | 0.00 |
The latest generation of graphics hardware supports fully programmable vertex and pixel/fragment operations, but programming this hardware at a low level is difficult and time consuming. To address this problem, we have developed a complete real-time procedural shading system that compiles a high-level shading language to programmable vertex and fragment hardware, as described in a separate publication. In this paper, we describe in detail the algorithms used by this system to generate and optimize fragment code for NVIDIA's register combiner architecture and show that our compiler generates efficient code. The register combiner architecture has some similarities to VLIW CPU architectures, so we compare our compilation algorithms to those described in the literature for VLIW CPU architectures. We also discuss some of the lessons we learned from building and using this compiler that may be useful to the designers of future programmable graphics hardware.