The Direct3D 10 system

We present a system architecture for the 4th generation of PC-class programmable graphics processing units (GPUs). The new pipeline features significant additions and changes to the prior generation pipeline including a new programmable stage capable of generating additional primitives and streaming primitive data to memory, an expanded, common feature set for all of the programmable stages, generalizations to vertex and image memory resources, and new storage formats. We also describe structural modifications to the API, runtime, and shading language to complement the new pipeline. We motivate the design with descriptions of frequently encountered obstacles in current systems. Throughout the paper we present rationale behind prominent design choices and alternatives that were ultimately rejected, drawing on insights collected during a multi-year collaboration with application developers and hardware designers.

[1]  Michael D. McCool,et al.  Metaprogramming GPUs with Sh , 2004 .

[2]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[3]  Z.S. Hakura,et al.  The Design And Analysis Of A Cache Architecture For Texture Mapping , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[4]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[5]  M. Doggett,et al.  Xenos : XBOX 360 GPU , 2005 .

[6]  Stefan Guthe,et al.  Hardware Accelerated Per-Pixel Displacement Mapping , 2004, Graphics Interface.

[7]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.

[8]  James P. Ahrens,et al.  Scout: a hardware-accelerated system for quantitatively driven visualization and analysis , 2004, IEEE Visualization 2004.

[9]  Homan Igehy,et al.  Parallel texture caching , 1999, Workshop on Graphics Hardware.

[10]  Kurt Akeley,et al.  Reality Engine graphics , 1993, SIGGRAPH.

[11]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.

[12]  Kurt Akeley,et al.  RealityEngine graphics , 2000 .

[13]  Mark J. Kilgard,et al.  Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering , 2003, ArXiv.

[14]  Randi J. Rost OpenGL shading language , 2004 .

[15]  James F. Blinn,et al.  The truth about texture mapping , 1990, IEEE Computer Graphics and Applications.

[16]  Eric Haines,et al.  An introductory tour of interactive rendering , 2006, IEEE Computer Graphics and Applications.

[17]  Henry P. Moreton,et al.  The GeForce 6800 , 2005, IEEE Micro.

[18]  John D. Owens,et al.  Mio: fast multipass partitioning via priority-based instruction scheduling , 2004, Graphics Hardware.

[19]  John Rohlf,et al.  IRIS performer: a high performance multiprocessing toolkit for real-time 3D graphics , 1994, SIGGRAPH.

[20]  Erik Lindholm,et al.  A user-programmable vertex engine , 2001, SIGGRAPH.

[21]  Pat Hanrahan,et al.  Efficient partitioning of fragment shaders for multipass rendering on programmable graphics hardware , 2002, HWWS '02.

[22]  Ansi Ieee,et al.  IEEE Standard for Binary Floating Point Arithmetic , 1985 .