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

Reply via email to