                                                                              
------------------------------------------------------------------------------
              Fire GL2, Fire GL3, Fire GL4 Graphics Accelerator
              Fire GL2, Fire GL3 and Fire GL4 Video Driver for Linux
              Driver Version 4.0.3-1.9.7
              Driver Version 4.1.0-1.9.7
------------------------------------------------------------------------------


  Please read the entire contents of this document. Information in this
  file may not appear in printed documentation or online help.


  NOTES:

      (1) There are also drivers for XFree86 4.1.0 which is an individual
          XServer version and a bit different from X4.0.3 binaries. Despite
          this the installation procedure for the drivers is just the same.

      (2) The term 'Fire GL' used in this document refers to the following 
          graphics accelerators: Fire GL2, Fire GL3, Fire GL4.


  This READ-ME file contains the following information:

      1.      GENERAL INFORMATION
      1.1     Requirements
      1.2     List of Product Files

      2.      INSTALLING THE FIRE GL SERIES VIDEO DRIVER
      2.1     How to get the correct binary distribution package
      2.2     Installing the driver using the Install.sh script
      2.3     Generating a kernel with ISSE support (Kernel 2.2.x)
      2.4     Generating a customized kernel module
      2.5     Enabling AGP support

      3.      CHANGING THE VIDEO SETTINGS
      3.1     Changing the settings using the firegl23config program

      4.      CONFIGURATION FEATURES AND INFORMATION

      5.      OPTIONS

      6.      NOTES, PROBLEMS, AND LIMITATIONS

      7.      SERVICE, SUPPORT, AND SOFTWARE UPGRADES


