I've looked through the code and all the DRILock() and DRIUnlock() seem
to be right. the only things that stands out as potentially suspicious
is in RADEONAdjustFrame():
void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
RADEONInfoPtr info = RADEONPTR(pScrn);
#ifdef XF86DRI
if (info->CPStarted) DRILock(pScrn->pScreen, 0);
#endif
if (info->accelOn) info->accel->Sync(pScrn);
if(info->MergedFB) {
RADEONAdjustFrameMerged(scrnIndex, x, y, flags);
return;
}
if (info->FBDev) {
fbdevHWAdjustFrame(scrnIndex, x, y, flags);
} else {
RADEONDoAdjustFrame(pScrn, x, y, FALSE);
}
#ifdef XF86DRI
if (info->CPStarted) DRIUnlock(pScrn->pScreen);
#endif
}
I would assume the DRI would still be locked?
RADEONAdjustFrameMerged() just computes the new viewports then calls
RADEONDoAdjustFrame() for each crtc. Do you think it may have
something to do with the order in which the frames are adjusted (crtc1
first vs. crtc2 first)?
Thoughts?
Alex
--- Michel D�nzer <[EMAIL PROTECTED]> wrote:
...
> > > >
> > > > More details about the problem are listed here:
> > > > http://bugs.xfree86.org/cgi-bin/bugzilla/show_bug.cgi?id=276
> > >
> > > Looks like the hanging ioctl is DRM_IOCTL_LOCK, maybe there's a
> > > DRILock()
> > > with no corresponding DRIUnlock()?
> > >
> >
> >
> > Maybe... I don't know. I certainly didn't add or remove any when
> wrote
> > mergedfb support. I don't know why it wouldn't also show up in
> single
> > head mode...
>
> Dunno, non-obvious change of code flow? Tracing the lock functions
> might
> be interesting.
>
>
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel