Frequently Asked Questions

General OpenGL Performer™ for Linux FAQ

Dependencies FAQ

Installation & Getting Started FAQ

General FAQ

What is OpenGL Performer?

For more general information about OpenGL Performer, see the product overview or General FAQ.

OpenGL Performer is a powerful and comprehensive programming interface for developers creating real-time visual simulation and other performance-oriented 3D graphics applications. It simplifies development of complex applications used for visual simulation, manufacturing, simulation-based design, virtual reality, scientific visualization, interactive entertainment, broadcast video, architectural walk-through, and computer-aided design.

OpenGL Performer provides the advanced features and innovative techniques that enable you to achieve peak performance and make optimal use of system capabilities and sophisticated 3D graphics features. It gives you the capability to scale easily to multiple processors and multiple graphics pipelines, deploy to a wide range of systems and price points, and be ready-made for the graphics systems of today and the future.

OpenGL Performer is built atop the industry standard OpenGL graphics library and includes both ANSI C and C++ bindings. It forms the foundation of a powerful suite of tools and features for creating high-performance 3D graphics applications on all Silicon Graphics® systems running IRIX® 6.5 or later, 32-bit Intel® based systems with Linux, 64-bit Intel® Itanium® 2 based systems with Linux, and 32-bit Intel based systems with Microsoft® Windows® 2000 or Windows® XP.

OpenGL Performer is an integral part of the SGI® Onyx® Series and Silicon Graphics Prism® visualization systems and visual workstation simulation solutions from SGI and, in particular, provides interfaces to the advanced features of InfiniteReality®, UltimateVision™, and Silicon Graphics Prism class graphics. OpenGL Performer is the flexible, intuitive, toolkit-based solution for developers who want to optimize performance on SGI systems.

What platforms does OpenGL Performer run on?

OpenGL Performer™ 3.2 supports all SGI graphics systems running IRIX 6.5 or later, 32-bit Intel systems running Red Hat® Linux® 8.0 and above, 64-bit Intel Itanium 2 based Silicon Graphics Prism systems running SGI ProPack® 3.0 Service Pack 2 or above, and Windows 2000 and above.

OpenGL Performer™ 3.1 supports all SGI graphics systems running IRIX 6.5 or later, Intel 32-bit Intel systems running Red Hat® Linux® 8.0 and above, and Windows 2000 and above.

OpenGL Performer™ 3.0 supports all SGI graphics systems running IRIX 6.5 or later, Intel 32-bit Intel systems running Red Hat® Linux® 7.2, 7.3, and 8.0, and Windows NT®, Windows XP, or Windows 2000.

OpenGL Performer™ 2.5 supports all SGI systems running IRIX 6.5 or later, as well as IA32-based systems with Linux. The Linux version was built and has been tested with Red Hat® Linux® versions 6.1, 6.2, 7.0, 7.1, and 7.2 on a variety of Intel® Pentium® based systems including the Silicon Graphics® 230, Silicon Graphics® 330, and Silicon Graphics® 550 workstations with the VPro™ graphics accelerator. It is also known to run with several other Linux distributions on IA32-based hardware.

What are the dependencies for this release?

32-bit Linux

The libraries and sample programs built for OpenGL Performer 3.2 for 32-bit Linux have dependencies upon the following DSO's. For your convenience their corresponding package name from a Red Hat 8.0 system is included below (package names will differ).

libpthread.so.0[glibc-2.2.93-5]
libc.so.6[glibc-2.2.93-5]
libdl.so.2[glibc-2.2.93-5]
libm.so.6[glibc-2.2.93-5]
ld-linux.so.2[glibc-2.2.93-5]
libgcc_s.so.1[libgcc-3.2-7]
libstdc++.so.5[libstdc++-3.2-7]
libGL.so.1[XFree86-Mesa-libGL-4.2.0-72]
libGLU.so.1[XFree86-Mesa-libGLU-4.2.0-72]
libXt.so.6[XFree86-libs-4.2.0-72]
libX11.so.6[XFree86-libs-4.2.0-72]
libXext.so.6[XFree86-libs-4.2.0-72]
libXmu.so.6[XFree86-libs-4.2.0-72]
libSM.so.6[XFree86-libs-4.2.0-72]
libICE.so.6[XFree86-libs-4.2.0-72]

