“The Direct3D 10 system” by Blythe

  • ©David Blythe




    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. Ati. 2005. Radeon X800 3D Architecture White Paper. http://www.ati.com/products/radeonx800/RadeonX800ArchitectureWhitePaper.pdf.Google Scholar
    2. Akeley, K. 1993. RealityEngine graphics. In Proceedings of ACM SIGGRAPH 1993. ACM Press, New York, NY, 109–116. Google ScholarDigital Library
    3. Blinn, J. F. 1990. The truth about texture mapping. IEEE Computer Graphics and Applications 10, 2, 78–83. Google ScholarDigital Library
    4. Buck, I. Foley, T., Horn, D., Sugerman, D., Fatahalian, K., Houstin, M., and Hanrahan, P. 2004. Brook for GPUs: Stream computing on graphics hardware. Transactions on Graphics 23, 3, 777–786. Google ScholarDigital Library
    5. Chan, E., Ng, R., Sen, P., Proudfoot, K., and Hanrahan, P. 2002. Efficient Partitioning of Fragment Shaders for Multipass Rendering on Programmable Graphics Hardware, In Graphics Hardware, 69–78. Google ScholarDigital Library
    6. Doggett, M., 2005. Xenos: XBox 360 GPU. GDC-E 2005, http://www.ati.com/developer/eg05-xenos-doggett-final.pdf.Google Scholar
    7. Gray, K. 2003. The Microsoft DirectX 9 Programmable Graphics Pipeline. Microsoft Press. Google ScholarDigital Library
    8. Haines, E. 2006. An Introductory Tour of Rendering. IEEE Computer Graphics and Applications 26, 1, 76–87. Google ScholarDigital Library
    9. Hakura, Z. S., and Gupta, A. 1997. The design and analysis of a cache architecture for texture mapping. ACM SIGARCH Computer Architecture News 25, 2, 108–120. Google ScholarDigital Library
    10. Ieee Computer Society. 1985. IEEE Standard for Binary Floating-Point Arithmetic. IEEE Std 754–1985.Google Scholar
    11. Igehy, H., Eldridge, M., and Hanrahan, P. 1999. Parallel Texture Caching. In Graphics Hardware, ACM Press, New York, NY, 95–106. Google ScholarDigital Library
    12. Kessenich, J., Baldwin, D., and Rost, R. 2004. The OpenGL Shading Language version 1.10.59. http://www.opengl.org/documentation/oglsl.html.Google Scholar
    13. Lindholm, E., Kilgard, M. J., and Moreton, H. 2001. A User-programmable vertex engine. In Proc. of SIGGRAPH 2001, ACM Press / ACM SIGGRAPH, 149–158. Google ScholarDigital Library
    14. Mark, W. R., Glanville, R. S., Akeley, K., and Kilgard, M. J. Cg: A system for programming graphics in a C-like language. Transactions on Graphics 22, 3, 2003, 896–907. Google ScholarDigital Library
    15. McCabe, D., and Brothers, J. 1998. DirectX 6 Texture Map Compression. Game Developer Magazine 5, 8. 42–46.Google Scholar
    16. McCool, M. and Du Toit, S. 2004. Metaprogramming GPUs with Sh. A K Peters. Google ScholarDigital Library
    17. McCormick P. S., Inman, J., Ahrens, J. P., Hansen, C., and Roth, G. 2004, Scout: A hardware-accelerated system for quantitatively driven visualization and analysis. In Proc. of IEEE Visualization, 171–178. Google ScholarDigital Library
    18. Microsoft Corp. 2002. High-level shader language. In DirectX 9.0 graphics. http://msdn.microsoft.com/directx.Google Scholar
    19. Microsoft Corp. 2006, Direct3D 10 Reference. In Direct3D 10 graphics. http://msdn.microsoft.com/directx.Google Scholar
    20. Montrym, J., and Moreton, H. 2005. The GeForce 6800. IEEE Micro 25, 2, 41–51. Google ScholarDigital Library
    21. Proudfoot, K., Mark, W. R., Tzvetkov, S., and Hanrahan, P. 2001. A real-time procedural shading system for programmable graphics hardware. In Proc. of SIGGRAPH 2001, ACM Press / ACM SIGGRAPH, 159–170. Google ScholarDigital Library
    22. Riffel, A., Lefohn, A. E., Vidimce, K., Leone, M., and Owens, J. D. 2004. Mio: Fast Multipass Partitioning via Priority-Based Instruction Scheduling. In Graphics Hardware, 35–44. Google ScholarDigital Library
    23. Rohlf, J. and Helman, J. 1994. IRIS Performer: a high performance multiprocessing toolkit for real-time 3D graphics. In Proc. of SIGGRAPH ’94. ACM Press, New York, NY, 381–394. Google ScholarDigital Library
    24. Segal, M., and Akeley, K. 2004. The OpenGL Graphics System: A Specification (Version 2.0). http://www.opengl.org/documentation/spec.html.Google Scholar
    25. Tarditi, D., Puri, S., and Oglesby, J. 2005. Accelerator: simplified programming of graphics units for general-purpose uses via data parallelism. Technical Rerport, MSR-TR-2005-184.Google Scholar
    26. Everitt, C. and Kilgard, M. 2002. Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering. http://developer.nvidia.com.Google Scholar
    27. Hirche, J., Ehlert, A. Guthe, S. and Doggett, M. 2004.Hardware accelerated per-pixel displacement mapping. In Proc. of Graphics Interface 2004, 153–160. Google ScholarDigital Library

ACM Digital Library Publication:

Overview Page: