---
title: Руководство по настройке двух видеокарт
ai_translated: true
---

import ImageComponent from '~/components/image-component.astro';

## Что такое гибридная графика?

Гибридная графика — это аппаратная конфигурация, в которой две видеокарты
могут работать совместно. Такой подход в основном встречается в
ноутбуках, где у вас есть встроенная графика (iGPU) вашего процессора и дискретная
графика (dGPU).

Основное преимущество в том, что встроенная графика должна (но не обязательно) использоваться только для
нетребовательных задач, таких как сёрфинг в интернете, просмотр видео и т.д.
С другой стороны, дискретная графика используется для высокопроизводительных
задач, таких как игры, видеомонтаж, 3D-моделирование и так далее.

Следовательно, если две видеокарты разделяют «большие» и «маленькие» задачи, то, если у нас в данный момент
выполняются только «маленькие» задачи, нам не нужно использовать нашу dGPU, и её можно
просто отключить (как бы усыпить), тем самым значительно снижая энергопотребление.
Таким образом, когда наша dGPU снова понадобится (мы запускаем приложение, использующее её),
она проснётся и начнёт работать.

## Что такое PRIME Offload?

PRIME — это унифицированная технология для работы с различными наборами гибридной
графики в Linux, такими как NVIDIA Optimus/AMD Dynamic Switchable Graphics. PRIME
Offload — это реализация идеи переноса выполнения рендеринга с
одной видеокарты на другую в Linux.

Поддержка PRIME в закрытом драйвере NVIDIA фактически началась только с драйвера 435.17.
Так что, если вы пользуетесь устаревшими ветками драйверов 390xx или даже 340xx,
PRIME Offload у вас работать не будет. Отметим также, что мы
настоятельно не рекомендуем использовать устаревшие способы работы с гибридной графикой,
такие как nvidia-xrun или Bumblebee. Они устарели и не поддерживаются (Bumblebee
не обновлялся более 8 лет), работают исключительно на «костылях» и имеют низкую
производительность. В то же время драйвер Nouveau поддерживает PRIME Offload, что
может быть альтернативой для старых dGPU.

В CachyOS **вам не нужно ничего настраивать, чтобы PRIME Offload заработал**.
С пакетом nvidia-utils и cachyos-settings у вас уже есть всё
необходимое для использования PRIME Offload.

Также, пожалуйста, избегайте использования инструментов вроде optimus-manager. Они могут показаться вам довольно удобными,
но, поверьте, они могут вызвать множество проблем, и они вам действительно не
нужны, если ваша dGPU поддерживает PRIME Offload и динамическое управление питанием.

### Как использовать PRIME Offload

Чтобы указать PRIME, что вы хотите использовать дискретную графику вместо встроенной,
необходимо указать несколько переменных окружения перед запуском
программы:

```bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <программа>
```

Этот набор переменных выглядит очень громоздким, и его легко забыть, поэтому вы можете
установить пакет `nvidia-prime` (`sudo pacman -S nvidia-prime`), который
содержит скрипт-псевдоним для всех этих переменных. Тогда запуск приложения
с его использованием будет выглядеть так:

```bash
prime-run <программа>
```

Где `<программа>` — это имя команды, запускающей ваше приложение.

:::note
Некоторые игры на DX12 испытывают трудности с выбором dGPU даже с `prime-run`.
Чтобы обойти это, добавьте переменную окружения `VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json`
перед скриптом-обёрткой `prime-run`.
:::

Для конфигураций, где обе видеокарты управляются открытыми драйверами Mesa
(например, AMD+AMD, AMD+Intel или даже Intel+NVIDIA, где дискретная графика NVIDIA
управляется открытым драйвером Nouveau), ничего настраивать не нужно, и
для использования дискретной графики вам нужно всего лишь указать переменную окружения `DRI_PRIME=1`
перед запуском приложений или игр, аналогично всем
переменным, описанным ранее для NVIDIA, или использовать готовые графические методы,
о которых пойдёт речь ниже.

## Графический способ

Вам может показаться неудобным запускать все нужные приложения через терминал с помощью `prime-run`.
К счастью, некоторые приложения и среды рабочего стола предоставляют инструменты для управления тем, какая видеокарта используется для конкретных приложений.

### Lutris

Чтобы настроить запуск игр с дискретной графикой в Lutris, вам нужно зайти в
настройки (три полоски в правом нижнем углу окна и кнопка
"Preferences"). Далее перейдите в *"Global Options"* -> *"Display"*. Здесь вы можете выбрать видеокарту, на которой будет запускаться игра.

<br />
<ImageComponent imgsrc={import('~/assets/images/lutris-prime.png')} />

### Steam

В Steam нет специальной настройки для принудительного использования дискретной графики игрой. Однако вы можете получить доступ к свойствам игры, нажав на значок шестерёнки перед её запуском. В поле "Параметры запуска" вы можете добавить команду prime-run или переменные окружения.
Пример:

```bash
prime-run %command%
```

Обязательно добавьте `%command%` после `prime-run`. Помните, что параметры игры идут после этого плейсхолдера,
в то время как системные переменные окружения или команды должны ему предшествовать.

Чтобы вместо этого запустить игру на встроенной графике, используйте следующий параметр запуска — в качестве примера для встроенной графики Radeon. Это может быть желательно для увеличения времени автономной работы и снижения шума вентиляторов при запуске менее требовательных игр.

```bash
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json %command%
```

<br />
<ImageComponent imgsrc={import('~/assets/images/steam-prime.png')} />

### KDE Plasma

В Plasma есть очень удобный способ настройки запуска приложений с дискретной
графикой. Однако этот метод работает только в том случае, если в вашей системе установлен пакет switcheroo-control и соответствующий ему сервис.

При свежей установке CachyOS этот пакет и сервис уже должны быть
включены по умолчанию через chwd.

```bash
sudo pacman -S switcheroo-control
sudo systemctl enable --now switcheroo-control
```

После выполнения обеих команд, щёлкните правой кнопкой мыши по ярлыку приложения на рабочем столе или в
меню приложений, затем перейдите в *"Свойства"* -> *"Приложение"* -> *"Дополнительные параметры"*.

У вас должна быть отмечена галочка *"Запускать с использованием дискретной видеокарты"*.

<br />
<ImageComponent imgsrc={import('~/assets/images/plasma-prime.jpg')} />

:::note
Использование switcheroo-control позволяет этим галочкам работать на всех конфигурациях PRIME,
даже тех, у которых нет dGPU от NVIDIA, например, AMD-APU+дискретная AMD.
:::

### GNOME

В GNOME вам также следует установить switcheroo-control, как показано выше, и
щёлкнуть правой кнопкой мыши по значку приложения и выбрать *"Запускать с использованием дискретной видеокарты"*.
Но учтите, что GNOME не запоминает этот выбор на будущее, и в следующий раз, когда вы
запустите приложение со значка, оно запустится с использованием встроенной графики, а не дискретной.

### Cinnamon

Как и Plasma, Cinnamon также позволяет вам выбирать видеокарту для конкретных приложений. Щёлкните правой кнопкой мыши по ярлыку приложения на рабочем столе, перейдите в «Свойства» и включите соответствующую опцию.

<br />
<ImageComponent imgsrc={import('~/assets/images/cinnamon-prime.png')} />

Если она недоступна, убедитесь, что у вас установлен `switcheroo-control` и
его сервис включён, поскольку все среды рабочего стола полагаются на него для этой
функциональности.
