“The design of a parallel graphics interface” by Igehy, Stoll and Hanrahan

  • ©Homan Igehy, Gordon Stoll, and Patrick (Pat) Hanrahan




    The design of a parallel graphics interface



    It has become increasingly difficult to drive a modern high-performance graphics accelerator at full speed with a serial immediate-mode graphics interface. To resolve this problem, retained-mode constructs have been integrated into graphics interfaces. While retained-mode constructs provide a good solution in many cases, at times they provide an undesirable interface model for the application programmer, and in some cases they do not solve the performance problem. In order to resolve some of these cases, we present a parallel graphics interface that may be used in conjunction with the existing API as a new paradigm for high-performance graphics applications. The parallel API extends existing ideas found in OpenGL and X11 that allow multiple graphics contexts to simultaneously draw into the same image. Through the introduction of synchronization primitives, the parallel API allows parallel traversal of an explicitly ordered scene. We give code examples which demonstrate how the API can be used to expose parallelism while retaining many of the desirable features of serial immediate-mode programming. The viability of the API is demonstrated by the performance of our implementation which achieves scalable performance on a 24 processor system.


    1. S. Amarasinghe, J. Anderson, C. Wilson, S. Liao, B. Murphy, R. French, M. Lam, and M. Hall. Multiprocessors from a Software Perspective. IEEE Micro, 16:3, pages 52-61, 1996.
    2. A. Beers, M. Agrawala, and N. Chaddha. Rendering from Compressed Textures. Computer Graphics (SIGGRAPH 96 Proceedings), volume 30, pages 373-378, 1996.
    3. J. Blinn. Me and My (Fake) Shadow. IEEE Computer Graphics and Applications, 8:1, pages 82-86, 1988.
    4. M. Cox, N. Bhandari, and M. Shantz. Multi-Level Texture Caching for 3D Graphics Hardware. Proceedings of the 25th International Symposium on Computer Architecture, 1998.
    5. T. Crockett. Design Considerations for Parallel Graphics Libraries. Proceedings of the Intel Supercomputer Users Group 1994, 1994.
    6. M. Deering. Geometry Compression. Computer Graphics (SIGGRAPH 95 Proceedings), volume 29, pages 13-20, 1995.
    7. E. Dijkstra. Cooperating Sequential Processes. Programming Languages, pages 43-112, 1968.
    8. J. Eyles, S. Molnar, J. Poulton, T. Greer, A. Lastra, N. England, and L. Westover. PixelFlow: The Realization. Proceedings of the 1997 SIGGRAPH/Eurographics Workshop on Graphics Hardware, pages 57-68, 1997.
    9. J. Gettys and P. Karlton. The X Window System, Version 11. Software–Practice and Experience, 20:$2, pages 35-67, 1990.
    10. Z. Hakura and A. Gupta. The Design and Analysis of a Cache Architecture for Texture Mapping. Proceedings of the 24th International Symposium on Computer Architecture, 1997.
    11. H. Hoppe. View-Dependent Refinement of Progressive Meshes. Computer Graphics (SIGGRAPH 97 Proceedings), volume 31, pages 189-198, 1997.
    12. M. Kilgard. OpenGL Programming for the X Window System, Addison-Wesley, 1996.
    13. D. Kirkland. Personal Communication. Intergraph Corp., 1998.
    14. L. Lamport. How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs. IEEE Transactions on Computers, 28:9, pages 241-248, 1979.
    15. J. Laudon and D. Lenoski. The SGI Origin: A ccNUMA Highly Scalable Server. Proceedings of the 24th Annual Symposium on Computer Architecture, 1997.
    16. W. Lorensen and H. Cline. Marching Cubes: A High-Resolution 3D Surface Reconstruction Algorithm. Computer Graphics (SIGGRAPH 87 Proceedings), volume 21, pages 163-169, 1987.
    17. S. Molnar, M. Cox, D. Ellsworth, and H. Fuchs. A Sorting Classification of Parallel Rendering. IEEE Computer Graphics and Applications, 14:4, pages 23-32, 1994.
    18. S. Molnar, J. Eyles, and J. Poulton. PixelFlow: High-Speed Rendering Using Image Composition. Computer Graphics (SIGGRAPH 92 Proceedings), volume 26, pages 231-240, 1992.
    19. J. Montrym, D. Baum, D. Dignam, and C. Migdal. InfiniteReality: A Real-Time Graphics System. Computer Graphics (SIGGRAPH 97 Proceedings), volume 31, pages 293-302, 1997.
    20. J. Neider, T. Davis, and M. Woo. OpenGL Programming Guide. Addison-Wesley, 1993.
    21. T. Porter and T. Duff. Compositing Digital Images. Computer Graphics (SIGGRAPH 84 Proceedings), volume 18, pages 253- 259, 1984.
    22. J. Rohlf and J. Helman. IRIS Performer: A High Performance Multiprocessing Toolkit for Real-Time 3D Graphics. Computer Graphics (SIGGRAPH 94 Proceedings), volume 28, pages 381- 395, 1994.
    23. R. Scheifler and J. Gettys. The X Window System. ACM Transactions on Graphics, 5:2, pages 79-109, 1986.
    24. T. Sederberg and S. Parry. Free-Form Deformation of Solid Geometric Models. Computer Graphics (SIGGRAPH 86 Proceedings), volume 20, pages 151-160, 1986.
    25. J. Torborg and J. Kajiya. Talisman: Commodity Real-Time 3D Graphics for the PC. Computer Graphics (SIGGRAPH 96 Proceedings), volume 30, pages 57-68, 1996.
    26. D. Voorhies, D. Kirk, and O. Lathrop. Virtual Graphics. Computer Graphics (SIGGRAPH 88 Proceedings), volume 22, pages 247-253, 1988.

ACM Digital Library Publication:

Overview Page: