<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
<article>

<!-- Title information -->

<title>Mach64 X Server Release Notes
<author>Kevin E. Martin (martin@cs.unc.edu)
<date>1999 June 28

<!-- Table of contents -->
<toc>

<!-- Begin the document -->


<sect>Supported Cards, RAMDACs, and Bits Per Pixel<p>
The Mach64 X server supports 8bpp with a dot clock up to 80MHz on all
Mach64 based cards.  On most cards, higher dot clocks and additional
depths are available (see the table below).  What determines this
support is the RAMDAC on your card.
<p>
<verb>
 RAMDAC      Max Dot Clock   BPP   Max Resolution   Video RAM Required
--------     -------------   ---   --------------   ------------------
ATI68860         135MHz       8      1280x1024             2Mb
ATI68860         135MHz      16      1280x1024             4Mb 
ATI68860          80MHz      32       1024x768             4Mb

ATI68875          80MHz      32       1024x768             4Mb

CH8398           135MHz       8      1280x1024             2Mb
CH8398            80MHz      16       1024x768             2Mb
CH8398            40MHz      32        800x600             2Mb

STG1702          135MHz       8      1280x1024             2Mb
STG1702           80MHz      16       1024x768             2Mb
STG1702           50MHz      32        800x600             2Mb

STG1703          135MHz       8      1280x1024             2Mb
STG1703           80MHz      16       1024x768             2Mb
STG1703           50MHz      32        800x600             2Mb
    
AT&amp;T20C408       135MHz       8      1280x1024             2Mb
AT&amp;T20C408        80MHz      16       1024x768             2Mb
AT&amp;T20C408        40MHz      32        800x600             2Mb
    
3D Rage II       170MHz       8      1600x1200             4Mb
3D Rage II       170MHz      16      1600x1200             4Mb
3D Rage II       170MHz      32       1024x768             4Mb

3D Rage II+DVD   200MHz       8      1600x1200             4Mb
3D Rage II+DVD   200MHz      16      1600x1200             4Mb
3D Rage II+DVD   200MHz      32       1024x768             4Mb

Rage Pro         230MHz       8      1600x1200             8Mb
Rage Pro         230MHz      16      1600x1200             8Mb
Rage Pro         230MHz      32      1600x1200             8Mb

Internal         135MHz       8      1280x1024             2Mb
Internal          80MHz      16       1024x768             2Mb
Internal          40MHz      32        800x600             2Mb

IBM RGB514       220MHz       8      1600x1200             2Mb
IBM RGB514       220MHz      16      1600x1200             4Mb
IBM RGB514       135MHz      32       1024x768             4Mb

All Others[*]     80MHz       8      1280x1024             2Mb

</verb>
&lsqb*&rsqb - The dot clocks are limited to 80MHz and the bpp is limited to 8.

The table above specifies the maximum resolution and the video memory
required to run this maximum resolution.  Smaller resolutions will
require less video memory.

The RAMDAC is reported when you run the Mach64 X server with the
"<tt>-probeonly</tt>" command line option.  The RAMDAC reported should
be correct for all Mach64 cards.  It can also be specified in the
XF86Config file, but this is not recommended unless the RAMDAC
reported in the probeonly output is incorrect.  Before specifying the
RAMDAC in your XF86Config file visually verify which RAMDAC is on your
Mach64 card.  If the RAMDAC reported in the probeonly output is
definitely different than what you see on the card, then check to see
if you have a RAMDAC specified in your XF86Config file.  If you do,
comment this line out and re-run the Mach64 X server with the
"<tt>-probeonly</tt>".  If it still reports the incorrect RAMDAC,
please send in a bug report to XFree86@XFree86.Org.

The ATI68860 RAMDACs are usually found on ATI Graphics Pro Turbo and
ATI WinTurbo cards.  The IBM RGB514 RAMDAC is found on the ATI
Graphics Pro Turbo 1600 card.  The other RAMDACs are usually found on
ATI Graphics Xpression, ATI Video Xpression and ATI 3d Xpression
cards.  Mach64 CT, ET, VT, VT3, VT4, LT, GT (3D Rage), 3D Rage II, 3D
Rage IIC, 3D Rage II+DVD, Rage Pro, and Rage LT Pro chips have an
"Internal" RAMDAC (i.e., it is built into the Mach64 chip).

