From: Gareth H. <ga...@va...> - 2001-02-26 11:51:30
|
Gareth Hughes wrote: > > Mike Lincoln wrote: > > > > OK I've changed :- > > > > mmesa->status_offset = mmesa->mgaScreen->primary.handle; > > > > to > > > > mmesa->status_offset = mmesa->mgaScreen->status.handle; > > > > in mga_xmesa.c, XMesaCreateContext(...) > > > > And now my Xserver runs fine. I need to remove all the debuging code > > and test some more because it could just be a timing thing, but it > > *seems* to have made things better for me. Either way its time to go to > > bed. Actually, this is wrong. I'm undoing the change in CVS now. The card writes out the current primary DMA pointer to the status page. This is a full 32-bit address, and so we need to subtract the primary buffer address from the status value to get the offset from the start of primary DMA space. Changing the offset to a regular PCI address instead of an AGP address will basically make the test always pass. If this is working for you (ie. not locking up), then we need to work out why the status page value isn't being updated correctly. -- Gareth |