I've got a lot of reading to do over the next while to get up to speed. At the same time, I need to work on building and testing the current code so I can be an effective Fedora packager. Supporting the current Mach64 and R128 code is purely tactical while working on a viable replacement.
The whole idea of Mesa removing DRI-based code and the Fedora X developers moving to eliminate non-KMS X drivers is very valid. There are not enough time and resources to maintain many different approaches/iterations forever.
My goal is to provide bridge support for the oldest hardware, and work towards a replacement solution that fits much better in the overall scheme of things.
Focus areas include:
- Basic terminology
- At a high level, the code and interfaces involved
- What efforts have been started in the past, and the state/availability of the code.
- High level changes for basic architecture across the ATI Mach64->Rage->R100->R200->R300->R600 evolution
There is an awful lot of information that was once on the internet that is no longer available. Hopefully the important bits are in the Internet Archive. For example, http://wiki.x.org/wiki/DRI2 is AWOL.
The basic issues with these older GPUs appears twofold:
- X drivers obsolete because they use UMS, and were not migrated to KMS interfaces
- Mesa drivers removed because they used DRI instead of DRI2. Now Keith Packard has introduced DRI3. How might that affect R100/R200?
I want to make an effective contribution to ensure that the obsolete hardware works as well as it practically can (including the R100, R200, and R300 families). Creating a new solution using obsolete (or nearly so) interfaces is a non-starter. The best approach should to come up a solution that can be unified with (or be as close as possible to) that used for R100 and R200. That may include a unified DRI3-based approach and investigating/understanding what role LLVM (as used with R300) might play.