loader: add gpu selection code via DRI_PRIME.
authorAxel Davy <axel.davy@ens.fr>
Sun, 8 Jun 2014 23:42:15 +0000 (19:42 -0400)
committerDave Airlie <airlied@gmail.com>
Tue, 1 Jul 2014 03:07:30 +0000 (13:07 +1000)
commit7ab925a6aafca106e7682dfc21e7c9351380809e
tree01e2e62886c3612222af0bf53a546f5748537922
parentda3a47d6824b63621a7d865112558a6e8026688b
loader: add gpu selection code via DRI_PRIME.

v2: Fix the leak of device_name
v3: Rebased

It enables to use the DRI_PRIME env var to specify
which gpu to use.
Two syntax are supported:
If DRI_PRIME is 1 it means: take any other gpu than the default one.
If DRI_PRIME is the ID_PATH_TAG of a device: choose this device if
possible.

The ID_PATH_TAG is a tag filled by udev.
You can check it with 'udevadm info' on the device node.
For example it can be "pci-0000_01_00_0".

Render-nodes need to be enabled to choose another gpu,
and they need to have the ID_PATH_TAG advertised.
It is possible for not very recent udev that the tag
is not advertised for render-nodes, then
ones need to add a file containing:

SUBSYSTEM=="drm", IMPORT{builtin}="path_id"

in /etc/udev/rules.d/

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/loader/loader.c
src/loader/loader.h