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.
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.
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:
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.
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.