[haiku-development] ATI Video Driver Source Code

  • From: Gerald Zajac <zajacg@xxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Thu, 04 Jun 2009 12:34:06 -0400

I have finally finished the ATI driver which supports the Mach64 and Rage128 chips. The attached zip file contains the source code and jam files for this driver. I believe that the jam files are setup correctly; however, I have never used them since I do not have a build system for Haiku that works. Note that this driver can be built and run only under Haiku since it uses a VESA function to set the mode for the Mobility (laptop) chips when the laptop LCD display is active, and any chip connected to a monitor via a DVI interface.


The attached text file contains a list of the supported chips. The ID and name of the various chips are listed, and the ID's which are preceded by an asterisk have been tested to verify that the driver functions properly with the respective chip. Note that the following Mach64 chips are not supported:

  4354   "264CT"
  4358   "88800CX"
  4554   "264ET"
  4758   "88800GX"
  5654   "264VT2"    (version 0)

These are the oldest chips, and have 2 MB of memory or less and were more complex to program than the supported chips; thus they are not supported. Version 0 of the 264VT2 chip is not supported, but later versions are supported; however, I have not tested any of the later versions.

Support for monitors connected via a DVI interface are supported only on the Rage128 chips, and I do not know whether that support is implemented correctly since I do no have a card with a DVI interface. Nevertheless, if my collection of video cards is an example of the real world, ATI cards with DVI interfaces are probably rare.

Overlays are not supported by this driver. I might implement this support in the future if it is considered important under Haiku.

When using a laptop computer and switching between the laptop's LCD display and an external monitor, the switching should be done before this driver starts up (ie, while the boot screen is active); otherwise, switching modes may not work correctly.

Finally, the atimach64 driver currently in the source repository can be discarded since it supports only the 264VT2 chip.

Best regards,
Gerald

This table is split into two groups of chips.  The Mach64 chips are listed
first followed by the Rage128 chips with each group ordered by the chip ID
which is in the first column.  The chip ID's which are preceded by an asterisk
have been tested.

 *  4742     "3D RAGE PRO, AGP"
    4744     "3D RAGE PRO, AGP"
    4749     "3D RAGE PRO, PCI"
    474C     "3D RAGE XC, PCI"
 *  474D     "3D RAGE XL, AGP"
    474E     "3D RAGE XC, AGP"
    474F     "3D RAGE XL, PCI"
 *  4750     "3D RAGE PRO, PCI"
    4751     "3D RAGE PRO, PCI"
    4752     "3D RAGE XL, PCI"
    4753     "3D RAGE XC, PCI"
 *  4754     "3D RAGE II"
    4755     "3D RAGE II+"
    4756     "3D RAGE IIC, PCI"
    4757     "3D RAGE IIC, AGP"
    4759     "3D RAGE IIC, PCI"
 *  475A     "3D RAGE IIC, AGP"
 *  4C42     "3D RAGE LT PRO, AGP"
    4C44     "3D RAGE LT PRO, AGP"
    4C47     "3D RAGE LT"
    4C49     "3D RAGE LT PRO, PCI"
 *  4C4D     "3D RAGE Mobility, AGP"
    4C4E     "3D RAGE Mobility, AGP"
    4C50     "3D RAGE LT PRO, PCI"
    4C51     "3D RAGE LT PRO, PCI"
    4C52     "3D RAGE Mobility, PCI"
    4C53     "3D RAGE Mobility, PCI"
    5654     "264VT2"
    5655     "264VT3"
 *  5656     "264VT4"

    4C45     "RAGE 128 Mobility 3"
 *  4C46     "RAGE 128 Mobility 3"
    4D46     "RAGE 128 Mobility 4"
    4D4C     "RAGE 128 Mobility 4"
    5041     "RAGE 128 PRO GL"
    5042     "RAGE 128 PRO GL"
    5043     "RAGE 128 PRO GL"
    5044     "RAGE 128 PRO GL"
    5045     "RAGE 128 PRO GL"
 *  5046     "RAGE 128 PRO GL"
    5047     "RAGE 128 PRO VR"
    5048     "RAGE 128 PRO VR"
    5049     "RAGE 128 PRO VR"
    504A     "RAGE 128 PRO VR"
    504B     "RAGE 128 PRO VR"
    504C     "RAGE 128 PRO VR"
    504D     "RAGE 128 PRO VR"
    504E     "RAGE 128 PRO VR"
    504F     "RAGE 128 PRO VR"
    5050     "RAGE 128 PRO VR"
    5051     "RAGE 128 PRO VR"
    5052     "RAGE 128 PRO VR"
    5053     "RAGE 128 PRO VR"
    5054     "RAGE 128 PRO VR"
    5055     "RAGE 128 PRO VR"
    5056     "RAGE 128 PRO VR"
    5057     "RAGE 128 PRO VR"
    5058     "RAGE 128 PRO VR"
    5245     "RAGE 128 GL"
 *  5246     "RAGE 128 GL"
    5247     "RAGE 128 GL"
    524B     "RAGE 128 VR"
    524C     "RAGE 128 VR"
    5345     "RAGE 128 VR"
    5346     "RAGE 128 VR"
    5347     "RAGE 128 VR"
    5348     "RAGE 128 VR"
    534B     "RAGE 128 GL"
    534C     "RAGE 128 GL"
 *  534D     "RAGE 128 GL"
    534E     "RAGE 128 GL"
 *  5446     "RAGE 128 PRO Ultra"
    544C     "RAGE 128 PRO Ultra"
    5452     "RAGE 128 PRO Ultra"
    5453     "RAGE 128 PRO Ultra"
    5454     "RAGE 128 PRO Ultra"
    5455     "RAGE 128 PRO Ultra"

Other related posts: