Rendition OpenGL ICD - 10/1/98 - BETA 3a Release

This ZIP file contains a beta release of Rendition's OpenGL ICD for
the V2x00 generation of chips. As this is a beta release, you should
expect to find bugs (potentially serious) and a few remaining missing 
features. Use this ICD at your own risk.

Releases:

    10/1/98 - BETA 3a Release
            (1) 3DNow Quake2 bug fix
            (2) Revised documentation (this file)

    9/25/98 - BETA 3 Release
            (1) Initial 3DNow support
            (2) Fixed GL Unreal support
            (3) Numerous bug fixes and performance tweaks

    7/31/98 - BETA 2 Release
            (1) Optimizations for Unreal
            (2) Environment variables supersede registry
            (3) Numerous bug fixes and performance tweaks

    6/23/98 - First BETA Release
            (1) OpenGL conformant
            (2) Per polygon mipmapping
            (3) Bug fixes
            (4) New extensions
                    "GL_EXT_compiled_vertex_array "
                    "GL_EXT_clip_volume_hint "
                    "GL_DFI_eight_bit_source_EXT "
                    "GL_REND_screen_coordinates "  
            (5) Faster vertex arrays
            (6) Faster lighting
            (7) Lightwave bugs fixed
                + more (including many bug fixes)

    Alpha release details removed...

To install this driver:

  * Copy the v2000gl.uc file to your windows\system directory.

    NOTE: A v1000gl.uc is included to allow GL experimentation on 
    older V1000 cards.  We do not guarantee this ICD will function
    on the V1000, and you will likely experience unacceptably slow 
    performance.

  * Copy the opengl32.dll to the directory containing the application 
    or game you wish to run with the ICD.  

  * The Maze screen saver that comes with Windows does not work with
    the current ICD.  A fixed ssmaze.scr file can be downloaded from
    Rendition and copied into your windows\system directory to replace 
    the broken one. (It only took a one line fix to get it going!)

  * If you wish to experiment with making the accelerated ICD the
    default for all OpenGL applications, you can copy the 
    opengl32.dll into your windows\system directory.  Be sure and 
    make a backup copy of the windows default opengl32.dll first,
    and be prepared to change back to it if you encounter any
    problems.

  * Be sure and delete or rename all older versions of the ICD and
    v2000gl.uc files.  If a version mismatch occurs, a crash is likely.

    NOTE: Version mis-match is the most common source of problems with
          this ICD. Re-installing your graphics drivers or DirectX may
          accidentally overwrite the v2000gl.uc or opengl32.dll. If you
          notice any odd behavior or crashes, double check to make sure
          you have the proper matched set installed.

Again, these drivers are unsupported by Rendition.
End-users are recommended to use drivers provided by their
board manufacturer to ensure that they can obtain full support.

Please post bug reports on Rendition's discussion server at 
http://www.rendition.com/forums.html, or go directly to 
news://news.rendition.com/rendition.support to see what 
experiences other users have been having. If you can't access 
the forums, please mail bug reports to webmaster@rendition.com.


CONFIGURATION INSTRUCTIONS
==========================
The latest ICD uses registry entries and/or environment variables to modify 
behavior. Three features that can be adjusted are:

(1) Triple buffering (when you are a full screen app, and ask for double
buffering you actually have 3 buffers allocated - 6 if stereo - in a
transparent fashion to the user). Triple buffering drastically reduces the
time the graphics chip spends waiting for the vertical sync between frames. 
An offshoot of this is that it is no longer necessary to have the highest 
refresh rate to see maximum performance. On the other hand we can run at 
the lowest comfortable refresh rate, having the CRT controller access the 
framebuffer much less frequently and thereby freeing up memory bandwidth for 
rendering. So setting the lowest refresh rate gives best results when triple 
buffering is enabled. When it is not, then highest refresh rate gives you the 
fastest results.

(2) Line doubled stereo. When viewing stereo, if the vertical resolution is
halved the eye gets fooled into believing that there is almost as much
resolution as in a non-stereo buffer with twice the vertical resolution.
Halving the vertical resolution, halves the memory/rendering bandwidths
required. So we are able to run almost as fast as the non-stereo case
(not quite true if the geometry is the bottleneck).

(3) Mipmapping. This release of the ICD supports per-polygon mipmapping. 

Triple buffering is on by default. Stereo line doubling is off by default.
Mipmapping defaults to "none".

There is no need to edit your registry if you do not wish to change this
default behavior.


REGISTRY ENTRIES
================
To change these settings, use regedit to add to following to the local 
machine registry under "Software\Rendition\OpenGL":

Name               Type   Values    Default Description
------------------ ------ -------   ------- ----------------------------------
TripleBuffering    DWORD  0 or 1    1       enable/disable triple buffering

MipMapMode         STRING None      None    changes mipmapping mode
                          PerPolygon

StereoLineDouble   DWORD  0 or 1    0       enable/disable line doubling
                                            in stereo

TexLockedMemSize   DWORD  1000000   8000000 bytes of memory to lock for texture
                       to 8000000           swapping

GL_EXT_vertex_array
                   DWORD 0 or 1    1       enable/disable GL_EXT_vertex_array

