Commit 9b75440a authored by imirkin's avatar imirkin Committed by nouveau
Browse files

explain how to use outputs on discrete gpu

parent a8610716
......@@ -27,7 +27,7 @@ In all other cases, you are stuck with what happens to work by default. No switc
## Using Optimus/Prime
'PRIME GPU offloading' is an attempt to support muxless hybrid graphics in the Linux kernel. It requires:
'PRIME GPU offloading' and 'Reverse PRIME' is an attempt to support muxless hybrid graphics in the Linux kernel. It requires:
* An updated graphic stack (Kernel, xserver and mesa);
* KMS drivers for both GPUs loaded;
......@@ -40,6 +40,8 @@ If everything went well, *xrandr --listproviders* should list two providers. In
Provider 0: id: 0x8a cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel
Provider 1: id: 0x66 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 5 associated providers: 1 name:nouveau
### Offloading 3D
It is then important to tell Prime what card should be used for offloading. In my case, I would like to use Nouveau for offloading the Intel card:
$ xrandr --setprovideroffloadsink nouveau Intel
......@@ -52,9 +54,21 @@ the "regular" GPU, set DRI_PRIME to 0 or omit it. The behaviour can be seen in t
$ DRI_PRIME=1 glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: nouveau
### Using outputs on discrete GPU
If the second GPU has outputs that aren't accessible by the primary GPU, you can use "Reverse PRIME" to make use of them. This will involve using the primary GPU to render the images, and then pass them off to the secondary GPU. In the scenario above, you would do
$ xrandr --setprovideroutputsource nouveau Intel
When this is done, the nvidia card's outputs should be available in xrandr, and you could do something like
$ xrandr --output HDMI-1 --auto --above LVDS1
in order to add a second screen that is hosted by the nvidia card.
### Power management
When an application is using 'PRIME GPU offloading', both the discrete and the integrated GPUs are active and aside from optimizations at the driver level, nothing else can be done. However, when no application is making use of the discrete GPU, the default behaviour should be for the card to automatically power down entirely after 5 seconds.
When an application is using 'PRIME GPU offloading', both the discrete and the integrated GPUs are active and aside from optimizations at the driver level, nothing else can be done. However, when no application is making use of the discrete GPU, the default behaviour should be for the card to automatically power down entirely after 5 seconds. Note that using an output on the discrete GPU will force it to stay on.
This dynamic power management feature has been added in Linux 3.12 but requires Linux 3.13 to work properly with Nouveau. If you cannot make use of this feature and do not mind not using your NVIDIA GPU, it is recommended to blacklist the 'nouveau' module and to use bbswitch to turn off the NVIDIA GPU. Look onto your distribution's wiki for more information.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment