On Mon, 16 Jun 2003 10:21:20 -0700 (PDT)
Alex Deucher <[EMAIL PROTECTED]> wrote:
> 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?
Disclaimer: I don't have any experience with multi-head configurations.
To me it looks rather suspicious that there is a return in the middle of
the function without unlocking first. Maybe it should better be written
as:
...
if(info->MergedFB) {
RADEONAdjustFrameMerged(scrnIndex, x, y, flags);
} else if (info->FBDev) {
fbdevHWAdjustFrame(scrnIndex, x, y, flags);
} else {
RADEONDoAdjustFrame(pScrn, x, y, FALSE);
}
#ifdef XF86DRI
if (info->CPStarted) DRIUnlock(pScrn->pScreen);
#endif
}
>
> Alex
>
Regards,
Felix
------------ __\|/__ ___ ___ -------------------------
Felix ___\_e -_/___/ __\___/ __\_____ You can do anything,
K�hling (_____\�/____/ /_____/ /________) just not everything
[EMAIL PROTECTED] \___/ \___/ U at the same time.
-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel