Retinal Burn Photo & Design

Status of mach64 branch of DRI
Home
World Trip
More Photos
Linux
Links
E-Mail
Sign Guestbook
Guestbook
 
Patches committed to DRI CVS (all branches) can be browsed here. You may also want to check out José Fonseca's DRI FAQ for developers.

Last Updated: Mar. 30, 2003
    Current branch (mach64-0-0-6-branch)
  • This is the current development branch which is now based on XFree86 4.3.0 and Mesa 5.0.x. (as of Mar. 30, 2003)

    XFree86 4.2.0 branch (mach64-0-0-5-branch)
  • This branch is based on the DRI trunk as of June 26, 2002 and includes bugfixes from Mesa 4.0.3. The mach64 driver has also been converted to the new drmCommand ioctl interface. This branch is now inactive for new development, but is still the basis for current binary snapshots.

    Original DMA branch (mach64-0-0-4-branch)
  • Added support for DMA, texture blits, AGP texturing, and 2D acceleration. XF6Config config options have been added. See below for a complete list of config file options. This branch is now inactive. Use the current branch for testing.

    Mesa 4.x branch (mach64-0-0-3-branch)
  • The original branch for work on merging the mach64 driver with Mesa 4.x and XFree 4.2.0 is tagged mach64-0-0-3-branch. This branch uses insecure client-side PIO/MMIO register programming and is now inactive.

    XF86Config file options (mach64-0-0-4-branch and later)
    These options should be placed in the Device section for the "ati" driver.
    Option "DMAMode"       "async" or "sync" or "mmio"
    Use asynchronous DMA (default), synchronous DMA, or PIO/MMIO to 
    dispatch buffers.
    NOTE: This option has replaced "PseudoDMAMode"
    
    Option "ForcePCIMode"  (boolean)
    Don't use the AGP aperture, even if one exists.
    
    Option "AgpMode"       "1" or "2"
    Set the AGP bus mode to 1x or 2x.  When not set, 
    the mode configured by agpgart will be used.
    
    Option "AgpSize"       "4" - "256"
    Size of the AGP aperture in MB.  The default is 8MB.
    The option given must be a power of 2 in the range listed
    above.
    
    Option "BufferSize"    "1" or "2"
    Size of the DMA buffer memory in MB.  The default is 2MB.
    
    Option "LocalTextures" (boolean)
    By default AGP cards will only use AGP memory for textures.
    To force using local card memory for textures in addition 
    to AGP, you may set this option to true.
    
    The AgpSize option changes the amount of system memory used for the AGP aperture and is not limited by the size of the card's on-board video memory. This memory is used for the DMA buffers (BufferSize option), and the remainder is allocated for AGP textures. Of course, the AgpMode/AgpSize options are ignored for PCI cards or if ForcePCIMode is enabled on an AGP card. However, the BufferSize option can be used to change the size of the DMA buffers in system memory for both PCI and AGP cards (but it's not recommended to reduce the buffer size unless you are short on system RAM).

    TODO
  • The security of the DMA path needs to be improved.
  • Asynchronous DMA needs to be fixed for the ppc platform.
  • The driver needs to be updated with the OS independence changes on the DRI trunk, which will allow porting the driver to *BSD. The DMA security changes will need to be completed first.

    Features and Limitations
  • Cards earlier than the ATI 3D Rage Pro don't have a triangle setup engine and are not supported. This includes VT chips, ATI 3D Rage, ATI 3D Rage II/II+/IIc, and ATI 3D Rage LT. Supported cards include ATI 3D Rage Pro, ATI 3D Rage LT Pro, ATI 3D Rage XL or XC, and ATI 3D Rage Mobility.
  • 2-D acceleration is now enabled. (mach64-0-0-4-branch and later)
  • Offscreen memory used by DRI is freed when no GLX contexts are running and (re)allocated when one or more contexts exist. (mach64-0-0-5-branch)
  • Doesn't support mipmapping. This is a hardware limitation of the mach64.
  • AGP texturing is supported. (mach64-0-0-4-branch and later)
  • Multitexturing is functional (with limitations on texture environment modes -- see below).
  • Fog works if alpha blending is disabled - the mach64 can't do both at the same time.
  • Texture environment modes: GL_BLEND is done in software (not supported by the hardware). Also, the mach64 cannot modulate alpha values, so there are some non-conformant texture environment modes. Although it would be possible to provide a performance/conformance switch via an environment variable, full conformance would mean mostly software rendering.
  • Accelerated points and lines are supported, but smoothing (anti-aliasing) and stippling are done with software fallback.
  • Many of the GL conformance problems (tested with glean) have been fixed in the latest CVS, but there are still some gaps between polygons in places.

Gareth Hughes is the original driver author. Here are his comments on the state of the driver as of the mach64-0-0-1 branch (which was the branchpoint for the current work being done). Gareth was also the author of the original utah-glx driver which was the basis for the DRI driver (I believe that John Carmack of id software also worked on the original utah-glx driver).

To help test the driver, read my mini-HOWTO on compiling the driver. You can also check the DRI download page, there are mach64 binary snapshots posted there (try the "bleeding-edge" link). Also check out my main Linux page for info on XVideo and tv-out support for mach64.

   

All images and text © 1998-2003 Leif L. Delgass, All Rights Reserved
(Unless otherwise specified).

Home | World Trip | Photos | Linux | Links | Email me
Sign Guestbook | View Guestbook



[Blue Ribbon Campaign]
 

Nedstat Basic - Free web site statistics