As advertised, Mach64 graphics cards can use a special 24bpp mode
(packed pixel mode), but this is not currently supported in the Mach64
X server.  This will be added in the next major release.

The Mach64 X server requires the video memory aperture to function
properly.  This means that ISA Mach64 cards in systems with more than
12Mb of main memory will not work.  If you have a PCI based Mach64
card or a VLB based Mach64 card, then the Mach64 X server will work
with any amount of main memory.

Accelerated doublescan modes are supported on VT, VT3, VT4, LT, GT,
Rage II, Rage IIC, Rage II+DVD, Rage Pro and Rage LT Pro based Mach64
cards.  Mach64 cards with other chips cannot handle accelerated double
scan modes due to a hardware limitation.  Non-accelerated doublescan
modes should work with the ATI driver in the SVGA X server for all
Mach64 cards.

<sect>Optimizing the speed of the Mach64 X server<p>
To maximize the speed of the Mach64 X server, I suggest that you use
the following maximum resolutions.  This will allow room for the font
and pixmap caches and a hardware cursor.

<verb>
Max Resolution   BPP   Video RAM
--------------   ---   ---------
  1600x1200       8       8Mb
  1600x1200      16       8Mb
  1280x1024      32       8Mb

  1280x1024       8       4Mb
  1280x1024      16       4Mb
   1024x767      32       4Mb

  1280x1024       8       2Mb 
   1024x767      16       2Mb
    800x600[*]   32       2Mb

   1024x767       8       1Mb 
    800x600[*]   16       1Mb
</verb>

&lsqb;*&rsqb; - With a 2MB video card, the only way to use the font
and pixmap caches is to have a virtual resolution of 1024x480 with a
640x480 mode.  I suggest using 800x600 to maximize your screen size at
the cost of the speed gained from the caches.  The same argument can
be made for 1MB video cards running in 16bpp mode.  Note that it is
not possible to run in 32bpp mode with 1MB of video memory.

Technical explanation for the above suggestions: The Mach64 X server
uses a font and pixmap cache that is only available at a screen width
of 1024 or greater.  This restriction will be removed in a future
version of the X server.  To obtain the best performance from your
video card, you need to make sure that there is enough room off-screen
for the caches (at least 1024x256).  In addition to the cache, the
Mach64 uses memory mapped registers which are mapped to the last 1024
bytes of the memory aperture.  This takes away another line from video
memory.  Thus, you need at least a video memory area of 1024x257.

<sect>XF86Config options<p>
Several options are supported in the "Device" section for the Mach64 X
server.  By default, the Mach64 X server will determine the RAMDAC
type from the BIOS.  If you wish to override the default RAMDAC type
(not recommended unless the BIOS incorrectly reports your RAMDAC
type), you can specify the RAMDAC type in the XF86Config file with the
"Ramdac" entry.  The Mach64 X server will also program the clocks
based on the clock chip read from the BIOS.  If you wish to override
the default clock chip type (not recommended unless the BIOS
incorrectly reports your clock chip type), you may specify the clock
chip in the XF86Config file with the "ClockChip" entry.  If, however,
you wish to use the preprogrammed clocks, you can turn off the clock
programming with the "no_program_clocks" option.  In this case, the
Mach64 X server reads the Clocks from the BIOS.  The "Clocks" lines in
the XF86Config file are normally ignored by the Mach64 X server unless
the "no_bios_clocks" option is given.  Note on newer Mach64 cards (CT,
ET, VT, GT, 3D Rage II, 3D Rage II+DVD and Rage Pro) the "Ramdac",
"ClockChip" and "Clocks" lines have no meaning and should not be
included in your XF86Config file.

<descrip>
<tag>Option "sw_cursor"</tag>
		This option allows you to use the software cursor
                instead of the hardware cursor.
<tag>Option "hw_cursor"</tag>
		This option turns on the hardware cursor.  This
		should not be necessary since the hardware cursor
		is used by default unless the "sw_cursor" option is
		specified.
<tag>Option "composite"</tag>
		This option will set the composite sync for
		monitors that require this.
<tag>Option "dac_8_bit"</tag>
		This option enables 8 bits per RGB value.  Note that
		this does not work with the Chrontel 8398 RAMDAC.
		This options is not necessary since 8 bits per RGB
		value is the default for the Mach64 X server for all
		Mach64 cards except those with the Chrontel 8398
		RAMDAC.
