Silicon Graphics® Ultimatevision™ Graphics Porting Guide
Total Page:16
File Type:pdf, Size:1020Kb
Silicon Graphics® UltimateVision™ Graphics Porting Guide 007-4297-001 CONTRIBUTORS Written by Robert Grzeszczuk, Ken Jones Production by Karen Jacobson Engineering contributions by Praveen Bhaniramka, Terrence Crane, Alan Commike, Jackie Cox, Brad Grantham, Simon Hayhurst, Eric Kunze, Yair Kurzion, Shrijeet Mukherjee, and Guy Russell COPYRIGHT © 2004, Silicon Graphics, Inc. All rights reserved; provided portions may be copyright in third parties, as indicated elsewhere herein. No permission is granted to copy, distribute, or create derivative works from the contents of this electronic documentation in any manner, in whole or in part, without the prior written permission of Silicon Graphics, Inc. LIMITED RIGHTS LEGEND The software described in this document is “commercial computer software” provided with restricted rights (except as to included open/free source) as specified in the FAR 52.227-19 and/or the DFAR 227.7202, or successive sections. Use beyond license provisions is a violation of worldwide intellectual property laws, treaties and conventions. This document is provided with limited rights as defined in 52.227-14. TRADEMARKS AND ATTRIBUTIONS Silicon Graphics, SGI, the SGI logo, Altix, InfiniteReality, IRIX, Onyx, OpenGL, and Origin are registered trademarks and NUMAflex, NUMAlink, OpenGL Multipipe, OpenGL Performer, Onyx4, and UltimateVision are trademarks of Silicon Graphics, Inc., in the United States and/or other countries worldwide. ATI is a registered trademark of and FireGL, FGL, Radeon, and SmoothVision are trademarks of ATI Technologies, Inc. IBM is a registered trademark of International Business Machines Corporation in the U.S. Intel386 is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries. Linux is a registered trademark of Linus Torvalds in several countries. UNIX is a registered trademark of the Open Group in the United States and other countries. XFree86 is a trademark of the The XFree86 Project, Inc. All other trademarks mentioned herein are the property of their respective owners. Record of Revision Version Description 001 June 2004 Original publication. 007-4297-001 iii Contents Record of Revision ......................iii About This Guide.......................ix Audience.........................ix RelatedPublications......................ix ObtainingPublications.....................ix Conventions........................x ReaderComments.......................x 1. Product Overview.......................1 SystemConfigurations.....................1 ScalableSystemArchitecture....................2 ScalableGraphicsArchitecture...................3 CommodityGraphicsFeatures...................4 2. Architectural Overview .....................7 HardwareFeatures......................7 SystemArchitecture.....................7 G2-bricksandG2N-bricks...................8 GraphicsArchitecture....................8 OtherFeatures........................9 3. GPU Programming ......................11 VertexPrograms.......................12 FragmentPrograms......................14 007-4297-001 v Contents 4. Multipipe Programming .....................17 ScalingDimensions......................17 RenderingSpeedScaling....................17 ResolutionScaling......................18 DataSizeScaling......................18 ScalingTechniques.......................18 ScalingTools........................19 OpenGLMultipipe.....................19 OpenGLMultipipeSDK....................20 OpenGLPerformer.....................20 5. Platform-Specific Porting Information .................21 InfiniteRealityProgrammingFeaturesVersusUltimateVisionFeatures.......21 vi 007-4297-001 Contents MovingfromXsgitoXFree86...................22 TheXFree86ConfigurationFile.................23 RestartingGraphics....................23 ConfigurationandRun-TimeParameters..............25 ConfigurationFileLocation..................25 Bootstrapping.....................27 ErrorLogging......................28 ConfigurationFileFormat..................28 ServerLayoutSection...................30 ScreenSection.....................31 DeviceSection.....................32 MonitorSection.....................33 ModelineSection.....................33 Onyx4ConfigurationSpecifics..................34 ConfiguringPipesforStereo.................35 ConfiguringaMirageProjector................37 EnablingFull-SceneAntialiasing................37 EnablingOverlayPlanes..................38 ConfiguringDualChannels..................39 ConfiguringEdgeBlendingorChannelOverlapping..........40 MultipleKeyboards/MiceandMultipleXServers...........40 ConfiguringtheImageSyncIS1Card...............41 ConfiguringtheCompositor.................43 ConfiguringanIBMT2219-MegapixelMonitor............44 AddingorRemovingPipes..................45 6. Performance Tips .......................47 RetainedDataModel......................47 DisplayListOptimizer.....................48 VertexArrayObjects(VAOs)...................50 ElementArrays.......................51 VertexCaches........................51 StripConsolidation......................52 TextureLookupTables(TLUTs)...................52 007-4297-001 vii Contents FragmentProgramTips.....................53 Hyper-ZDepthTest......................54 Timing..........................54 PixelFormats........................55 A. Performance Benchmarks.....................57 glDrawPixels() and glReadPixels() Rates................57 TextureDownloadRates.....................61 Index...........................63 viii 007-4297-001 About This Guide This porting guide describes UltimateVision graphics for Silicon Graphics Oynx4 UltimateVision visualization systems and Silicon Graphics Visualization Systems for Linux. UltimateVision graphics combines the high bandwidth and scalability of the Onyx architecture with superb graphics performance, programmability, and prevalence of off-the-shelf graphics processing units (GPUs). Audience This guide is intended for graphics programmers who use SGI systems. It describes the architectural features of UltimateVision graphics and how it supports new and existing extensions to OpenGL. Related Publications The following documents contain additional information that may be helpful: • OpenGL Reference Manual • OpenGL Programming Guide Obtaining Publications To obtain SGI documentation, go to the SGI Technical Publications Library: http://docs.sgi.com 007-4297-001 ix About This Guide Conventions The following conventions are used throughout this document: Convention Meaning command This fixed-space font denotes literal items such as commands, files, routines, path names, signals, messages and programming language structures. variable Italic typeface denotes variable entries and words or concepts being defined. user input This bold, fixed-space font denotes literal items that the user enters in interactive sessions. (Output is showninnonbold,fixed-spacefont.) interface This font denotes the names of graphical user interface (GUI)elementssuchaswindows,screens,dialog boxes,menus,toolbars,icons,buttons,boxes,fields, and lists. Functions are also denoted in bold with following parentheses. manpage(x) Man page section identifiers appear in parentheses after man page names. Reader Comments If you have comments about the technical accuracy, content, or organization of this document, please tell us. Be sure to include the title and document number of the manual with your comments. (Online, the document number is located in the front matter of the manual. In printed manuals, the document number can be found on the back cover.) You can contact us in any of the following ways: • Send e-mail to the following address: [email protected] • Use the Feedback option on the Technical Publications Library Web page: http://docs.sgi.com x 007-4297-001 About This Guide • Contact your customer service representative and ask that an incident be filed in the SGI incident tracking system. • Send mail to the following address: Technical Publications SGI 1500 Crittenden Lane, M/S 535 Mountain View, California 94043-1351 We value your comments and will respond to them promptly. 007-4297-001 xi Chapter 1 1. Product Overview Silicon Graphics UltimateVision graphics systems provide a major shift in capabilities and price/performance when compared to previous visualization systems but also maintain compatibility with previous Onyx systems. The best features of Onyx systems—the flexible, scalable, shared memory architecture—have been combined with the best-of-class industry-standard graphics components to create the most powerful visualization solution. UltimateVision graphics is the next generation in the scalable graphics family, and the first product in the family that provides performance and features that rival InfiniteReality graphics but at a price to compete with clusters. UltimateVision graphics supports compositing of graphics pipes to build channels with massive performance or amazing image quality. Silicon Graphics Onyx4 UltimateVision systems can be configured with up to 32 graphics pipelines and 64 CPUs with up to 128 GB of memory. Each graphics pipe is also capable of driving two independent displays providing up to 64 channels of video. System Configurations Onyx4 systems can be ordered in three different configurations: Power, Team, and Extreme. They are all fundamentally built from the same components, but each of these configurations fit a different-sized solution: •Powerconfiguration –2-8CPUs –2or4graphicspipes –Norouters 007-4297-001 1 1: Product Overview • Team configuration –8-16CPUs – 4, 6, or