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

Attachment: core-rework.diff
Description: core-rework.diff

Reply via email to