<tag>Option "dac_6_bit"</tag>
		This option enables 6 bits per RGB value.
<tag>Option "override_bios"</tag>
		This option allows you to specify a video
		mode that the video card's BIOS believes to be
		illegal.  Some BIOSs have incorrect maximum
		resolution and/or dot clock limitations.  Use
		this option with extreme care.  It is possible to
		specify a video mode that can damage your card or
		monitor.
<tag>Option "no_block_write"</tag>
		This option allows you to turn off block write mode.
		Block write mode only works on certain types of VRAM
		cards.  This option has no effect on DRAM based cards.
		If you see noise on the screen that can be captured
		via xmag, then it is probably a problem with block
		write mode being turned on when it should not.  This
		``noise'' usually looks like bits of windows/menus
		repeated on the screen.
<tag>Option "block_write"</tag>
		This option allows you to turn on block
		write mode.  Block write mode only works on
		certain types of VRAM cards, and this option has
		no effect on DRAM based cards.  If you want to
		override the probed default, you can use this option.
		Note that this may result in ``noise'' appearing on
		the screen.
<tag>Option "power_saver"</tag>
		This option allows the server to use the power
		saving features of certain "green" monitors
		instead of blanking when the screen saver is
		activated.  This option is still experimental.
<tag>Option "no_program_clocks"</tag>
		This option allows you to disable the clock
		programming.  Normally the Mach64 server will program
		the clocks based on the clock chip type unless this
		option is given.  With this option, the clocks are
		either read from the BIOS or, if the "no_bios_clocks"
		option is set, set from the Clocks line.
<tag>Option "no_bios_clocks"</tag>
		This option allows you to override the clocks read
		from the video card's BIOS and use the clocks
		specified in the Clocks line in your XF86Config file.
		Normally the Mach64 server will ignore both the BIOS
		clocks and the clocks specified in the Clocks line
		unless the "no_program_clocks" options is set (see
		above).
<tag>Option "no_font_cache"</tag>
		This option allows you to disable the font cache.  By
		default the font cache is turned on if the horizontal
		resolution is 1024 pixels or greater and there is
		enough off-screen video memory to hold the cache.
<tag>Option "no_pixmap_cache"</tag>
		This option allows you to disable the pixmap cache.
		By default the pixmap cache is turned on if the
		horizontal resolution is 1024 pixels or greater and
		there is enough off-screen video memory to hold the
		cache.
<tag>Option "fifo_conservative"</tag>
		This option allows you to use a more conservative
		display fifo value.  If you are experiencing snow or
		vertical banding on the screen, try adding this option 
		to see if it fixes the problem.
<tag>MemBase baseaddress</tag>
		This entry specifies the video memory aperture
		address.  By default the aperture address is
		automatically determined and this option should
		not be necessary.  If the Mach64 X server is dying
		with a seg. fault, then the memory aperture might
		not be correctly determined.  To fix this try setting
		the aperture address to another location.
<tag>ClockChip "<it>type</it>"</tag>
		This entry specifies the clock chip type.  The
		following values are valid for <it>type</it>:
		<itemize>
		<item>ati18818
		<item>att20c408
		<item>ch8398
		<item>ibm_rgb514
		<item>ics2595
		<item>stg1703
		</itemize>
<tag>Ramdac "<it>type</it>"</tag>
		This entry specifies the RAMDAC type.  The following
		values are valid for <it>type</it>:
		<itemize>
		<item>ati68860
		<item>ati68860b
		<item>ati68860c
		<item>ati68875
		<item>att20c408
		<item>ch8398
		<item>ibm_rgb514
		<item>internal
		<item>stg1702
		<item>stg1703
		<item>tlc34075
		</itemize>
<tag>DacSpeed "<it>MHz</it>"</tag>
		This entry allows you to override the default maximum
		dot clock.  Use this option with extreme caution.  If
		you specify a <it>MHz</it> value too large for your
		card, you can damage it.
</descrip>

<sect>Enhancements for this release<p>
With this release, the following enhancements have been made:
<itemize>
<item>Proper identification of all current Mach64 chips
<item>Support for VT4 and Rage IIC based cards
<item>Improved timing calculation for video FIFOs
<item>Fixed timing bug in font code
<item>Fixed VGA font restoration bug when exiting the X server
</itemize>

