Linux GPU Switching For Apple's MacBook Pro, Revised
For those running Linux on Apple MacBook Pro laptops that have both Intel HD Graphics and a discrete NVIDIA GPU, there's new patches underway for proper GPU switching support.
Independent developer Lukas Wunner has written up / revised 11 patches for enabling GPU switching on the Apple MacBook Pro via extending vga_switcheroo and the Intel/Nouveau drivers.
While other laptops generally have okay GPU switching support these days, Lukas explained of the MBP hardware, "On MBPs, the panel is not connected to one of the gpus, but to the gmux chip (the "handler" in vga_switcheroo speak). Initially the gmux is switched to the discrete gpu. The integrated i915 gpu is therefore unable to detect the LVDS (or eDP) connector on bootup and switching to the integrated gpu will lead to a black screen. The solution is to temporarily switch the DDC lines to the integrated gpu when reading the EDID, which the gmux is capable of. Lack of support for this in vga_switcheroo is pretty much the only obstacle to get gpu switching to work on MBPs."
Back in 2012 were patches by others for working on MacBook Pro GPU switching and then revised again last year, but the full support has yet to be merged to the Linux kernel. Lukas Wunner had started from some patches that David Airlie was hacking on three years ago but never finished.
While this new patch series has the GPU switching working, there is sometimes flickering of the screen when switching the GPU, the NVIDIA GPU sometimes gets lodged in its power-saving mode, and other potential problems.
Independent developer Lukas Wunner has written up / revised 11 patches for enabling GPU switching on the Apple MacBook Pro via extending vga_switcheroo and the Intel/Nouveau drivers.
While other laptops generally have okay GPU switching support these days, Lukas explained of the MBP hardware, "On MBPs, the panel is not connected to one of the gpus, but to the gmux chip (the "handler" in vga_switcheroo speak). Initially the gmux is switched to the discrete gpu. The integrated i915 gpu is therefore unable to detect the LVDS (or eDP) connector on bootup and switching to the integrated gpu will lead to a black screen. The solution is to temporarily switch the DDC lines to the integrated gpu when reading the EDID, which the gmux is capable of. Lack of support for this in vga_switcheroo is pretty much the only obstacle to get gpu switching to work on MBPs."
Back in 2012 were patches by others for working on MacBook Pro GPU switching and then revised again last year, but the full support has yet to be merged to the Linux kernel. Lukas Wunner had started from some patches that David Airlie was hacking on three years ago but never finished.
While this new patch series has the GPU switching working, there is sometimes flickering of the screen when switching the GPU, the NVIDIA GPU sometimes gets lodged in its power-saving mode, and other potential problems.
7 Comments