“A user-programmable vertex engine” by Lindholm, Kilgard and Moreton

  • ©Erik Lindholm, Mark J. Kilgard, and Henry Moreton




    A user-programmable vertex engine



    In this paper we describe the design, programming interface, and implementation of a very efficient user-programmable vertex engine. The vertex engine of NVIDIA’s GeForce3 GPU evolved from a highly tuned fixed-function pipeline requiring considerable knowledge to program. Programs operate only on a stream of independent vertices traversing the pipe. Embedded in the broader fixed function pipeline, our approach preserves parallelism sacrificed by previous approaches. The programmer is presented with a straightforward programming model, which is supported by transparent multi-threading and bypassing to preserve parallelism and performance.
    In the remainder of the paper we discuss the motivation behind our design and contrast it with previous work. We present the programming model, the instruction set selection process, and details of the hardware implementation. Finally, we discuss important API design issues encountered when creating an interface to such a device. We close with thoughts about the future of programmable graphics devices.


    1. Advanced Micro Devices. 3DNowTM Technology Manual. www.amd.com/Ko/kodocs/pdf/21928.pdf
    2. Kurt Akeley. RealityEngine Graphics. In James T. Kajiya, editor, SIGGRAPH 93 Conference Proceedings, Annual Conference Series, pages 109-11o. ACM SIGGRAPH, Addison Wesley, August 1993.
    3. Kurt Akeley and Tom Jermoluk. High Performance Polygon Rendering. In John Dill, editor, Computer Graphics (SIGGRAPH 88 Conference Proceedings), volume 22, pages 239-24o. Addison Wesley, August 1988.
    4. Brian Apgar, Bret Bersack, and Abraham Mammen. A Display System for the StellarTM Graphics Supercomputer Model GS1000TM. In John Dill, editor, Computer Graphics (SIGGRAPH 88 Conference Proceedings), volume 22, pages 255-2o2. Addison Wesley, August 1988.
    5. James H. Clark. The Geometry Engine: A VLSI Geometry System for Graphics. In R. Daniel Bergeron, editor, Computer Graphics (SIGGRAPH 82 Conference Proceedings), volume 1o, pages 127 – 133. Addison Wesley, July 1982.
    6. DirectX Home. http://www.microsoft.com/directx
    7. Nick England. A Graphics System Architecture for Interactive Application-Specific Display Functions. IEEE Computer Graphics and Applications, 6(1): 60-70, January 1986.
    8. I. Ernst, D. Jackel, H. Russeler, O. Wittig, Hardware Supported Bump Mapping: A Step towards Higher Quality Real-Time Rendering, 10 th Eurographics Workshop on Graphics Hardware, August 28-29, 1995, pp. 63-70.
    9. Sam Fuller. Motorola’s AltiVecTM Technology. Motorola Inc.
    10. Henry Fuchs, John Poulton, John Eyles, Trey Greer, Jack Goldfeather, David Ellsworth, Steve Molnar, Greg Turk, Brice Tebbs, and Laura Israel. Pixel-Planes 5: A Heterogeneous Multiprocessor Graphics System Using Processor-Enhanced Memories. In Jeffrey Lane, editor, Computer Graphics (SIGGRAPH 89 Conference Proceedings), volume 23, pages 79-88. Addison Wesley, July 1989.
    11. Chandlee Harrell and Farhad Fouladi. Graphics Rendering Architecture for a High Performance Desktop Workstation. In James T. Kajiya, editor, SIGGRAPH 93 Conference Proceedings, Annual Conference Series, pages 93-100. ACM SIGGRAPH, Addison Wesley, August 1993
    12. Wolfgang Heidrich and Hans-Peter Seidel, Efficient Rendering of Anisotropic Surfaces Using Computer Graphics Hardware, Image and Multi-dimensional Digital Signal Processing Workshop, 1998
    13. Intel. I860 Microprocessor Family. Programmer’s Reference Manual. 1992. ISBN 1-55512-165-9.
    14. IA-32 Intel Architecture Software Developer’s Manual Volume2: Instruction Set Reference. Copyright 1997-2000 Intel Corporation.
    15. David Kirk and Douglas Voorhies. The Rendering Architecture of the DN10000VS. In Forest Baskett, editor, Computer Graphics (SIGGRAPH 90 Conference Proceedings), volume 24, pages 299- 307. Addison Wesley, August 1990.
    16. A. Kunimatsu, N. Ide, T. Sato, Y. Endo, H. Murakami, T. Kamei, M. Hirano, M. Oka, A. Ohba, T. Yutaka, T. Okada, and M. Suzuoki. 5.5 GFLOPS Vector Units for Emotion Synthesis. Conference Record, Hot Chips 11, August 15-17, 1999, Stanford University, Palo Alto, California.
    17. Adam Levinthal and Thomas Porter. Chap – A SIMD Graphics Processor. In Hank Christiansen editor, Computer Graphics (SIGGRAPH 84 Conference Proceedings), volume 18, pages 77-82. Addison Wesley, July 1984.
    18. MIPS Technologies Inc. MIPS-3DTM ASE: 3D Graphics Application Specific Extension. www.mips.com/products/3d.pdf
    19. Steven Molnar, John Eyles and John Poulton. PixelFlow: High-Speed Rendering Using Image Composition. In Edwin E. Catmull, editor, Computer Graphics (SIGGRAPH 92 Conference Proceedings), volume 26, pages 231-240. Addison Wesley, July 1992.
    20. NVIDIA Corporation, NVIDIA OpenGL Extension Specifications, Mark Kilgard, editor, May 2001. http://www.nvidia.com/developer
    21. Mark Peercy, John Airey, Brian Cabral, Efficient Bump Mapping Hardware, Computer Graphics (SIGGRAPH 97 Conference Proceedings), pages 303-306. Addison Wesley, August 1997.
    22. Kekoa Proudfoot, William Mark, Svetoslav Tzvetkov, and Pat Hanrahan. A Real-Time Procedural Shading System for Programmable Graphics Hardware, Computer Graphics (SIGGRAPH 2001 Conference Proceedings), Addison Wesley, August 2001.
    23. John Montrym, Daniel Baum, David Dignam and Chris Migdal. InfiniteReality: A Real-Time Graphics System. In Turner Whitted, editor, SIGGRAPH 97 Conference Proceedings, Annual Conference Series, pages 293-302. ACM SIGGRAPH, Addison Wesley, August 1997.
    24. Michael Potmesil and Eric Hoffert. The Pixel Machine: A Parallel Image Computer. In Jeffrey Lane, editor, Computer Graphics (SIGGRAPH 89 Conference Proceedings), volume 23, pages 69-78. Addison Wesley, July 1989.
    25. Mark Segal and Kurt Akeley. The OpenGL Graphics System: A Specification (Version 1.2.1). www.opengl.org
    26. John Torborg. A parallel processor architecture for graphics arithmetic operations. In Maureen C. Stone, editor, Computer Graphics (SIGGRAPH 87 Conference Proceedings), volume 21, pages 197-204. Addison Wesley, July 1987.
    27. Channing Verbeck. Personal communication. December 2000.
    28. Douglas Voorhies, Jim Foran, Reflection Vector Shading Hardware, Computer Graphics (SIGGRAPH 94 Conference Proceedings), pages 163-166. Addison Wesley, July 1994.

ACM Digital Library Publication: