XFree 4.0

As many of you may have heard, XFree 4.0 will be released "Real Soon Now". This will be a major new release of the XFree code, with many improvements, and new features. I'll be covering some of the major improvements and changes, and also discuss the release schedule.

The current development version (or snapshot) of XFree, 3.9.17, was released on Dec 31st, 1999. These snapshots are mainly intended for developers, or those who like to live on the bleeding edge (remember, its called the bleeding edge for a reason). Snapshots are expected to be released about every 4 to 6 weeks, with the final release of XFree 4.0 intended for sometime in the middle of 2000. Although this is a development version, it can give a good indication of what the released version will contain.

A list of supported cards and related drivers, as taken from the release notes for XFree 3.9.17 is as follows:

Driver Name Description
apm Alliance Pro Motion
ati ATI
chips Chips & Technologies
cirrus Cirrus Logic
fbdev Linux fbdev
glide Glide2x (3Dfx)
glint 3Dlabs
i740 Intel i740
mga Matrox
neomagic NeoMagic
nv NVIDIA
r128 ATI Rage 128
rendition Rendition
s3virge S3 ViRGE
sis SiS
tdfx 3Dfx
tga DEC TGA
trident Trident
tseng Tseng Labs
vga Generic VGA

One of the major changes is that there is no longer many different servers for different video cards. There is now a single x server, called XFree86, which can have different video drivers either statically or dynamically linked to it. This run-time loader, donated by Metro Link (http://www.metrolink.com/) doesn't rely on the operating systems native dynamic load, which means the modules can be used on multiple architectures. These modules can be used for many extensions to the server, ranging from video drivers, to input drivers and font rasterisers. As many of you can imagine, there can be security issues with this as the X server runs with root privileges. This means it will be important to only load modules from a known reliable source - the XFree group are working on a method for ensuring this.

Another addition to the server is support for a wider range of 3D capable graphics cards. This includes integrating GLX extensions for 3D rendering in a X11 window - the library used for this is Mesa (http://www.mesa3d.org/). Work for this was done by Precision Insight (http://www.precisioninsight.com/), with funding from Redhat (http://www.redhat.com/ and SGI (http://www.sgi.com/). Additionally, they did work on DRI (Direct Rendering Interface), which provides an interface for directly sending 3D data to the video card. This means many of the popular 3D cards such as the Voodoo range from 3dfx (http://www.3dfx.com/) and TNT and GeForce from NVIDIA (http://www.nvidia.com/) are useable under X.

Multi-head support has also made progress of late, with many configurations working quite well, mostly using multiple PCI/AGP cards. Further work is still being done on this area - expect more support in future snapshots. Another related extension to multi-head support is Xinerama, which was included in X11R6.4. This allows to use multiple physical monitors as a single virtual screen, as long as the screens all have the same root depth. There are many bug fixes included in these snapshots, with more improvements expected in future releases.

So as you can see, there has been many improvements made in many areas, keeping XFree up to date with all the latest hardware, and adding many neat new features. For more details about these and many more new features that will be included, please see http://www.xfree.org/ and the release notes distributed with the snapshots.