Direct Rendering in X.org
Hardware Support
FreeBSD currently supports the following DRI devices in its base system when coupled with X.Org and the graphics/dri port:
- Intel i915 (i830 through G45) (i915drm)
- ATI Mach 64 (mach64drm)
- Matrox G200-G550 AGP (mgadrm)
- ATI Rage 128 (r128drm)
- ATI Radeon through X1950 and pre-HD IGP parts (radeondrm)
- ATi Radeon HD2350 through HD4890 - see the notes for details (radeondrm)
- S3 Savage through Pro Savage (savagedrm)
- SiS 300-series (300/305, 315, 540, 630, 661, 730) (sisdrm)
- 3dfx Voodoo Banshee through Voodoo5 (tdfxdrm)
The following DRM drivers exist in Linux but have not been ported:
- Via Openchrome
Notes
The Openchrome DDX (2D only) driver exists in ports as x11-drivers/xf86-video-openchrome and is installed by default with the xorg-drivers metaport due to the retirement of the via(4x) driver.
From 7.2-RELEASE, the radeondrm kernel module supports R600 and R700 cards but it only enables EXA and Xv acceleration at present. There is preliminary support for R6/700 3D in 8-STABLE and 9-CURRENT but this requires Mesa from git, not the version currently (20090831) in ports. The xf86-video-ati driver is the one being used by the developer with fairly good results.
There are also ongoing efforts (still very much experimental) to port Nouveau, an attempt to reverse engineer the binary nVidia drivers and create a free, open nVidia driver, based on the obfuscated nv(4x) driver. Again, there is no hardware 3D support at present, but software rendering works as normal. Note also that glxinfo will report direct rendering as active regardless of the renderer in use.
Xorg's drivers and DRI/DRM are currently in a state of flux with new interfaces and APIs such as DRI2, GEM and TTM memory management, UXA etc. Unfortunately this could lead to some instability for people who update their ports/packages regularly as the X server and drivers start implementing these, especially with Intel devices. Work is being done to keep these devices operating as well as possible but there may be breakage.