As mentioned this morning
when AMD provided Canonical with a Catalyst 11.4 driver pre-release for proprietary Radeon / FirePro support under Ubuntu 11.04, there's more than just support for Linux 2.6.38 kernel and X.Org Server 1.10. This Linux driver update also provides support for AMD PowerXpress with dual-GPU notebooks.
PowerXpress is AMD's technology is part of ATI Hybrid Graphics and allows seamless switching between integrated graphics and discrete graphics for notebooks. It's designed to increase battery life for notebooks while still delivering maximum graphics performance when on AC power. This technology has been offered by AMD since 2008, but is finally coming to Linux.
With Catalyst 11.4, there's finally AMD PowerXpress support under Linux. While under Windows it's a seamless experience switching between the notebook's graphics processors, under Linux this is not the case. However, that's in large part due to existing limitations of the X.Org Server with not supporting hot-switching of GPUs and drivers. Fortunately, GPU hot-switching improvements
may come this summer as part of GSoC, but don't expect to see any immediate advancements.
This PowerXpress support is similar to vga_switcheroo
, which allows switching between the NVIDIA / Intel / AMD GPUs on the open-source drivers. This just came about a year ago in a rather rudimentary form, but it's working for the most part. This vga_switcheroo implementation also requires restarting the X.Org Server when switching between GPU/drivers.
With PowerXpress in the binary driver, not only does the server need to be restarted, but the OpenGL and GLX libraries need to be flipped out too. With vga_switcheroo on the open-source drivers, there is no switching needed since they all use the common Mesa libGL, but between Intel and AMD graphics with Catalyst, it requires flipping between Mesa and AMD's proprietary OpenGL implementation.
This switching also doesn't happen like it does under Windows when either connecting or disconnecting from an AC power source, but it must be initiated by the user.
When a user initiates the PowerXpress switch, the libglx file is switched automatically while the libGL library is switched when the X Server is restarted. This is done by two scripts shipping with the Catalyst driver called switchlibGL
. This switching is done just using symbolic links. Some distributions though may end up writing their own library file switcher so it complies with their packaging policies.
That's about it for the details I know right now. I don't have a PowerXpress-capable notebook around so am unable to verify its state and am just relying upon the information that was provided to me. It's also not known how it plays since the Intel graphics rely upon kernel mode-setting where as the Catalyst driver is not compatible with KMS.