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