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]
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
