On Monday 02 May 2005 13:27, The Slash wrote: > well since there is no DRI support for the SiS m650, and according to > what I heard there never will be, I have decided to write my own. I > have never written my own driver before, and I'm a little confused as > to where to begin. I know that SiS does not normally distribute there > hardware specs, so i might end up having to reverse-engineer the > windows drivers. any advice on where to start for this sort of thing?
Reverse-engineering for a 3d driver is basically a matter of finding the routine(s) that do register writes, modifying them to log their arguments, and then running simple testcases against the modified driver. Occasionally the register write routines are scattered all over the place (or just inlined), which means you instead need to dump the register space at regular intervals and hope you didn't miss anything important. 3d chips tend to have a _lot_ of registers, so this is much harder than it would be for, say, an ethernet controller. Fortunately they also tend not to change too drastically between hardware revisions, so you may be able to use the existing sis driver as a base. > and if i were able to get the info from SiS, what exactly would I > need? A list of all the registers on the card, with their names, functionality, and the legal values you can write to them. At minimum. Ideally you also get a "theory of operation" document that describes the order that setup should happen. The Voodoo3 doc is a good example of what you're looking for. - ajax
pgpz9rZaKezpQ.pgp
Description: PGP signature