<sect>Cards known to work with this release<p>
The following is a list of cards that have been tested with this
release.  Many other cards should work including All-In-Wonder and
All-In-Wonder Pro cards as well as motherboards with Mach64, 3D Rage
II and Rage Pro included on them.  If you have a new card that does
not appear to work, see the Known Problems and Bug Reports section
below.

<verb>
ATI Xpert@Play 98       4MB  3D Rage Pro     (AGP)
ATI Xpert 98            4MB  3D Rage Pro     (PCI)
ATI Xpert XL            4MB  3D Rage Pro     (AGP)
ATI Rage IIC            4MB  3D Rage IIC     (AGP)
ATI Xpert@Play          8MB  3D Rage Pro     (AGP/PCI)
ATI Xpert@Work          2MB  3D Rage Pro     (PCI)
ATI Pro Turbo+PC2TV     4MB  3D Rage II+DVD  (rev 154)
ATI 3D Xpression+       4MB  3D Rage II      (GT-B, SGRAM, rev 65)
ATI 3D Xpression+       2MB  3D Rage II      (GT-B, SDRAM, rev 65)
ATI 3D Xpression        2MB  3D Rage         (GT-A, rev 72)
ATI Video Xpression+    2MB  Mach64 VT-A3    (rev 8)
ATI Video Xpression     2MB  Mach64 VT-A4    (rev 72)
ATI Graphics Xpression  2MB  Mach64 CT       (rev 9)
ATI Graphics Xpression  2MB  Mach64 CT-C     (rev 65)
ATI Graphics Xpression  2MB  Mach64 CT-D     (rev 10)
ATI Graphics Xpression  2MB  Mach64 GX       (rev 1) with Chrontel8398 RAMDAC
ATI Graphics Pro Turbo  2MB  Mach64 GX       (rev 0) with 68860-B RAMDAC
ATI Graphics Pro Turbo  2MB  Mach64 CX       (rev 1) with AT&amp;T20C408 RAMDAC
ATI WinTurbo            2MB  Mach64 GX       (rev 1) with 68860-C RAMDAC
</verb>

<sect>Known Problems and Bug Reports<p>
There are several known problems with the current version of the
Mach64 X server.  They include:
<itemize>
<item>Gamma correction is not currently supported.  It will be
       supported in a future release.
<item>Screen blanking in 16bpp and 32bpp modes on certain Mach64 CT
       cards does not work.
<item>In doublescan modes, only the top half of the hardware cursor
       is displayed.  The hardware cursor works fine in all other
       modes.
<item>With high refresh rates on certain cards (VT-A3 and CT-D) noise
       can become a problem in 32bpp mode.  This usually only happens
       with refresh rates of 85Hz or greater and can be fixed by using
       a lower refresh rate (e.g., 72Hz or 75Hz).
<item>ISA cards with more than 12Mb of main memory cannot use the
       server due to the requirement of a video memory aperture.  This
       a major project.
</itemize>

If you are experiencing problems, first check to make sure that you
have the very latest available release (including beta releases).  ATI
releases new cards throughout the year.  Each of these new cards
require additional programming to support the new Mach64 chips,
RAMDACs and clock chips that appear on them.  The most recent release
is most likely to support your video card.

Second, please check the RELNOTES and README files (as well as the
other documentation available with the release).  Third, make sure you
do not have any Ramdac, ClockChip or Clocks lines in your XF86Config
file (all of these are automatically detected by the Mach64 X server).
The "Device" section should only contain the Identifier, VendorName
and BoardName.  All other options should be automatically detected.

If you are still experiencing problems, please send e-mail to
XFree86@XFree86.org or post to the comp.windows.x.i386unix newsgroup.

Please do NOT send e-mail to me since the developers who answer e-mail
sent to XFree86@XFree86.org are better able to answer most questions
and I would like to spend my minimal free time working on new
enhancements to the X server.  Thanks!

<p>

<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Mach64.sgml,v 3.16 1999/08/23 06:38:48 dawes Exp $





$XConsortium: Mach64.sgml /main/8 1996/10/28 05:23:52 kaleb $
</verb>

</article>
