340 likes | 517 Views
Graphics Hardware and Software using Linux. Ray Gasser, rayg@bu.edu Graphics Programmer/Analyst Scientific Computing and Visualization Group Boston University. Introduction. Agenda Why Linux/Intel? Hardware Video Cards Processors I/O and Memory Software System (OS, X, drivers)
E N D
Graphics Hardware and Software using Linux Ray Gasser, rayg@bu.edu Graphics Programmer/Analyst Scientific Computing and Visualization Group Boston University
Introduction Agenda • Why Linux/Intel? • Hardware • Video Cards • Processors • I/O and Memory • Software • System (OS, X, drivers) • Graphics APIs and Libraries • Development environments • Resources • Issues • Future • Conclusions
Why Linux/Intel? SGI InfiniteReality3 210 million polygons per second 896 megapixels /sec pixel fill rate per pipe (up to 7.2 gigapixels) 1-16 graphic pipelines per system 24-bit floating-point Z buffer 48-bit RGBA color AA 8X (multisampling) 1-8 channels per pipe 256MB texture memory per pipe (up to 1 GB texture memory) 80MB - 320MB frame buffer per pipe 11.2GB/sec - 716GB/sec system bandwidth MSRP $119,000.00 entry level (includes Onyx 300) http://www.sgi.com/visualization/onyx/3000/ir3
Why Linux/Intel? ATI Radeon 9700 - latest consumer video card (linux drivers to come) 300 million triangles per second 2.6 gigapixel /sec fill rate (textured, AA, Z) 1 128-bit floating point graphics pipeline 24-bit floating-point Z buffer 128-bit fp RGBA color AA 2X/4X/6X (multisampling and supersampling) 2 channels (1 VGA, 1 DVI) 128MB quad channel DDR SDRAM frame buffer 2.1GB/sec system bandwidth AGP 3.0 bus (2x/4x/8x) MSRP $399.00 (you have to supply the PC) http://www.ati.com/products/pc/radeon9700/index.html http://www.anandtech.com/video/showdoc.html?i=1656 http://www.tomshardware.com/graphic/02q3/020718
Why Linux/Intel? Dave Pape's SPECglperf 3.1.2 results (Onyx2 IR vs PC) drawing display-listed, Z-buffered triangle strips, with varying triangle sizes http://www.evl.uic.edu/pape/papers/lowcost.spie02/node7.html
Why Linux/Intel? Dave Pape's CAVE app benchmark (Onyx2 IR vs PC) http://www.evl.uic.edu/pape/papers/lowcost.spie02/node7.html
Why Linux/Intel? • Graphics hardware cost/performance • Intel leader in CPU cost/performance • Open Source (large community, many projects) • UNIX (what you are used to)
Hardware: Video Cards (current state) • Game driven • Large number of manufacturers • Low cost • GPU • Hardware T&L • Hardware Z buffer • Hardware AA • Texture support • Linux drivers
Hardware: Video Cards (limitations) • limited number of channels (1 AGP slot) • limited texture memory • fill rate • precision* (16bit Z, 32 bit integer graphics pipe) • quality* (16bit color depth) • video Radeon R300*
Hardware: Video Cards (consumer) • Pros • very low cost (<$500.00) • high performance • innovative: pixel/vertex shaders, shadow buffers, 3D textures • very fast production cycles (6 months) • Cons • poor precision (16bit Z, 32 bit integer graphics pipe) • poor quality (16bit color depth) • poor line drawing rates • poor AA • Examples • nVidia GeForce4 Ti • ATI Radeon 9700 • Matrox Parhelia
Hardware: Video Cards (professional) • Pros • good precision/quality • good line drawing rates • good AA • fully accelerated OpenGL 1.2 • more memory • more hardware lights • overlay plane support • quad-buffered stereo • dual channel • application support and certification • Cons • performance about the same as consumer cards • price 2-3x high end consumer cards • lag (1 cycle) consumer cards in feature innovations
Hardware: Video Cards (professional) • Examples • nVidia Quadro4 • ATI FireGL • 3DLabs Wildcat
Hardware: Processors • 32 bit (Intel XEON, Intel Pentium4, AMD Athlon) • 64 bit coming (Intel Itanium2, AMD Opteron) • Pros • increased memory address space • higher precision at higher speed • Cons • data type size increases • greater application memory requirements • performance can degrade if buses not increased • cost >10x 32bit • very new • Cache L1, L2 • Number of processors (1, 2, or 4) • realtime applications require at least 2 processors
Hardware: I/O and Memory • AGP 3.0 bus • (2x/4x/8x) • 2.1 GB/s bandwidth • Storage • ATA/100 • Ultra 160 SCSI • Ultra 320 SCSI • System Bus • 133MHz • 400MHz • Memory • DDR SDRAM • RDRAM (dual-channel) • Kernel supports up to 64GB of physical memory
Software: System (Operating System) • Red Hat • RPM • capable installer • most apps certified for Red Hat • IBM • Itanium • Debian • user maintained/non-commercial • very stable • advanced package management • apt-get (Synaptic version reads RPM) • very good with dependencies • Hewlett-Packard
Software: System (Operating System) • Debian • no release schedule (packages released when ready) • often behind other distributions (no KDE 3.0, no XFree86 4.0) • UnitedLinux • Caldera • Suse • Conectiva • TurboLinux
Software: System (X and OpenGL) • X Windows XFree86 4.X • Direct Rendering Infrastructure (DRI) • direct access to graphics hardware • first used to create fast OpenGL implementations • integrates with Mesa (open source OpenGL) • OpenGL drivers • ATI • Radeon* open source DRI (Weather Channel funds TG) • FireGL closed source • nVidia • GeForce closed source unified driver • Quadro closed source unified driver *coming end 2002
Software: System (X and OpenGL) • OpenGL drivers • Matrox • open source DRI (Precision Insight) • 3Dlabs • 3rd party, IBM, some open source DRI • 3rd Party • Xi Graphics http://www.xi-graphics.com • Tungsten Graphics http://www.tungstengraphics.com • Metrolink http://www.metrolink.com
Software: Graphic APIs and Libraries • OpenGL (SGI SI* Open Source) v1.3 • software interface to graphics hardware • low level • hardware independent • distributed either as Mesa (part of XFree86) or with video card (e.g. nVidia) • GLX (SGI SI Open Source) • glue connecting OpenGL and X Windows • distributed with OpenGL • GLU (SGI SI Open Source) • OpenGL Utility Library • modeling features (quadratic surfaces, NURBS, curves) *SI Sample Implementation
Software: Graphic APIs and Libraries • GLU (SGI SI Open Source) • SGI SI v1.3 GLU library replaces Mesa GLU • distributed separately from OpenGL • http://www.mesa3d.org/downloads/sgi.html • Glut (Open Source) • OpenGL Utility Toolkit • windowing toolkit (mouse, keyboard, menus, windows) • uses callbacks • abstracts native windowing system (X and GLX) • cross platform toolkit • above Xlib and GLX • distributed separately from OpenGL • http://www.opengl.org/developers/documentation/glut/index.html
Software: Graphic APIs and Libraries • Open Inventor • OO toolkit built on top of OpenGL • standard file format • scene graphs • event model • SGI v2.1 http://oss.sgi.com/projects/inventor • open source sample implementation • Template Graphics Software v3.1 http://www.tgs.com • closed source • commercial product • higher performance • many enhancements (multi thread, volumetric rendering, multipipe, collision detection, stereo, etc.) • support for clusters coming
Software: Graphic APIs and Libraries • OpenGL Performer v2.5 • high level API for creation of real-time visual simulations • built on top of OpenGL • high performance • closed source • commercial product http://www.sgi.com/software/performer http://www.sgi.com/software/performer/mailinglist.html
Software: Development (compilers) • GNU gcc 2.X • GNU gcc 3.0 • P4 optimizers • C, C++, Objective C, Java, Fortran 77 • Intel Fortran and C/C++ v6.0 • Fortran 95 • substantial source and object code compatibility w GNU C • supports 3.0 ABI • P4, XEON, and Itanium optimizers • Absoft Pro Fortran v7.5 • Fortran 95 and Fortran 77 • P4 and AMD optimizers • graphical debugger
Software: Development (compilers) • Portland Group Fortran and C/C++ v4.0 • Fortran 90 and Fortran 77 • P4 and AMD optimizers • graphical debugger
Software: Development • Debuggers • gdb (GNU) • ldb (Intel) • valgrind (memory) • electric fence (memory) • spyGLass (OpenGL) • Profilers • gprof • cprof • vprof
Software: Development • IDEs • RedHat GNUPro • Metroworks CodeWarrior • KDE Kdevelop • Borland Kylix (Delphi) • Code Forge • Windowing Toolkits • Qt Designer • gtk+ http://developer.gnome.org/ • FLTK • ICS BXpro (viewkit, RapidApp) http://developer.kde.org/tools/index.html http://www.codeforge.com http://developer.gnome.org http://www.trolltech.com http://www.ics.com
Resources • Linux Documentation • http://www.tldp.org • http://www.linux.org • Open Source Repositories • http://freshmeat.net • http://sourceforge.net • http://oss.sgi.com/projects • http://www.gnu.org
Resources • Graphics Resources • http://www.opengl.org • http://www.mesa3d.org • http://dri.sourceforge.net • http://www.xfree86.org • http://www.linux3d.org • http://www.sgi.com/software/software.html#linux
Issues with Linux • Poor support (volunteer effort) • Lack of commercial applications (Office, Photoshop) • Too many cooks in the kitchen • Dependency Hell • Lack/delay of drivers (e.g. ATI Radeon 9700)
Future • OpenGL 2.0, Cg • Programmability • vertex processing • fragment processing • image formats • multipass algorithms • flexible frame buffer config • offscreen rendering • control of texture memory • Microsoft • DirectX 9 • targeting Linux • owns much SGI's 3D patents
Future • "Microsoft senior vice president Craig Mundie gave a speech at New York University in which Microsoft officially declared war on Linux.“ • "Silicon Graphics Inc has transferred much of its 3D graphics patents portfolio to Microsoft... sources close to the Mountain View are emphatic that these represent the bulk of SGI's 3D intellectual property assets, a view confirmed by documents disclosed to The Register. " http://www.theregister.co.uk/content/54/23708.html
Conclusions Linux is a cost effective and rich environment for the development and deployment of computer graphics.