64-bit Linux:

The libraries and sample programs built for OpenGL Performer 3.2 for 64-bit Linux have dependencies upon the following DSO's. For your convenience their corresponding package name from a Silicon Graphics Prism system running SGI ProPack 3.0 Service Pack 2 is included below (package names will differ).

libpthread.so.0[glibc-2.3.2-95.20sgi302c3]
libc.so.6.1[glibc-2.3.2-95.20sgi302c3]
libGL.so.1[XFree86-Mesa-libGL-4.3.0-62.ELsgi302c9]
libGLU.so.1[XFree86-Mesa-libGLU-4.3.0-62.ELsgi302c9]
libm.so.6.1[glibc-2.3.2-95.20sgi302c3]
libXt.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]
libX11.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]
libXext.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]
libXmu.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]
libdl.so.2[glibc-2.3.2-95.20sgi302c3]
librt.so.1[glibc-2.3.2-95.20sgi302c3]
libstdc++.so.5[libstdc++-3.2.3-34]
libgcc_s.so.1[libgcc-3.2.3-34]
ld-linux-ia64.so.2[glibc-2.3.2-95.20sgi302c3]
libSM.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]
libICE.so.6[XFree86-libs-4.3.0-62.ELsgi302c9]

Where can I get OpenGL?

OpenGL is now available from many sources and is included with many popular Linux distributions. Most vendors (including SGI) pre-bundle accelerated OpenGL drivers with their systems; some (nVidia, ATI, et al) have accelerated drivers available on their web sites; and other vendors (3dfx, Matrox, ATI, etc) use drivers created by the DRI Project or the Utah-GLX Project. Which implementation of OpenGL to choose is ultimately dependent upon the type of graphics card you have.

OpenGL Performer is compatible with any implementation of OpenGL that conforms to the OpenGL ABI for Linux, such as:
  • Silicon Graphics Prism systems with ATI graphics are shipped with specially tuned OpenGL drivers pre-installed.

  • Silicon Graphics 230, Silicon Graphics 330, and Silicon Graphics 550 workstations with VPro graphics are shipped with specially-tuned OpenGL DSO's.

  • NVIDIA® drivers compliant with the OpenGL ABI for Linux can be found on the NVIDIA web site.

  • DRI Architecture Drivers. The DRI architecture uses Mesa and provides hardware acceleration for a number of popular chipsets. The DRI implementation is included in XFree86® 4.0.

  • OpenGL Sample Implementation is the driver framework used by almost all commercial 3D hardware vendors to develop OpenGL drivers for their systems. Source code is available from the SGI Open Source web site.

  • Mesa is a 3D graphics library with an API which is very similar to that of OpenGL. Mesa 3.2 and later includes OpenGL ABI for Linux compliant DSO's.

More links to various vendors' OpenGL implementations are available from these sites (subject to change): How can I determine what version of glibc I have?

At a shell prompt, type:

rpm -qa | grep glibc
You will see output similar to the following:
glibc-2.2.93-5
glibc-utils-2.2.93-5
glibc-debug-2.2.93-5
glibc-kernheaders-2.4-7.20
glibc-debug-static-2.2.93-5
glibc-common-2.2.93-5
glibc-devel-2.2.93-5
glibc-profile-2.2.93-5

How do I install this release?
  1. Check to see that you have the software listed above as dependencies already installed on your system.

  2. Download all OpenGL Performer rpm files from the download site into a temporary location on your system. (for example, /usr/tmp)

  3. Log in as root.

  4. In a shell window, type:
    rpm -Uvh /usr/tmp/sgi-performer_*.rpm
    
    (Replace /usr/tmp with the location where you downloaded the files)

    Refer to the rpm(1) manual page for more information about the rpm tool.

What do these rpms install?

sgi-performer installs the execution-only-environment, which contains the OpenGL Performer run-time libraries under /usr/lib: libpf.so, libpfui.so, libpfuiD.so, libpfdu.so, libpfutil.so, libpfv.so, the libpfv modules in /usr/lib/libpfv, and the data file loaders in /usr/lib/libpfdb.

sgi-performer-demo-license installs a FlexLM license required by OpenGL Performer for Linux. It is packaged separately so future sgi-performer upgrades will not disturb a pre-installed license.

