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

Reply via email to