Tilman Sauerbeck [2006-08-08 21:27]:
> Tilman Sauerbeck [2006-07-28 18:21]:
> > Tilman Sauerbeck [2006-07-28 14:42]:
> > > Michel Dänzer [2006-07-28 13:40]:
> > > > Are you familiar with the X server's function wrapping mechanism?
> > > > DRI(Do)BlockHandler() is the DRI module's wrapper of the X server's
> > > > BlockHandler screen hook, which it calls whenever it has run out of
> > > > requests and goes to sleep for a bit. For symmetry, there's a DRILock()
> > > > call in DRIDoWakeupHandler(), which is a wrapper for the hook the X
> > > > server calls before it starts processing new requests. The idea is for
> > > > the DRI module to automatically hold the lock whenever the X server
> > > > might need hardware access.
> > > 
> > > I should have asked a more specific question. While DRIBlockHandler()
> > > was called all the time, DRIDoBlockHandler() was only called once, which
> > > led to the bad DRIUnlock() call. I wanted to know when
> > > DRI_Do_BlockHandler() is called :)
> > > 
> > > Looking at the code again, it seems DRIDoWakeupHandler() and
> > > DRIDoBlockHandler() are the base functions for the job, which may be
> > > overridden by the DDX driver. MGA overrides both in MGADRIScreenInit().
> > 
> > So it seems like mga_dri.c's MGAWakeupHandler should always call
> > DRILock(). The attached patch implements this change - it makes glxinfo
> > work again. It's probably horribly wrong though... :)
> 
> A better approach is to teach glxdri.c about the driver-specific
> block/wakeuphandlers. See the attached patch. It makes glxinfo work as

This patch has been committed.

> well, but glxgears is still hanging.
> 
> It seems that DRILockTree() is being the bugger that causes the
> double-unlock:
> 
> ...
> (II) MGA(0): MGABlockHandler: unlocking
> DRILockTree: unlocking
> DRIUnlock called when not locked

I committed a proper patch to the MGA driver
(bde592047cd62194d7ef67520a9fdbaf269a8b90).

Please report any regressions you might find ;)

Thanks to anyone who helped in tracking this down.

Regards,
Tilman

-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Attachment: pgpfoh3QavTUi.pgp
Description: PGP signature

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to