sgi-performer-demos installs a number of example model files under /usr/share/Performer/data as well as an example file viewer called perfly in /usr/bin/X11 and the perfly manual page in /usr/man/man1.

sgi-performer-devel installs the full OpenGL Performer for Linux development environment. It includes header files in /usr/include/Performer, manual pages in /usr/man/man3, example programs in /usr/share/Performer/src, and release notes in /usr/doc/performer-2.5.

sgi-performer-docs installs the on-line (HTML) version of the OpenGL Performer Programming Guide and OpenGL Performer Getting Started Guide.

sgi-performer-docs-print installs printable (PDF) versions of the above manuals.

What should I do if the files are corrupt?

We occasionally receive feedback from users stating that their installation tool (rpm, tar, dpkg, etc) reports that the OpenGL Performer files they've downloaded are corrupt. We check the images frequently to verify they are correct. In all cases to date this has been verified to be a temporary network problem, or a operator or system error, usually having to do with File Download modes.

Check the following:
  • Use shift-click when downloading the images. This will bring up a dialog box allowing you to save the images properly.

  • File download mode. This problem can occur if you (perhaps inadvertently) allow the images to download in ASCII or 'Text' mode instead of Binary or 'Source' mode. If using Netscape®, in the 'Save As...' window, be certain to set the 'Format for Saved Document' field to 'Source'.

  • File size & checksums. Check that the files you've downloaded match with the sizes & checksums below.

  • Disk space. Check that you are not running out of disk space. The full OpenGL Performer for Linux distribution requires approximately 200MB for the installed files, plus 75MB temporarily to hold the downloaded images.

  • Try another system or just try again. During troubleshooting, users have indeed reported that although nothing changed in their download method from one try to the next, one download was corrupt and subsequent downloads worked properly.

  • Infrequently, website glitches cause corrupted or truncated files. If all other troubleshooting fails and the site seems to have been having trouble for some time, contact us and we'll run a test download.

Here are the file sizes for OpenGL Performer 3.2 for 32-bit Linux:

 6213030 sgi-performer-3.2.0_gcc3-1.i386.rpm
    3783 sgi-performer-demo-license-3.2.0_gcc3-1.i386.rpm
32090556 sgi-performer-demos-3.2.0_gcc3-1.i386.rpm
24199607 sgi-performer-devel-3.2.0_gcc3-1.i386.rpm
10900312 sgi-performer-docs-3.2.0_gcc3-1.noarch.rpm
 8057547 sgi-performer-docs-print-3.2.0_gcc3-1.noarch.rpm

 6241034 sgi-performer-3.2.0-1.tgz
     395 sgi-performer-demo-license-3.2.0-1.tgz
32252320 sgi-performer-demos-3.2.0-1.tgz
23876540 sgi-performer-devel-3.2.0-1.tgz
10875137 sgi-performer-docs-3.2.0-1.tgz
 8106832 sgi-performer-docs-print-3.2.0-1.tgz

Here are the file sizes for OpenGL Performer 3.2 for 64-bit Linux:

 5933383 sgi-performer-3.2.0-1.ia64.rpm
    3886 sgi-performer-demo-license-3.2.0-1.ia64.rpm
32283199 sgi-performer-demos-3.2.0-1.ia64.rpm
60279732 sgi-performer-devel-3.2.0-1.ia64.rpm
10912265 sgi-performer-docs-3.2.0-1.noarch.rpm
 8057708 sgi-performer-docs-print-3.2.0-1.noarch.rpm

 6028772 sgi-performer-3.2.0-1.tgz
     409 sgi-performer-demo-license-3.2.0-1.tgz
32452695 sgi-performer-demos-3.2.0-1.tgz
60164606 sgi-performer-devel-3.2.0-1.tgz
10875132 sgi-performer-docs-3.2.0-1.tgz
 8106825 sgi-performer-docs-print-3.2.0-1.tgz

Here is the output of 'sum -r' for OpenGL Performer 3.2 for 32-bit Linux:

15935  6068 sgi-performer-3.2.0_gcc3-1.i386.rpm
49870     4 sgi-performer-demo-license-3.2.0_gcc3-1.i386.rpm
54804 31339 sgi-performer-demos-3.2.0_gcc3-1.i386.rpm
17794 23633 sgi-performer-devel-3.2.0_gcc3-1.i386.rpm
48982 10645 sgi-performer-docs-3.2.0_gcc3-1.noarch.rpm
53725  7869 sgi-performer-docs-print-3.2.0_gcc3-1.noarch.rpm

