Airlied pointed me at a fairly easy bug to reproduce -- VT switch while
compiz is running and the server locks up when you switch back.

The cause is fairly simple to understand -- VT switching involves a mode
set, and that mode set erases the hardware frame counter registers.
However, Mesa doesn't know that, and so it asks to wait for the next
frame to pass by when compiz asks it to wait. As it has an old frame
count, it waits for a long time.

It seems like what we want is for the kernel to keep some kind of
'offset' when vt switching and add that into the frame counts returned
for each crtc. Does this make sense?

We've got DRM_PRE_MODESET and DRM_POST_MODESET as well as
I915_GEM_LEAVEVT/I915_GEM_ENTERVT to play with here. It seems like
recording vblank numbers at suitable points within these functions could
help resolve the problem.

-- 
[EMAIL PROTECTED]

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to