https://wiki.archlinux.org/api.php?action=feedcontributions&user=HariSeldon&feedformat=atomArchWiki - User contributions [en]2024-03-28T10:34:20ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233216Hybrid graphics2012-11-02T17:11:30Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] (remember to check for xorg compatibility).<br />
<br />
==== Solutions So Far ====<br />
<br />
{{Warning| This method, on a mux-less system, works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail.<br />
<br />
}}<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233193Hybrid graphics2012-11-02T16:04:55Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] (remember to check for xorg compatibility).<br />
<br />
==== Solutions So Far ====<br />
<br />
{{Warning| This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail.<br />
<br />
}}<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233192Hybrid graphics2012-11-02T16:04:18Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] (remember to check for xorg compatibility).<br />
<br />
==== Solutions So Far ====<br />
<br />
{{Warning| This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail. }}<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233190Hybrid graphics2012-11-02T16:01:39Z<p>HariSeldon: /* Current Problems */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] (remember to check for xorg compatibility).<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!!ATTENTION!!!''' This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233188Hybrid graphics2012-11-02T15:55:12Z<p>HariSeldon: /* ATI Dynamic Switchable Graphics */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] .<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!!ATTENTION!!!''' This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233187Hybrid graphics2012-11-02T15:54:02Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] .<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!ATTENTION!!''' This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems_2 Current Problems] section above for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233186Hybrid graphics2012-11-02T15:52:05Z<p>HariSeldon: /* Current Problems */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
The Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
<br />
So, the method listed [https://wiki.archlinux.org/index.php/Hybrid_graphics#Solutions_So_Far here] (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. See [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics here] for more info.<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project. Check the [https://github.com/Bumblebee-Project/Bumblebee/issues/52 project repository] and [http://forums.gentoo.org/viewtopic-t-909802.html this] useful post.<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by [https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR Vi0l0] .<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!ATTENTION!!''' This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems Current Problems] section for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233184Hybrid graphics2012-11-02T15:44:29Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
As the Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
The method listed here below (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics].<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project [https://github.com/Bumblebee-Project/Bumblebee/issues/52] [http://forums.gentoo.org/viewtopic-t-909802.html]<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by Vi0l0.[https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR]<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!ATTENTION!!''' This method works only to shutdown the radeon card. This will not enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems Current Problems] section for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233183Hybrid graphics2012-11-02T15:44:08Z<p>HariSeldon: /* Solutions So Far */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
As the Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
The method listed here below (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics].<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project [https://github.com/Bumblebee-Project/Bumblebee/issues/52] [http://forums.gentoo.org/viewtopic-t-909802.html]<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by Vi0l0.[https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR]<br />
<br />
==== Solutions So Far ====<br />
<br />
'''!!ATTENTION!!''' This method works only to shutdown the radeon card. This will note enable rendering on the radeon. See [https://wiki.archlinux.org/index.php/Hybrid_graphics#Current_Problems Current Problems] section for detail.<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233181Hybrid graphics2012-11-02T15:39:14Z<p>HariSeldon: /* Current Problems */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
As the Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e].<br />
The method listed here below (and the AUR package related) '''will not work''' until Xorg team add support for the redering on a second card not attached to video. [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics].<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project [https://github.com/Bumblebee-Project/Bumblebee/issues/52] [http://forums.gentoo.org/viewtopic-t-909802.html]<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by Vi0l0.[https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR]<br />
<br />
==== Solutions So Far ====<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233178Hybrid graphics2012-11-02T15:36:42Z<p>HariSeldon: /* ATI Dynamic Switchable Graphics */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====<br />
<br />
As the Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e], this method (and the AUR package related) '''will not work''' until Xorg team support it [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics].<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project [https://github.com/Bumblebee-Project/Bumblebee/issues/52] [http://forums.gentoo.org/viewtopic-t-909802.html]<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by Vi0l0.[https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR]<br />
<br />
==== Solutions So Far ====<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldonhttps://wiki.archlinux.org/index.php?title=Hybrid_graphics&diff=233176Hybrid graphics2012-11-02T15:36:04Z<p>HariSeldon: /* Current Problems */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[tr:Hibrit_Grafik_Teknolojileri]]<br />
{{Stub}}<br />
<br />
''Hybrid-graphics is a concept involving two graphics cards on same computer, it was first designed to control power consumption in laptops and is extending to desktop computers as well''<br />
<br />
== About Hybrid-graphics Technologies ==<br />
<br />
The laptop manufacturers developed new technologies involving two graphic cards in an single computer, enabling both high performance and power saving usages. This technology is well supported on Windows but it's still quite experimental with Linux distributions.<br />
<br />
We call hybrid graphics a set of two graphic cards with different abilities and power consumptions. There are a variety of technologies and each manufacturer developed its own solution to this problem. Here we try to explain a little about each approach and models and some community solutions to the lack of GNU/Linux systems support.<br />
<br />
== The "Old" Hybrid Model (Basic Switching) ==<br />
<br />
This approach involves a two graphic card setup with a hardware multiplexer ([[Wikipedia:Multiplexer|MUX]]). It allows power save and low-end 3D rendering by using an Integrated Graphics Processor (IGP); or a major power consumption with 3D rendering performance using a Dedicated Graphics Processor (DGP). This model makes the user choose (at boot time or at login time) within the two power/graphics profiles and is almost fixed through all the user session. The switch is done by a similar workflow:<br />
* Turn off the display<br />
* Turn on the DGP<br />
* Switch the multiplexer<br />
* Turn off the IGP<br />
* Turn on agin the display<br />
This switch is somewhat rough and adds some blinks and black screens in laptops that could do it "on the fly". Later approaches made the transition a little more user-friendly.<br />
<br />
== The New Dynamic Switching Model ==<br />
<br />
Most of the new Hybrid-graphics technologies involves two graphic cards as the basic switching but now the DGP and IGP are plugged to a framebuffer and there is no hardware multiplexer. The IGP is always on and the DGP is switched on/off when there is a need in power-save or performance-rendering. In most cases there is no way to use ''only'' the DGP and all the switching and rendering is controlled by software.<br />
At startup, the Linux kernel starts using a video mode and setting up low-level graphic drivers which will be used by the applications. Most of the Linux distributions then use X.org to create a graphical environment. Finally, a few other softwares are launched, first a login manager and then a window manager, and so on. This hierarchical system has been designed to be used in most of cases on a single graphic card.<br />
<br />
=== Nvidia Optimus ===<br />
<br />
[http://www.nvidia.com/object/LO_optimus_whitepapers.html Nvidia Optimus Whitepaper]<br />
<br />
==== Current Problems ====<br />
<br />
* Switching between cards when possible.<br />
* Switching on/off the discrete card.<br />
* Be able to use the discrete card for 3D render.<br />
* Be able to use both cards for 3D render (problem arised in [https://bbs.archlinux.org/viewtopic.php?id=120994 this post]).<br />
<br />
==== Software Solutions So Far ====<br />
<br />
* [[asus_switcheroo]] -- a solution for Intel/Nvidia switching on ASUS and other laptops with a similar hardware mux -- by Alex Williamson<br />
* [[byo_switcheroo]] -- a solution to build your own handler (like acpi_call) to switch between cards with vga_switcheroo -- by Alex Williamson<br />
* [http://en.gentoo-wiki.com/wiki/Vga_switcheroo vga_switcheroo] -- the original GPU switching solution primarily for Intel/ATI notebooks -- by David Airlie<br />
* [[acpi_call]] -- allows you to switch off discrete graphics card to improve battery life -- by Michal Kottman<br />
* [[PRIME]] -- long-term Optimus solution in progress -- by David Airlie <br />
* [[Bumblebee]] -- allows you to run specific programs on the discrete graphic card, inside of an X session using the integrated graphic card. Works on Nvidia Optimus cards -- by Martin Juhl<br />
* [[hybrid-windump]] -- dump window using Nvidia onto Intel display -- by Florian Berger and Joakim Gebart<br />
<br />
=== ATI Dynamic Switchable Graphics ===<br />
<br />
This is a new technology similar to the one of Nvidia. There is no hardware multiplexer and gone into the market a few weeks/months ago. <br />
<br />
==== Current Problems ====https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR<br />
<br />
As the Dynamic Switch needs Xorg support for the discrete videocard assigned to rendering [http://www.x.org/wiki/RadeonFeature#fnref-e188f8b793017f6c1c15025dc3d042a1e560915e], this method (and the AUR package related) '''will not work''' until Xorg team support it [https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graphics].<br />
<br />
This means that with a muxless intel+ati design, you can't use your discrete card simply modprobing the module as listed down here.<br />
<br />
As of now, there are 3 choices:<br />
<br />
- Disable the discrete card and use only the intel one. In this case you can folow the instructions below to disable the radeon card.<br />
<br />
- Test and improve some virtualGL based program to make the switch, like the common-amd branch of bumblebee project [https://github.com/Bumblebee-Project/Bumblebee/issues/52] [http://forums.gentoo.org/viewtopic-t-909802.html]<br />
<br />
- Use the proprietary driver with powerxpress (a.k.a. pxp) support maintained by Vi0l0.[https://wiki.archlinux.org/index.php/AMD_Catalyst#Installing_from_the_AUR]<br />
<br />
==== Solutions So Far ====<br />
<br />
Right now, the best solution is vga_switcheroo with combination of opensource drivers for your ATi and Intel graphics.<br />
<br />
* '''Manual method'''<br />
Make sure you have installed drivers. Run in terminal:<br />
<br />
$ pacman -Q | grep -E "xf86-video-ati|xf86-video-intel"<br />
<br />
In case you get output similar to this:<br />
<br />
xf86-video-ati 6.14.1-1<br />
xf86-video-intel 2.15.0-2<br />
<br />
you're good to go. In other case install drivers:<br />
<br />
# pacman -S xf86-video-ati xf86-video-intel<br />
<br />
'''DO NOT''' reboot your computer! In most cases system '''will not boot''' with both drivers installed. Blacklist radeon module:<br />
<br />
# echo > /etc/modprobe.d/radeon.conf blacklist\ radeon<br />
<br />
This will prevent system from hanging during boot. vga_switcheroo works only with radeon module loaded. To load radeon automatically on system startup open {{ic|/etc/rc.local}} and add line:<br />
<br />
modprobe radeon<br />
<br />
optionally, you can turn off radeon right after system boot to save some battery energy and cool down your laptop. To do this, add following line to {{ic|/etc/rc.local}}:<br />
<br />
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch<br />
<br />
In order to be able to access vgaswitcheroo add this line to your fstab:<br />
<br />
none /sys/kernel/debug debugfs defaults 0 0<br />
<br />
<br />
{{Note|{{ic|KMS}} must be activated for both cards, otherwise there will be no vgaswitcheroo in /sys/kernel/debug/ }}<br />
<br />
* '''AUR method'''<br />
Get it from: [https://aur.archlinux.org/packages.php?ID=51704 hybrid-video-ati-intel AUR package]<br />
<br />
== See Also ==<br />
* [http://linux-hybrid-graphics.blogspot.com Linux Hybrid-Graphics Blog]<br />
* [http://hybrid-graphics-linux.tuxfamily.org/index.php Hybrid graphics on Linux Wiki]<br />
* [http://www.nvidia.com/object/optimus_technology.html Nvidia Optimus commercial presentation]<br />
* [http://www.amd.com/us/products/technologies/switchable-graphics/Pages/dynamic-switchable-graphics.aspx ATI commercial presentation]<br />
* [[Bumblebee]]</div>HariSeldon