1. GENERAL INFORMATION
----------------------

  This driver is based on the xfree86 version mentioned in the document header.
  (see http://www.xfree86.org/4.0/ for documentation)
  You must install this version of xfree86 before installing the drivers for the
  Fire GL accelerator.

  If your Linux distribution does not include the current version of XFree86,
  you must download the xfree86 4.0.3 binaries from
      'ftp://ftp.xfree86.org/pub/XFree86/4.0.3/binaries/'.
  
  Since the driver binaries for Fire GL3, Fire GL2, and Fire GL4 are identical, the 
  references in the following documentation will mention only Fire GL. 
  There is no difference in the setup for the users of the Fire GL2/3/4. 


1.1 Requirements
----------------

  1. Only Linux/x86 versions based on libc 6.1 (=glibc 2.1) and libc 6.2
     (=glibc 2.2) are supported.

  2. XFree86 Version 4.0.3 must be installed beforehand.

     Note: If you are a RedHat 7.0 user you are required to get a new 
     plugin capable libGL.so.1.2 from XFree86.org. A full update to XFree86
     Version 4.0.3 is highly recommended.

  3. If you have a processor that is ISSE capable and install a ISSE enabled
     Linux kernel, the Fire GL driver can use a highly optimized ISSE OpenGL
     client driver.
     (ISSE: Internet Streaming Single-Instruction, Multiple-Data Extensions;
     an extension of the IA-32 instruction set in Pentium III processors)
     
     At the moment you can add ISSE support to the Linux kernel as follows:
     
         - apply a patch to the kernel (see 2.3)
         - recompile the kernel
         - install the recompiled kernel.
 
     NOTE: The AMD 3DNow! enhanced OpenGL driver does not need a kernel patch.
     
     NOTE: Kernel 2.4.x comes with Pentium 3 support already built in. You
           do not need the ISSE kernel patch.

  4. To generate version-specific kernel modules on your local machine,
     you need a full kernel sources tree on your workstation machine.

  
1.2 List of product files
-------------------------

  ReadMe.txt    - This document.
  Install.sh    - The installer script.
  fglibc21.tgz  - Binary distribution for ix86 systems with libc6.1 (=glibc2.1)
                  ( e.g. SuSE 6.2/6.3/6.4/7.0, RedHat 6.1/6.2/7.0 ).
  fglibc22.tgz  - Binary distribution for ix86 systems with libc6.2 (=glibc2.2)
                  ( distributions that are newer than above versions ).


2. INSTALLING THE FIRE GL VIDEO DRIVER
--------------------------------------


2.1 How to get the correct binary distribution package
------------------------------------------------------

  First determine which binary distribution you need for your system.

  To find out which binary distribution you need, download the script 
  'Install.sh' and run it:
  
      sh Install.sh -check

  This should provide information on which binary distribution is suitable for
  your system. 
  NOTE: Getting the correct binary distribution information may prevent
  you from wasting time by downloading the wrong distribution.


2.2 Installing the driver using the Install.sh script
-----------------------------------------------------

  Save the script 'Install.sh' and the downloaded binary distribution file
  into a single directory (choose a temporary location with enough space).
  Get super user (root) privileges and change (cd) to the selected directory.
  Then run the installer script as follows:

      sh Install.sh

  When the driver files are installed, the sytem asks you to configure the
  settings. Answer 'Y' when prompted for calling firegl23config. This will 
  start the firegl23config program.

  Respond to the questions of the firegl23config program and save the
  settings to /etc/X11/XF86Config.


2.3 Generating a kernel with ISSE support (Kernel 2.2.x)
--------------------------------------------------------

  If your kernel does not have Pentium III ISSE support, you need a kernel patch
  to get benefit from the Pentium III ISSE instruction set.

  +++ The Fire GL driver was tested with a patched kernel 2.2.14 +++

  The patches on 'http://people.redhat.com/mingo/mmx-patches/' may be useful.
  Please note that all these patches still represent only 'alpha' or 'beta' 
  code. Our experience with version "mmx-2.2.14-A0" was quite positive.

  You must only use the exactly matching kernel source from www.kernel.org.
  Any distribution-specific kernel, e.g. 2.2.14-5.0 from RedHat or 2.2.14.SuSE
  may not work.
  +++ It is highly recommended to backup the old kernel sources before applying
      the patch! +++

  Extract the kernel sources to a directory of your choice, typically in
      /usr/src.
  Make sure that the new linux kernel sources are referenced by a symbolic link
  called /usr/src/linux before continuing.

  Copy the patch file to /usr/src and extract it from there:
 
      - for a gzip-packed patch use

            'zcat piii.gz | patch -p0 -E' 
  
      - for unpacked patches use 
  
            'cat piii | patch -p0 -E' 
  
  No queries or errors are displayed if your kernel matches 
  exactly the kernel the patch was designed for.

  Change to '/usr/src/linux' and type 'make menuconfig' to start the kernel
  configuration program. 
  Enter "Processor type and features". Select "PIII/Xeon/Deschutes" as
  Processor family to display ISSE or MMX2 menu items. For a fully working,
  ISSE-capable kernel select the following options:

      - Processor type and features
            (PIII/Xeon/Deschutes) Processor Family
            - [*] Enable CPU Specific (MMX/MMX2) Optimization Functions
            - [*] MTRR (Memory Type Range Register) support

      - Loadable Module Support 
            - [*] Enable loadable module support
            - [*] Kernel module loader support

  Save your settings and leave the menuconfig program.
  Build your kernel. See the documentation of your distribution vendor for 
  details.
  Install the newly compiled kernel and test it.
  +++ Keep your previous kernel bootable in case you experience problems. +++

  In case of doubt or trouble please check the files /var/log/XFree86.0.log and
  /var/log/messages for hints on possible failures.

  After you have successfully compiled and installed the new, patched kernel, 
  reboot your system with the new kernel.

  Install the driver for a second time. Use the Install.sh script again.
  Remember, you must be logged in with super user (root) privileges. 
  Now the necessary kernel driver module and client driver will be installed.                                    

  A software tool, called 'cpu_check' may be useful to check the system CPU and
  the kernel patch.


2.4 Generating a customized kernel module
-----------------------------------------

  The Fire GL is a graphics adapter that uses the performance capacity of
  your workstation intensively. Some features, like AGP support,
  busmaster DMA transfers, or memory mapping, need support from a precisely
  tailored kernel module. This module gets loaded at boot time and remains
  present for the driver all the time. (If the module is missing, you do not
  have hardware-accelerated 3D-support, but you can still use 2D at a reduced
  performance level.)

  The binary package comes with several fully working kernel modules for
  several distributions and kernel versions. So, in most cases, you don't need
  to build a kernel module.
  
  However, it is possible that none of the delivered kernel modules will fit
  your needs. For example:
  - if you have a new or customized Linux kernel, or
  - if you have kernel symbols versioning enabled.
  
  In these cases you must build the configured sources of your kernel
  at the location /usr/src/linux, which is allowed to be a symlink.
  Building a customized kernel module is an administrator's task.
  This is far less complex than building a new Linux kernel itself - 
  you only need to manually invoke two shell scripts.
  The steps to perform a build are listed here:
  
      - get the matching Linux kernel source (do a "make distclean" if exist)
      - setup that kernel source with the config file matching your kernel
      - do a "make dep" on the kernel source tree
      - go to /lib/module/firegl23/build_mod and start ./make.sh
      - go to /lib/module/firegl23 and start ./make_install.sh
  
  If you do not have hardware 3D support (run fireglinfo to check), or you
  have done any other important system change, e.g. a changed kernel,
  then you must start the kernel module build manually:
  Enter /lib/module/firegl23/build_mod and enter (as root) "./make.sh".
  This will force the creation of a new customer-tailored kernel module.
  Should the creation fail you will find hints on the cause in the
  shell and in the related logfile called "make.log".
  
  Note: in some configurations you will see lines like:
  
      compiling...
      /tmp/ccOWu6AI.s: Assembler messages:
      /tmp/ccOWu6AI.s:9: Warning: Ignoring changed section attributes 
          for .modinfo
          
  This warning comes due to a specific combination of Linux kernel
  sources and C compiler. Similar messages do appear if you build
  your own Linux kernel. This is a widely known Linux issue that does
  not affect your builds and therefore you can ignore this warning. 
  
  To set up a kernel module build you need the Linux kernel headers that
  match exactly the kernel you are running. This means:
  - if the kernel is configured SMP with P-III support and agpgart enabled
  - you must have a kernel source that is configured exactly the same way.
  
  If your kernel was already built by your Linux distribution:
  - Get the related source RPM file 
  - Extract the matching configuration settings contained there.
    (For RedHat Linux files might reside in the subdir "configs".
    For SuSE Linux these files will might be found in the SRPMs.
    Latest SuSE versions will present /proc/config.gz for the running kernel.)
  - Set up your kernel source with these settings,
    you can copy the config file to /usr/src/linux<your-extension>/.config
    and then call "make oldconfig" in order to perform exact importing
  - Perform "make dependencies" ("make dep").

  Note: If you want to build multiple modules for some reasons we
  highly recommend a "make distclean" between each cycle.
  
  In case you can no longer build the matching kernel headers
  it is best to 
  - build a new kernel from scratch that is optimal tailored to
    your machine,
  - install it and boot it
  - if it runs, continue with setup.
  
  To perform the final step on each customized kernel module build:
  - Go to /lib/modules/firegl23
  - Start ./make_install.sh
    This copies the matching kernel module into the loadable modules tree
    of your running kernel. The script further does the required update of
    the module loader dependency list.
  
  If you have several identical machines the kernel modules
  build on one machine are as exchangeable as the related
  Linux kernels are themselves. Copy the module into
  /lib/modules/firegl23 and restart the ./make_install.sh script.
  

2.5 Enabling AGP support
------------------------

  Several up-to-date distributions already come with built-in and, possibly,
  activated AGP support like an 'agpgart' kernel module, for example, 
  SuSE 7.0 or RedHat 7.0.

  If the kernel module of the graphics driver detects this feature,
  it tries to use it by connecting to the AGP module. To verify if the
  related module is loaded, enter 'lsmod' as root. When the XServer is running
  and the connection was established, the usage count of the agpgart 
  module is listed as different from zero.
  
  Note: agpgart is not a 'hard dependency' for module operation.
  Therefore the modules dependency list does not list it as a requirement for
  the firegl23 kernel module. This is to allow the system's administrator 
  maximum control of what he wants to run on a specific machine.

  The latest version of the driver's kernel module is shipped with
  'built-in' agp support. If your distribution's kernel setup does not provide
  agpgart-compatible services, the built-in agpgart module will be used.


3. CHANGING THE VIDEO SETTINGS
------------------------------

  +++ Use only the firegl23config tool to generate the XF86Config file! +++

  To generate the XF86Config file you must know the type of monitor,
  keyboard, and mouse of your system .
  IMPORTANT: Do not specify a monitor type with a horizontal sync rate 
  that exceeds the performance scope of your actually attached monitor. 

  ++++ Wrong monitor settings may damage your monitor! ++++


3.1 Changing the settings with firegl23config
---------------------------------------------

  1. Log on with root privileges.
 
  2. Run the Fire GL configuration program. Enter:

       firegl23config

  3. Answer the questions of the firegl23config program and save
     the settings to /etc/X11/XF86Config.

  4. Restart the XServer.


4. CONFIGURATION FEATURES AND INFORMATION
-----------------------------------------

  1. To check, if 3D acceleration is working properly, use the
     'fireglinfo' program installed together with the Fire GL driver.

     To run the test program enter:

         fireglinfo

     Typical output information (3D acceleration is working properly)
     may read like this:

         OpenGL vendor string: ATI
         OpenGL renderer string: Fire GL2 / FireGL3 (Pentium3)
         OpenGL version string: 1.2.2060 (1.3.1)

  2. There are other tools, for example, from XFree86 group that may be of
     some help, e.g. xdpyinfo or glxinfo.

  3. For information on the CPU support of your running system 
     run the application "cpu_check".


5. OPTIONS
----------

    This section lists options that you can set in the XF86Config file,
    in the section "Device", identifier "Fire GL[2|3|4]"


    Option "HW Cursor"
        Type OPTV_BOOLEAN
        - "yes" HW Cursor enabled
        - "no"  HW Cursor disabled
        default setting: "yes"

    Option "enable DVI"
        Type OPTV_BOOLEAN
        - "yes" : enable DVI connector(s)
        - "no":   disable DVI connector(s) if no DVI display device detected
        NOTE: The Fire GL3/4 always has the DVI connectors enabled when operating
              in a dual-screen video mode. 
        default setting: "no"


    Option "no_accel":
        Type OPTV_BOOLEAN
        - "no" : XAA hardware acceleration enabled
        - "yes": XAA hardware acceleration disabled (for test purposes)


    Option "NoDDC"
        Type OPTV_BOOLEAN
        - disables PnP Monitor functions, e.g., automatic mode configuration
          (important for Fire GL3/4 users who want to work with dual-screen
           modes)

    Option "Capabilities"
        Type OPTV_INTEGER
        - Open GL, provides selection of application speciffic profiles,
          e.g. 'ForceCopySwap' (x00000002),
               'default' (0x00000000)

    Option "Capabilities2"
        Type OPTV_INTEGER
        provides selection of other global settings,
        e.g. 'Gamma correction on 2D windows only (0x10000000)
               'default' (0x00000000)

    Option "ClientDriverName"
        Type OPTV_ANYSTR
        This option allows to use a different client driver. To enable the
        usage of the generic client driver, w/o Pentium III support, just 
        insert "firegl23" here.

    Option "FrameLock"
        Type OPTV_BOOLEAN
        If set, the graphics chip register "DTG_CNTRL", bit 0x01000000 is set,
        i.e. the external synchronization of the frame buffer refresh is 
        enabled.
        Locate connector J5,  if present: bracket to the left, solder side up;
            top - left (3 pins, "J5"). Do not mistake J5 for the stereo
            connector!

        NOTE: no input signal -> adapter hangs!

    Option "AGPSpeed"
        Type OPTV_INTEGER
        Possible values: 
            0 (AGP off), 
            1 (AGP 1x), 
            2 (AGP 2x), 
            4 (AGP 4x)
        With no entry, the highest possible AGP speed is set by default.

    Option "2048Dual"
        Type OPTV_BOOLEAN
        The mode "2048x1536" can be either a single-monitor mode or, with 
        Fire GL 3/4, a dual-monitor mode. (Compared to 2048x768, which is 
        always a dual-monitor mode)
        - "no" : single-monitor mode
        - "yes": dual-monitor mode
        The default setting, i.e. no entry, is single-monitor mode.

    Option "GammaPalette"
       Type OPTV_STRING
        This option allows to specify a path and file that holds all Gamma
        table entries for Fire GL 2/3/4. The values are loaded automatically 
        to the ramdac gamma attribute table when starting the X server.
        You can define up to 256 color entries (index 0 to 255). For each index you can 
        set a separate 10-bit color value for red, green and  blue. The color values may vary from 0 (= no color)
        to 1023 ( = full color).
        The format for the file entries is(all values in decimal numbers):

            # [comment]
            [index] [red value] [green value] [blue value]

        Sample clip of a palette file entry:
            # Palette Entries for  R 4.400000, G 4.400000, B 4.400000
            000 000 000 000
            001 290 290 290
            002 340 340 340
            003 372 372 372
            004 398 398 398
            005 418 418 418

        Sample for XF86Config file entry:
        ...
            Option "GammaPalette" "/home/myname/palettes/palette4.dat"
        ...

    Option "Qbs"
        Type OPTV_BOOLEAN
        Quad buffer stereo support. See 6.15 for limitations.
        - "off" : no Qbs support 
        - "on"  : Qbs support, when enabled with the "firegl23config" 
                  utility, 120 Hz modelines are added to the XF86Config file
        The default setting is "off"

    Option "Pbuffer"
        Type OPTV_INTEGER
        Select dimensions of the rectangular video memory area to be reserved for
        GLX 1.3 Pixel Buffers (pbuffers). The maximum dimension depends on board type
        and the biggest selected mode. Qbs enabled also reduces the maximum possible
        pbuffer dimensions.
        Possible values are:
            0 (disabled), 
            1 (1280x1024), 
            2 (1600x1200),
            3 (1920x1200)
            4 (2048x1536)
        No entry: pbuffers disabled.


6. NOTES, PROBLEMS, AND LIMITATIONS
-----------------------------------

  1. You cannot perform a graphic installation of Linux with the Fire GL.
     You need a different VGA-compatible graphics board.
     Exception: SuSE Linux 7.1 and later SuSE distributions.

  2. Corel users:
     It is not yet possible to install Corel Linux (Corel Linux 1.0 / 1.1)
     using a Fire GL 2 or higher graphics adapter.
     To install drivers for the Fire GL, you must first install Linux and 
     the drivers for the Fire GL using another VGA-compatible board before you
     can install the Fire GL graphics adapter into your system.

     To run this driver version with hardware acceleration, it is necessary to
     install a kernel (together with other system-depending settings,
     e.g. SCSI support) with, at least, the following settings 

          - Processor type and features
                (PPro/6x86MX) Processor Family
                - [*] MTRR control and configuration

          - Loadable Module Support 
                - [*] Enable loadable module support
                - [*] Kernel module loader support

     To get benefit from ISSE you need the following settings (patch installed,
     call as root, 'make menuconfig'):

          - Processor type and features
                (PIII/Xeon/Deschutes) Processor Family
                - [*] Enable CPU Specific (MMX/MMX2) Optimization Functions
                - [*] MTRR (Memory Type Range Register) support

          - Loadable Module Support 
                - [*] Enable loadable module support
                - [*] Kernel module loader support

     For generating a new kernel please consult your Linux manual
     CAUTION! Be careful when generating a new Linux Kernel!!!!
     Make sure you have an emergency boot diskette ready in case your systems
     stalls and does not start again!
     
  3. RedHat users:
     To install RedHat Linux together with the Fire GL, you must install
     RedHat Linux in text mode. (at linux loader menu choose "text<Enter>").

     After RedHat Linux and the Fire GL drivers are installed, edit 
     the file "/etc/inittab" 
     Change the line "id:3:initdefault:" to "id:5:initdefault:"
     Reboot the system.

     The default RedHat 7.1 symlink setup for X4.0.3 looks like this:

         /usr/X11R6/bin/X -> Xwrapper
         /etc/X11/X -> ../../usr/X11R6/bin/XFree86   

	 You can create these symlinks by entering these lines:

         ln -s Xwrapper /usr/X11R6/bin/X
         ln -s ../../usr/X11R6/bin/XFree86 /etc/X11/X   

  4. SuSE users (versions below 7.1):
     Use YAST1 to install SuSe Linux together with the Fire GL. 
     SuSE 6.3: boot with CD2, SuSE 6.4: boot with CD1. At the "boot:" prompt 
     type "manual" within 3 seconds and press <Enter>. When asked, select 
     'Yast1'.

     After installing the 'on CD' XServer 4.0 (at /cdrom/unsorted/XFree86-4.0)
     you may have to generate or redo some symbolic links to complete the
     installation.

         - The symbolic link 
               /var/X11R6/bin/X
           must point to the (again) symbolic link
               /usr/X11R6/bin/X
           which itself must point to the file
               /usr/X11R6/bin/XFree86 .

           Use
               'ln -s -f /usr/X11R6/bin/XFree86 /var/X11R6/bin/X'
           and
               'ln -s -f /var/X11R6/bin/X /usr/X11R6/bin/X'.

     Also, you may have to rename an older glx library (this is fixed since
     XFree86 4.0a):

         - delete the file 
               /usr/X11R6/lib/modules/glx.so 
           (or move it to a backup location).
           The new glx library will be libglx.a at 
               '/usr/X11R6/lib/modules/extensions/'.
               
         - create (change, if it exists already) a symbolic link
               /usr/lib/libGL.so.1
           pointing to 
               /usr/X11R6/lib/libGL.so.1
           by using
               'ln -s -f /usr/X11R6/lib/libGL.so.1 /usr/lib/libGL.so.1'.
               
         - create (change, if it exists already) the symbolic link
               /usr/lib/libGL.so.1.2
           pointing to
               /usr/X11R6/lib/libGL.so.1
           by using
               'ln -s -f /usr/X11R6/lib/libGL.so.1 /usr/lib/libGL.so.1.2'.

     Install the FireGL2 driver and reboot your system.

     Start the X server with startx and test your Xserver system using
         '/usr/X11R6/bin/fireglinfo'

     Typical program output information for a properly installed system:
     -------------------------------------------------------------------
     OpenGL vendor string: ATI
     OpenGL renderer string: Fire GL2 / Fire GL3 (Pentium3)
     OpenGL version string: 1.2.2060 (1.3.1)

     Output information for a system with bad libGL.so links:
     ---------------------------------------------------------
     No default configuration 'mesa3.1' in init file
     OpenGL vendor string: Brian Paul
     OpenGL renderer string: Mesa X11
     OpenGL version string: 1.2 Mesa 3.1

     Wrong glx library used (old library not renamed or deleted):
     ------------------------------------------------------------
     Xlib:  extension "GLX" missing on display ":0.0".
     Xlib:  extension "GLX" missing on display ":0.0".
     Error: couldn't find RGB GLX visual!

  5. Limitations
     - Libc 6.0 systems are not supported.

  6. OpenGL Applications, DRI, DRM
     please refer to the Precision Insight Documentation README.DRI located at
         /usr/X11R6/lib/X11/doc
     or 
         http://www.xfree86.org/4.0/DRI.html

  7. Other OpenGL implementations
     - Your system may have some other OpenGL compatible libraries
       (i.e. MesaGL) installed.
     - Your applications may link to other GL libs than provided with the
       Fire GL.
     This may result in software rendering techniques which are quite slower 
     than the hardware-accelerated render libs of the Fire GL.
     In this case we recommend that you consult an experienced Unix/Linux 
     expert who can either recompile the application appropriately or can 
     modify your library environment that the correct libs are found.

     If you are not sure what libs your program is using then type in 
         ldd <name_of_application>
     and you will get extended information. Especially if the GL libs 
     are located at your X11R6 subdirectory and therefore your application
     uses hardware.

     A reference to libGL.so.1.2 is rather good, however, a reference to, for
     example, libMesaGL.030300 is rather unlikely to serve your needs. For 
     other names, please check if the file is a symlink and which
     file on your system is the final target of the existing symlinks. 
     Also, please note that RedHat 7.0 only supplies a non-plugin-enabled
     libGL.so.1.2. Therefore you have to replace this file with the improved
     equivalent from the XFree86.org ftp site. 
     Fire GL only supports Xfree86 4.0.2, so we recommend that you upgrade to
     X4.0.2 and related drivers.

  8. DRI and Security
     The Section "dri" in your XF86Config file may, for example, look like:

         Section "DRI"
             Group "video"
             Mode 0660
         EndSection

     This implies that only users assigned to the group "video" can use 
     3D Hardware acceleration. To add a user to the group "video", do the 
     following:
     
         - edit [as root] the file /etc/group,
         - search for "video"
         - add the new user(s) at the end of the 'video' line, separated by a 
           comma (,).
           
     Example:
     adding a new user 'henryc' to  
         video:x:33:frankh,michaelg
     will result in
         video:x:33:frankh,michaelg,henryc

  9. Old GLX Library Files
     If there is a glx library file other than libglx.a, for example, libglx.so., 
     or similar, in directory  /usr/X11R6/lib/modules/extensions, an old graphics 
     driver installation may prevent a correct XServer access to the glx library. 
     Rename any glx library file(s), except of libglx.a, or move it/them to another 
     directory.

 10. Commonly used OpenGL utility libraries (GLU, GLUT)
     Most distributions come with a complete set of OpenGL utility libraries.
     Sometimes running a specific application may require a specific library 
     version which is not in the system.
     Since most libs are exchangeable (libMesaGLU.??? -> libGLU.so, libMesaGLUT
     -> libGLUT) for most applications all you need is 
     - create a symlink to the existing target
     - run 'ldconfig' afterwards. 
     Since these libs are running in user mode this modification is not 
     critical. Normally your application will run smoothly. In worst case you
     will get a segmentation fault or an unresolved external.
     
     Typical locations for libraries are:
     
         - /lib
         - /usr/lib
         - /usr/local/lib
         - /usr/X11R6/lib
         
     Make sure that there are no duplicate names so that you know what gets 
     active. If some application requires a specific lib in a specific tree 
     consider to create a symlink from the applications location to your
     preferred location rather than moving the files around each time.
     
     A typical error scenario is that you have an application which uses the
     GLU tesselation API but you have only MesaGLU (e.g. Mesa version 3.4).
     Your application will prompt you about unresolved symbols that start
     with 'gluTess'. In this case go to the download section of
         http://www.mesa3d.org.
     There you will find ready-to-install packages of the open source SGI 
     sample implementation of GLU.
     Currently the direct link to the download location is:
         ftp://mesa3d.sourceforge.net/pub/mesa3d/SI-GLU/
     where the file oss-opengl-glu-20000925-1.i386.rpm should work for you.
     
     For the GLUT library, you will find the latest release version at
         http://reality.sgi.com/mjk_asd/glut3/glut3.html
     for free download. Since the glut library is released in less frequent
     cycles, some of the attached sample programs may show errors.
     Sometimes you can find a fixed source for a sample in the glut/win32
     package at
         http://www.xmission.com/~nate/glut.html
     because of the shorter release cycles there. Note that this package 
     currently does not compile under Linux, since the project's work was not
     focussed on this target for a while - but this may possibly change. 
     You must move the selected source files into a regular GLUT-3.7 
     environment.
     
     There are other more or less important toolkits available. Some of them
     are included in GLUT (like gle, mui, glsmap) and others are distributed 
     separately. It is beyond the limited scope of this document to further 
     evaluate this area. In any case it is the responsibility of the respective
     toolkit team to supply the latest releases and doing OpenGL-compatible
     implementations.
     
 11. RedHat Linux 7.0
     The 'desktop setup' option is sufficient to get your workstation
     running with our graphics card. Several common tools (like the binutils)
     are required for setup. Also you may have to select (or install manually
     afterwards) the XFree86 4.0.1 rpm packages. You may need to create a 
     symlink for the XServer binary as described in Section 5 point 4.
     Note: We recommend that you obtain X4.0.2 as described above.
     
     For running RedHat 7.0 get Xbin.tgz from the ftp at XFree86.org in the
     glibc2.1 version. You have to replace your already installed libGL.so.1.2
     file. This is necessary since your original library is likely missing 
     'plugin' capability and therefore could prevent running 
     hardware-accelerated OpenGL.
     
     For any Linux, and especially for RedHat, it is recommended to have a real
     LoginShell for working as root. 
     - Log into the system directly from the console or
     - Use the SubstituteUser command with 'su -l' from any user and any shell. 
     This will set all required paths for your root environment.

 12. Linux kernels with built-in dri/drm support
     Some newer Linux kernel sources already come with a few XFree86 kernel
     modules for miscellaneuous graphics adapters. Theses files are not 
     compatible with FireGL drivers. They are not required for running the
     Fire GL with its drivers.

     As of today there is no perfect implementation of the XFree86 kernel 
     driver loading process. Especially if you have multiple kernel drivers
     selected and compiled directly into your Linux kernel, XFree86 may no 
     longer start the repsective FireGL kernel module automatically. It simply
     scans all present dri devices and concludes that dri is active but there
     is no suitable driver. Thus the required kernel module is not loaded.

     Solutions for the above scenario:
     - don't compile any dri/drm devices hard into your Linux kernel,
       if you need other modules than provided by FireGL: use modules.
     - manually load the FireGL kernel modules before starting your XServer.
       This will force the FireGL modules to get loaded and properly detected.

 13. Corel Linux
     Linux drivers for the Fire GL 2 or higher are not bundled with 
     COREL(R)-LINUX(R) OS. Please disregard any information to the contrary
     in the Fire GL2 User's Guide.

 14. GL Quake Benchmark
     If you want to run the 3D benchmark quake at full screen then ensure
     that the mode you want to use is referenced once in the 'modes' line
     of your XF86Config file (in Section "Screen" SubSection "Display"). 

     For example, if you are running your XServer in 1280x1024 and further 
     want to run the benchmark quake in resolution 800x600 then your 'modes'
     listing must read something like this:
         modes "1280x1024" "800x600"

 15. Stereo Quad Buffering
     If you do enable Stereo Quad Buffering then you should not use virtual
     desktops bigger than the selected resolution. Further the stereo feature
     will only initialize if your adapter is in textmode when launching X and
     the respective display mode. The adapter can not switch between multiple
     resolutions while keeping the stereo setup. For that reason it is highly
     recommended that you have only a single 'modes' line in your XF86Config 
     file at Section "Screen" SubSection "Display".

     Having multiple Screen sections or ServerLayout sections should work for
     specific purposes. Mode selection in such a setup can be done i.e. via 
         "XFree86 -screen <screen_name>"
     or 
         "XFree86 -layour <layout_name>".
     The integration into the respective Linux distribution, window manager
     and desktop sheme is a rather individual process and is therefore left
     up to the respective system administrator to implement such a solution.

 16. Sample Source Code
     The drivers for your grafics adapter come with two samples programs and 
     one library. The first sample program demonstrates the usage of the 
     pbuffer extension and helps you to verify its presence (if configured). 
     The second program and the related library do demonstrate how to attach
     to the XServer and exploit this feature. Sources and documentation are
     meant for developers use only and can be found
         /usr/src/firegl23sample_source.tgz
     after driver installation. These sources are not required for daily use.

     For a quick trial out of the programs (fgl_xgamma, fgl_glxgears), the
     binaries and headers can be found at the respective X11 locations.

     Please note that there is no regular support for the sources. But we
     consider feedback on problems and errors as welcome. The sources are
     provided for educational purposes only. For regular legal reasons we 
     cannot grant absolute error freeness, free from thir party rights or
     any sort of fitness for a particular purpose (especially for the use
     in high security or high risk environments). If you plan to use this
     code, then you have to ensure yourselves that the respective fitness 
     for your specific targets does exist.


7. SERVICE, SUPPORT, AND SOFTWARE UPGRADES
------------------------------------------
   Video driver updates can be obtained from the following web location:

      http://www.ati.com/support
  
