mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-05 13:05:59 +01:00
Multi-GPU: Rewrite documentation to set WLR_DRM_DEVICES (#552)
Initial rewrite of multi GPU setup as raised here. https://github.com/hyprwm/hyprland-wiki/issues/551
This commit is contained in:
parent
019d29e32b
commit
2200f59f8d
1 changed files with 29 additions and 13 deletions
|
@ -37,13 +37,16 @@ lrwxrwxrwx 1 root root 8 Jul 14 15:45 pci-0000:06:00.0-card -> ../card1
|
|||
lrwxrwxrwx 1 root root 13 Jul 14 15:45 pci-0000:06:00.0-render -> ../renderD129
|
||||
```
|
||||
|
||||
So from the above outputs, we can match the bus IDs and determine that NVIDIA is
|
||||
`card0` and AMD is `card1`.
|
||||
So from the above outputs, we can see that the path for the AMD card is
|
||||
`pci-0000:06:00.0-card`, due to the matching `06:00.0` from the first command.
|
||||
Do not use the `card1` symlink indicated here. It is dynamically assigned at
|
||||
boot and is subject to frequent change, making it unsuitable as a marker for GPU selection.
|
||||
|
||||
## Telling Hyprland which GPU to use
|
||||
|
||||
After determining which "card" belongs to which GPU, we now have to tell
|
||||
Hyprland the GPU we want to use primarily.
|
||||
This is done by setting the `WLR_DRM_DEVICES` environment variable.
|
||||
|
||||
{{< callout type=info >}}
|
||||
|
||||
|
@ -55,23 +58,36 @@ with a lower and higher power rating GPUs respectively.
|
|||
|
||||
{{< /callout >}}
|
||||
|
||||
We can do so by using the `WLR_DRM_DEVICES` variable.
|
||||
If you wish to use the integrated GPU to run Hyprland, no further action is
|
||||
required. wlroots will set `WLR_DRM_DEVICES` to the integrated GPU by default.
|
||||
|
||||
Add the following template to `hyprland.conf`
|
||||
If instead you would like to use another GPU, you must first create a symlink to
|
||||
the card from the previous section.
|
||||
|
||||
```ini
|
||||
env = WLR_DRM_DEVICES,/dev/dri/cardN
|
||||
```
|
||||
ln -sf /dev/dri/pci-0000:06:00.0-card ~/.config/hypr/card
|
||||
```
|
||||
|
||||
For our case, we want to use `card1` primarily and use it to render stuff.
|
||||
It is not possible to directly use the `/dev/dri/pci-0000:06:00.0-card` path,
|
||||
as wlroots interprets the colon symbols in the path as separators. Escaping
|
||||
characters will not rectify this.
|
||||
|
||||
Afterwards, you must set the `WLR_DRM_DEVICES` environment variable in
|
||||
hyprland.conf to this linked card.
|
||||
|
||||
```ini
|
||||
env = WLR_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0
|
||||
env = WLR_DRM_DEVICES,~/.config/hypr/card
|
||||
```
|
||||
|
||||
Here, we tell Hyprland to set priorities. If `card1` isn't available for
|
||||
whatever reason, use `card0`. So if the AMD GPU isn't available, use NVIDIA. The
|
||||
colon is for setting priorities, essentially.
|
||||
If you want to set a sequence of fallback cards, symlink another card and set
|
||||
the var as a colon separated list in order of priority.
|
||||
|
||||
You should now be able to use an integrated GPU for for lighter GPU loads,
|
||||
including Hyprland.
|
||||
```ini
|
||||
env = WLR_DRM_DEVICES,~/.config/hypr/card:~/.config/hypr/otherCard
|
||||
```
|
||||
|
||||
Here, we tell Hyprland to set priorities. If `card` isn't available for
|
||||
whatever reason, use `otherCard`. So if the AMD GPU isn't available, use NVIDIA.
|
||||
|
||||
You should now be able to use an integrated GPU for lighter GPU loads,
|
||||
including Hyprland, or default to your dGPU if you prefer.
|
||||
|
|
Loading…
Reference in a new issue