Switching from a VT to X used to be instant with KMS. After this commit, http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=bd360e7517835626bee54bec968cdc78908c6545 , my monitor flickers like it is changing modes. Switching from X to a VT or from one VT to another VT is still instant, however. I don't know if this commit adds a critical feature, but it seems like a regression to me.
Created attachment 24622 [details]
Created attachment 24623 [details]
Created attachment 24624 [details]
Created attachment 24656 [details] [review]
Don't prepare outputs & crtcs if driver has set_mode_major
Ah it must be coming from the xf86SetDesiredModes call. The server is a bit overaggressive in disabling outputs in the KMS case. You could try this patch to the server to see if it helps (totally untested).
There's a small problem with your patch: crtc isn't defined when you use it. I know very little programming, but I hacked it up to compile and it does indeed fix the problem. Switching from VT -> X is now instant and flicker free! :)
So, since this bug is a problem with the xserver and not intel, should I submit it somewhere else? Just for clarification, I got your patch to work by simply moving the if statement into the for loop directly below it. This solution has been working for me without any crashes for the past week.
Yeah it's a server bug. I'll post the patch for comments.
Fix pushed to X server master:
Author: Jesse Barnes <firstname.lastname@example.org>
Date: Mon May 4 15:38:22 2009 -0700
Don't prepare outputs & crtcs if set_mode_major is present