WGL_EXT_swap_control
                   DWORD 0 or 1    1       enable/disable WGL_EXT_swap_control

WGL_EXT_gamma_control
                   DWORD 0 or 1    1       enable/disable WGL_EXT_gamma_control

GL_EXT_point_parameters
                   DWORD 0 or 1    1       enable/disable GL_EXT_point_parameters

GL_EXT_bgra
                   DWORD 0 or 1    1       enable/disable GL_EXT_bgra

GL_EXT_compile_vertex_array
                   DWORD 0 or 1    1       enable/disable GL_EXT_compile_vertex_array

GL_EXT_clip_volume_hint
                   DWORD 0 or 1    1       enable/disable GL_EXT_clip_volume_hint

GL_WIN_swap_hint
                   DWORD 0 or 1    1       enable/disable GL_WIN_swap_hint

GL_DFI_eight_bit_source_EXT
                   DWORD 0 or 1    1       enable/disable GL_DFI_eight_bit_source_EXT

GL_REND_screen_coordinates
                   DWORD 0 or 1    1       enable/disable GL_REND_screen_coordinates

Disable3DNow       DWORD 0 or 1    0       enable/disable 3DNow support

ENVIRONMENT VARIABLES
=====================
The registry settings can be overridden with environment variables.  Set 
the following variables within your ::
    DOS session to override the defaults or
    under Windows NT under MyComputer/Properties/Environment or
    under Window 9x in your autoexec.bat

    Note :
        False = F = No = N = 0 :: these all mean False
        True = T = Yes = Y = 1 :: these all mean True

    TripleBuffering=<True or False>
    MipMapMode=<None or PerPolygon>
    StereoLineDouble=<True or False>
    TexLockedMemSize=<1000000 to 8000000>
    GL_EXT_vertex_array=<True or False>
    WGL_EXT_swap_control=<True or False>
    WGL_EXT_gamma_control=<True or False>
    GL_EXT_point_parameters=<True or False>
    GL_EXT_bgra=<True or False>
    GL_EXT_compile_vertex_array=<True or False>
    GL_EXT_clip_volume_hint=<True or False>
    GL_WIN_swap_hint=<True or False>
    GL_DFI_eight_bit_source_EXT=<True or False>
    GL_REND_screen_coordinates=<True or False>
    Disable3DNow=<True or False>

This is handy for writing scripts or creating icons to start apps with
your desired settings.

3DNow Support
=============
This release contains preliminary support for AMD's 3DNow technology.
OpenGL 3DNow support works best with 3DNow enabled applications, and it may
actually slow down with non-3DNow applications. For more information
on 3DNow enabled products, please contact AMD at 'www.amd.com'. Also,
'www.3dnow.net' is another web site with useful 3DNow related information.

3DNow support can be disabled with the 'Disable3DNow' registry
or environment setting.

APP NOTES
=========
Triple buffering uses 50% more frame buffer memory than double buffering.
On a 4MB card, memory may be scarce in some applications. If you notice
any performance problems with triple buffering enabled, you may wish
to disable it or run at a lower resolution.

Quake 1 assumes a double-buffered screen, and when run with triple buffering 
may exhibit flashing.  At the console "set gl_triplebuffer 1" to fix this.

To turn on stereo in Quake 2, type  "set cl_stereo 1", "set gl_ztrick 0", 
followed by a "vidrestart".  

With line-doubling enabled, the default console font in Quake 2 is very 
difficult to read.  You may wish to experiment with different fonts, or 
to turn off stereo mode temporarily while working with the console.

If you experience crashes and think you may be running out of memory, try
decreasing the amount of memory locked for texture swapping.  A system with
24MB may not have enough memory left over to run many applications after
the default 8MB has been locked.


RELEASE NOTES
=============
This is an beta version of Rendition's OpenGL ICD. The
following should be kept in mind at all times:

(1) Performance is still being improved upon
(2) A few known bugs still exists


FEATURES *NOT* YET IN
=====================
(1) No Stencil support
(2) No accumulation buffer support
(3) wgl is not complete


KNOWN BUGS
==========
 (1) Running a fullscreen app using textures while running a windowed
     app animating and using textures, may cause the display to hang 
     when exiting the fullscreen app.
 (2) Window clipping bugs when single buffering
 (3) Texture borders do not work
 (4) Shared display list not thread safe
 (5) Precision problems in z values when clipping
 (6) Very large textures sometimes causes crashes

K6-2 3DNow -
        * Screen Saver, Flying Objects, Explode setting, doesn't appear

Both K6-2 3DNow and Intel -
        * Quake has occasional missing textures
        * Several SDK Book demos fail, 3dpipes screen saver, et. al. 
          (due to single buffering bug)
        * Indy 3D has corrupted window
        * polygon_offset causes Z to wrap from far to near
        * 3DSMAX2. The ICD is not getting window events.

MISC NOTES
==========
There are still outstanding issues with some screen savers.
Particularly, the OpenGL "maze" screen saver uses render to bitmap pixelformats
that we don't yet support. Also, there is still a problem with the OpenGL
pipes screen saver not drawing the prettiest picture.

This release is OpenGL 1.1 conformant. 