![]() When the audio device resumes, the GPU needs to be woken. Which augments the GPU’s suspend/resume functions by the requisite This is achieved by vga_switcheroo_init_domain_pm_ops(), Likewise it needs to reinstate power before the GPUĬan resume. Specifying npm=0, npm=0 or npm=0 on the kernelĪfter the GPU has been suspended, the handler needs to be called to cut This mode is the default on Nvidia HybridPower/Optimus and ATI PowerXpress. The ON and OFF commands become a no-op for the discrete GPU. Still influence the muxer state by way of the debugfs interface, however The discretion of the driver’s runtime pm. In this mode of use, the discrete GPU automatically powers up and down at The ON and OFF commands are a no-op (see next section).įor muxless machines, the IGD/DIS, DIGD/DDIS and MIGD/MDIS commands MDIS: Mux-only switch to the discrete graphics device.įor GPUs whose power state is controlled by the driver’s runtime pm, If it is on, the screen will show whatever happens to be in VRAM.Įither way, the user has to blindly enter the command to switch back. ![]() If the integrated GPU is currently off, the screen will turn black. MIGD: Mux-only switch to the integrated graphics device.ĭoes not remap console or change the power state of either gpu. This will perform the switch once the last user space process hasĬlosed the device files of the GPUs and the audio client.ĭDIS: Delayed switch to the discrete graphics device. Switch fails, the user may invoke lsof(8) or fuser(1) on /dev/dri/Īnd /dev/snd/controlC1 to identify processes blocking the switch.ĭIS: Switch to the discrete graphics device.ĭIGD: Delayed switch to the integrated graphics device. Have opened device files of the GPUs or the audio client. Prerequisite is that no user space processes (e.g. Power on the integrated GPU if necessary, power off the discrete GPU. IGD: Switch to the integrated graphics device. Two GPU drivers and one handler have registered with vga_switcheroo. In this mode of use, the file /sys/kernel/debug/vgaswitcheroo/switchĬan be read to retrieve the current vga_switcheroo state and commandsĬan be written to it to change the state. Modes of Use ¶ Manual switching and manual power control ¶ Only the DDC lines and not the entire output avoids unnecessaryįlickering. ![]() Switched to it, provided that the handler supports this. If there is no VBIOS at all (which is common on the MacBook Pro),Ī client may alternatively request that the DDC lines are temporarily It will be unable to probe the panel’s EDID and hence depends on When the inactive client’s DRM driver is loaded, The GPU to which the outputs are currently switched is called theĪctive client in vga_switcheroo parlance. Machines with more than two GPUs should they become available. There can thus be up to three clients: Two vga clients (GPUs) and one audioĬlient (on the discrete GPU). Suspend/resume order when changing the discrete GPU’s power state. ![]() Register as a client so that vga_switcheroo can take care of the correct With an HDA controller for the HDMI/DP audio signal, this will also Handler to control the power state of the discrete GPU, its ->switchtoĬallback is a no-op for obvious reasons. (To allow EDID probingįor the inactive GPU.) Also, muxes are often used to cut power to theĭRM drivers register GPUs with vga_switcheroo, these are henceforth calledĬlients. While others can switch just the DDC lines. Muxes come with varying capabilities: Some switch only the panel, othersĬan also switch external displays. Newer laptops moved to a muxless architecture for cost reasons.Ī notable exception is the MacBook Pro which continues to use a mux. Hybrid graphics started to appear in the late Naughties and were initiallyĪll muxed. The other one is merely used to offload rendering, its resultsĪre copied over PCIe into the framebuffer. Muxless: Dual GPUs but only one of them is connected to outputs. Muxed: Dual GPUs with a multiplexer chip to switch outputs between GPUs. Vga_switcheroo is the Linux subsystem for laptop hybrid graphics. ![]()
0 Comments
Leave a Reply. |