DRI CVS Branches

We're using CVS quite heavily and have a fairly structured layout of the repository. This document should explain how we're using CVS and what material is stored where.

When you do a normal checkout of a CVS tree, you get a default set of files. This set of files is called the trunk. CVS also supports a concept called branches. Branches are named sections of the CVS tree that diverge from the trunk code.

In our repository, the trunk will always be the latest code that is believed to be stable and work. Changes made in any of the branches will be merged into the trunk when they are deemed ready. As a developer who isn't writing code you should normally be doing your checkouts from the trunk. Each developer who is writing new code in the tree will be working in a branch. They will be doing frequent checkins to their branch. Because of this it is likely that the code they check in may not work at any given point in time. They do frequent checkins to have saved copies of their work and so that other developers who might want to examine the code can do so. It should be a rare case that any developer looks at another developers branch.

Since there are several projects underway in the same source tree, there are a number of branches under development. Most of them are documented here.

Current Branches

These are branches under active development.
trunk
This is the main branch of working code. Generally, only bug fixes get checked into this branch. Major development is done on other branches. As of February 2003, the trunk is based on Mesa 5.0.x.
cle266-0-0-1-branch
This is the branch for integration of the VIA CLE266 driver.
i865-agp-0-1-branch
This is the branch for i865 driver development.

Sleeping Branches

These are branches that were active at one time but that haven't seen action in a while. They probably need work to get them working again.
gamma-2-0-0-branch
This is the current branch for the 3DLabs Oxygen GMX2000 development.
s3virge-0-0-1-branch
This is the development branch for a from-scratch S3 Virge driver.
tdlabs-0-0-1-branch
This is the development branch for 3Dlabs Permedia/2/3 chips.

As of right now, these branches need to account for at least the following changes before they can work in the trunk:

Merged Branches

These branches have been merged to the trunk. They are no longer interesting. All development relevant to these is now taking place on the trunk.
ati-4-0-0-branch, ati-4-0-1-branch, ati-4-1-0-branch
The initial ATI Rage 128 driver development was carried out on these branches.
ati-4-1-1-branch
This was the branch for the enhanced ATI Rage 128/Rage 128 Pro driver development.
ati-5-0-0-branch
This was the branch for the latest ATI Radeon and Rage 128/128 Pro development.
bsd-4-0-0-branch
BSD support, follow-on to bsd-3-0-0-branch.
bsd-3-0-0-branch
This branch contains changes to support FreeBSD 4.0 and to port the Linux mga driver.
bsd-1-0-0-branch
This branch contained a variety of changes for FreeBSD support.
config-0-0-1-branch
This was a branch for creation of a general DRI configuration mechanism to replace card-specific environment variables.
dispatch-0-0-1-branch
This is the branch for the Mesa dynamic dispatching work.
glxmisc-1-0-0-branch
This branch fixed a variety of GLX-related issues such as visual configuration.
glxmisc-2-0-0-branch
This branch overhauled the XMesa/DRI client-side code; XMesa is no longer used.
glxmisc-3-0-0-branch
This branch fixed several DRI, DRM and GLX bugs, added version checking to the DRI components, fixed potential memory leaks in DRI drivers, and updated to Mesa 3.3.
m3-0-0-1-branch
This branch contained changes to support the ATI Rage 128 Mobility (M3/M4).
mach64-0-0-7-branch
This was the branch for the ATI Rage Pro driver development.
mga-0-0-1-branch, mga-0-0-2-branch, mga-0-0-3-branch
These branches housed the development of the Matrox G200/G400 and the Intel i810 drivers.
r200-0-1-branch
This was the development branch for the Radeon R200 driver.
radeon-1-0-0-branch
This branch contained support the ATI Radeon development.
savage-1_0_0-branch, savage-2-0-0-branch
This is the branch for integration of the VIA/S3 Savage driver.
sse-1-0-0-branch
This was an experimental branch, looking at optimizations of both core Mesa and the hardware drivers for the Pentium III processor.
tcl-0-0-branch
This branch hosted the Radeon Transform/Clip/Lighting works.
tdfx-1-1
This was the experimental branch for the 3dfx Voodoo Banshee/Voodoo3 development.
tdfx-2-0-branch
This was the experimental branch for the 3dfx Voodoo4/Voodoo5 development.
tdfx-2-1-branch
tdfx development for SLI and T-buffers was being done on this branch.
tdfx-3-0-0-branch
This branch implemented the tdfx driver overhaul, initiated by Gareth.
texmem-0-0-1
Texture memory management improvements.

Abandoned Branches

These branches have been abandoned for one reason or another. No development is taking place on these.
dmx-0-1-branch
This is the Distributed Xinerama branch. The DMX project has its own SourceForge CVS tree now. See the DMX homepage .
mesa-3-5-branch
This branch was for Mesa 3.5 development, including porting of the DRI drivers to Mesa 3.5.
mesa-4-0-4-branch
DRI based on Mesa 4.0.4, used during the XFree86 4.2.99.x series so Mesa 5.0 work could continue on trunk and stable fixes get merged.
ppc-1-0-0-branch
This branch was dedicated to porting the DRI to Linux (and maybe other OSs) on PowerPC processors. PPC support for ATI Rage128 chips has finally hit the trunk with the merge of the ati-pcigart-1-0-0-branch.
smt-0-0-1-branch, smt-0-0-2-branch
This was the branch for the shared memory transport work. SMT was completed in 1 March 2000, and was not found to provide more than a 10% performance increase using modern graphics cards on modern machines. This level of performance improvement does not justify inclusion of the SMT patches into the main XFree86 distribution, so this branch has been abandoned. A complete discussion is available on the SharedMemoryTransport page; Patches (against XFree86 3.9.18) used to exist...
video-1-0-0-branch
This branch was for experimental video work that is no longer in progress. There's nothing interesting on this branch.