05275  6095 sgi-performer-3.2.0-1.tgz
09860     1 sgi-performer-demo-license-3.2.0-1.tgz
05783 31497 sgi-performer-demos-3.2.0-1.tgz
32063 23317 sgi-performer-devel-3.2.0-1.tgz
49244 10621 sgi-performer-docs-3.2.0-1.tgz
49136  7917 sgi-performer-docs-print-3.2.0-1.tgz

Here is the output of 'sum -r' for OpenGL Performer 3.2 for 64-bit Linux:

30014  5795 sgi-performer-3.2.0-1.ia64.rpm
27433     4 sgi-performer-demo-license-3.2.0-1.ia64.rpm
03184 31527 sgi-performer-demos-3.2.0-1.ia64.rpm
03794 58867 sgi-performer-devel-3.2.0-1.ia64.rpm
30175 10657 sgi-performer-docs-3.2.0-1.noarch.rpm
42016  7869 sgi-performer-docs-print-3.2.0-1.noarch.rpm

33025  5888 sgi-performer-3.2.0-1.tgz
60566     1 sgi-performer-demo-license-3.2.0-1.tgz
02263 31693 sgi-performer-demos-3.2.0-1.tgz
14299 58755 sgi-performer-devel-3.2.0-1.tgz
10719 10621 sgi-performer-docs-3.2.0-1.tgz
25652  7917 sgi-performer-docs-print-3.2.0-1.tgz

(Note: 'sum -r' produces different results on an IRIX system than on a Linux system. The above sums were taken on a Linux system.)

What should I do to run it?

OpenGL Performer is an Application Programming Interface that you would typically make calls to in your own program. However, there are some sample programs in the distribution. After installing the images, open a shell window and type the following:

    perfly rocket_tux.pfb
    or
    perfly town.perfly

Press escape to exit the program. Don't forget to left-click in the perfly window if your window manager's focus policy is set to explicit, which is the default on many Linux systems. Also, don't forget to turn on textures.

Why aren't the models textured?

Turn textures on if your graphics card can support it. In perfly, hit the 't' key or left-click on the button that says "Texture: off", it should change to "Texture: default".

My graphics card has hardware acceleration, why isn't it faster than with Mesa?

Check to see that you're using the hardware renderer. Open up a shell window and type:

setenv PFNFYLEVEL 7
perfly esprit.pfb

Check for the name of the Machine Type:. If you see "Mesa X11" you're using Mesa as an OpenGL layer. If you are using hardware, you will see "Mesa NVIDIA RIVA 1.0" (if using a TNT2 card), or something similar for other vendors.

Below are some common pitfalls involved with installing drivers for hardware acceleration:

  • Check the location and filenames of your OpenGL libraries. OpenGL Performer requires OpenGL ABI for Linux compliant DSO's, which follow the naming convention libGL.so.1.xyz (The .xyz refers to a vendor-specific version ID, and is optional).

    Typically, these libraries are installed as /usr/lib/libGL.so.1 or /usr/X11R6/lib/libGL.so.1. Make sure they exist as such and that your /usr/lib/libGL.so points to this location.

  • Check that the X server is loading the GLX module. To see if it is already loaded, type:

    xdpyinfo | grep GLX

    If GLX is not reported, check to make sure you're specifying the GLX module in your XF86Config. Generally, you should have an entry similar to the following:

    Section "Module"
        Load "glx.so"
    EndSection
    

    Note: XFree86 4.0 & above may require a different configuration. Configuration of XFree86 4.0 is beyond the scope of this document. Refer to the XFree86 web site for more information.

  • Check that your X server is running at a default pixel depth that allows for hardware acceleration. Certain graphics cards will automatically revert to software emulation when running at certain pixel depths. We recommend a 16 bits-per-pixel setting for most systems.

    Default Pixel depth may be set in your XF86Config file with the DefaultDepth token in , or specified manually on the command line when starting the X server, as follows:

    XFree86 3.3.x:  startx -- -bpp 16
    XFree86 4.x:    startx -depth 16 -fbbpp 16