Since people have asked for it, I decided I'd give it a try...
So here it is, a unified radeon driver (no not r300, only r100 and r200).
http://homepage.hispeed.ch/rscheidegger/dri_experimental/ati_radeon.tar.bz2
exectuable generated will be called radeon_dri.so, for r200 you can just use a symlink.
Basically this was just a mass copy/paste/search/replace job, there is very little new code in there. r100 changed more than r200, though:
OLD_PACKETS, MAOS_VERTS are gone to make it look more like r200. Likewise, I've applied Andreas Stenglein's t_vertex patch (though for now there is actually not really any shared code for swtcl) from here, https://bugs.freedesktop.org/show_bug.cgi?id=2195.
Also, radeon_compat and the subset stuff is gone (I'm not sure if this was actually up-to-date?). Required drm minor version was upped to 5 instead of 3, since that's the same as the r200 driver required.
R100 theoretically also gained support for the client texturing stuff, since the code is not chip-specific it was moved to a common section. Both drivers should retain their current behaviour wrt to texture heaps/client texturing however.
It is not fully unified, some code which could, and in some cases probably should be the same is still separate (most of sanity, swtcl, vtxfmt). In the end I actually ended up with almost everything in the generic radeon context, except vtxfmt and some variables which could easily be moved to it too...
There is some problem with driconf, it seems to have some problems because the driver's name (radeon) does not match what it expects (r200). Likewise, I couldn't figure out how you'd have 2 separate config sections for both r100 and r200, currently you'll get all options of the r200 (though it won't work for that chip family...), some options just won't do anything on r100.


Only tested on r200, and there are actually some visual anomalies in some games (ut2k3, startup logo and the "special effects" things like health pickups). No idea what's wrong, unless there is some fundamental problem it may be a copy&paste error or a context initialization issue (maybe moving functions around unless it no longer segfaults wasn't the correct way to address that...). Context creation is quite a mess, might not work at all on r100.
Also, there were some differences between the r100 and r200 driver which did not seem to be due to hardware differences. I've generally marked such differences with "FIXME".


I'm still not sure it's actually worth it though, source code size is only very little less than both drivers combined (if you subtract the r100 stuff which is gone).

Thoughts?
I'll commit it if there is some consensus this is actually a good idea, though if you think all files should be renamed better say that now ;-).


Roland


------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to