Based on some research and feedback I've gotten, I've re-structured the GBD, COB, and streams code. I put together a document based on my findings here: http://www.botchco.com/alex/savage/Savage_Guide.txt
I've tested on savage4 and savage IX, and all seems well. I'd like to get more feedback from savage3D, twister, non-DDR prosavage, and savage2000 users. I haven't gotten any feedback from savage3d users at all yet, although, I doubt there are many as I don't think S3 released many savage3D chips. I originally assumed twister worked like prosavage/DDR, but it seems to be more like savage4. this is backed up by some info on via's website (see the savage guide above) and feedback from some users. I don't think we've gotten any testers yet on non-DDR prosavage, so I'd like to get some feedback on that as well. Also, I think DDR, Prosavage, and 2000 share the same 2d engine and possibly streams, I'd like to get some feedback from savage2000 users to make sure tiled mode and 2d (and possibly streams) works with the dri savage driver. Savage2000 users, please try both tiled and linear mode (option "disabletile"). Unfortunately, there is no 3D support for savage2000 yet and it won't happen until S3 releases some code or a databook. Issues: 1. Cursor corruption. The cobIndex bitfield of register 48C14 seems to vary between series and revisions of twister/prosavage/savage4/2000. if you are getting hardware cursor corruption, try the "disablecob" option to disable it. alternatively, you can try setting psav->cobIndex to 7 from 2 or vice versa in savage_driver.c. unfortunately, I don't know which revisions use which bitfield layout. Twisters and early revision savage4 chips seem to use 7, while supersavage, newer savage4 and DDR chips seem to use 2. 2. Scrambled 3D window. This is due to variations in the bitmap descriptor layout between chips. The two important fields seem to be the tile format field and the bci enable bit. I haven't sorted all of these out yet. savage4 and twister seem to be the same and prosavages, DDRs, and 2000 seem to be the same, but there may be further variation. Tim, regarding 1 and 2, do you have any idea which chips use which layout, and also how we can find out the chip revisions so we can set this properly? My patch is against the savage driver in DRI cvs. See this page for more on how to download and build cvs: http://dri.sourceforge.net/cgi-bin/moin.cgi/Building I've attached my patch and it's also available here: http://www.botchco.com/alex/savage/core-rework/core-rework.diff I've also created a binary (build on redhat9) for those that want to try: http://www.botchco.com/alex/savage/core-rework/savage_drv.o Please send feedback to myself and dri-devel. Thanks, Alex __________________________________ Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. http://taxes.yahoo.com/filing.html
core-rework.diff
Description: core-rework.diff