On Son, 2003-02-02 at 06:09, hy0 wrote: > > > On Mon, 2003-01-27 at 10:14, Nathaniel Gray wrote: > > > """ > > > I guess this doesn't happen with DRI disabled? Looks like pure luck to > > > me that RADEONWaitForVerticalSync() ever returns when the DRM handles > > > vertical blank interrupts. I'll look into fixing that if noone beats me > > > to it. > > > """ > > > > > > True, the problem doesn't occur unless DRI is enabled. > > > > This patch works for me with DRI enabled, can you (or anyone seeing the > > problem, for that matter) try it? > > > > There could still be an even worse problem if the vertical blank > > interrupt stops working for some reason (I've seen that happen after > > some weird 3D client crashes). Another possibility would be polling the > > CRTC_VBLANK_SAVE bit in the CRTC_STATUS register. Kevin, Hui, anyone > > interested, what do you think? > > It appears RADEONWaitForVerticalSync can cause some race conditon with DRM > WaitVBlank routine.
Not specifically with that, the DRM installs an interrupt handler which acknowledges the interrupt flag. It's sheer luck that the X driver ever sees the flag before it's acknowledged. > If this is the case, Michel's patch should work. Since > the display driver can also use CRTC2 (different from CRTC1's vblank > condition) when DRI is enabled, this makes things more complicated. The DRM doesn't deal with the CRTC2 vblank interrupt (yet :) so this isn't urgent. > Judging from current situation, we probably should take > RADEONWaitForVerticalSync and RADEONWaitForVerticalSync2 all out of the > cursor routines. I'd prefer fixing those functions instead. After some more thought, polling for _VBLANK_SAVE in both is probably safest for 4.3.0. > The WaitForVerticalSync functions were added for avoiding > flickering problem when switching between ARGB and BW cursors. BTW, I still see that problem (if very rarely) with WaitForVerticalSync, is the idea to update the registers during vertical retrace? > This problem is much less severe than having WaitForVerticalSync to time out, > particularly if ARGB cursor is not used as default (has this been decided?). I hope there will be a less disruptive ARGB theme by default. -- Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast _______________________________________________ XFree86 mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xfree86