A major gripe I have with X.org is the state of GPU hot-swapping. With new laptops coming with dual GPU – a performance oriented one and another power-saving one, I consider GPU hot-swapping a very important feature. It works perfectly in Windows but in Linux the state of GPU hot-swapping is pathetic right now.
The only semblance of GPU hot-swapping in Linux is provided by vga_switcheroo, This is really a very crude method of GPU switching and works as a kernel patch. Since X.org does not support this (and I do not think there is any plan to do it. Correct me if I am wrong.), X.org has to be restarted when the switch takes place – hardly the seamless switching we see in Windows.
However, things may be different with Wayland Display Server. According to Jerome Glisse, Wayland will be able to smoothly switch GPU and the driver without restarting.
This is what he wrote in the mailing list:
I think to cover all use case Dave presented we should have somethings like this:
-wayland provide a list of EGL driver it can texture from (optimus case where we can migrate texture from nvidia to intel)
-wayland can ask to it's client to switch GL driver and report if they can switch or not (i think this should happen in 2 step first ask and gather answer from all client if one client says it can't then forbid the switch, otherwise ask to all client to redraw with new driver)
All this wouldn't need restart from wayland.
Wayland is still a long time away from being stable enough to completely replace X.org. But it is good to know that the recent support from Canonical and Red Hat seems to be giving a boost to its development.