---
title: Руководство по играм в CachyOS
description: 'Охватывает установку необходимых пакетов, игры в Steam с помощью Proton, различные версии Proton, Lutris как центральный хаб для всех игр и установщики-скрипты для популярных игр.'
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
ai_translated: true
---

import ImageComponent from '~/components/image-component.astro';
import MultipleImageComponent from '~/components/multiple-images-component.astro';
import { Tabs, TabItem, Steps, LinkButton, Icon } from '@astrojs/starlight/components';

Добро пожаловать в руководство по играм в CachyOS! Оно проведёт вас через всё, что вам нужно знать для настройки системы для игр.

*Прежде всего, поймите, что добиться двузначного прироста FPS не всегда возможно. Иногда оптимизации могут привести к незначительным улучшениям или вообще не дать эффекта, в зависимости от игры и конфигурации оборудования.*

*Не стоит ожидать, что программные оптимизации сработают как бесплатный апгрейд оборудования.*

<ImageComponent imgsrc={import('~/assets/images/gaming-meme.jpeg')} />

## Предварительные требования

:::caution
Прежде чем продолжить, убедитесь, что драйверы вашей видеокарты установлены и работают корректно, иначе вы можете столкнуться с проблемами при запуске игр.
:::

### Основные пакеты

Чтобы упростить настройку CachyOS для игр, все необходимые игровые пакеты сгруппированы в один мета-пакет, который включает все необходимые зависимости и библиотеки для игр в Linux, а также отдельный мета-пакет для популярных инструментов и магазинов/лаунчеров.

*Если вы обнаружите, что каких-либо пакетов не хватает, не стесняйтесь сообщить об этом команде CachyOS.*

Выполните следующие шаги, чтобы начать настройку для игр.
<Tabs>
  <TabItem label='CachyOS Hello'>
    - Откройте CachyOS Hello. Перейдите в **Apps/Tweaks** и нажмите на `Install Gaming packages`.
    <ImageComponent imgsrc={import('~/assets/images/cachyos_hello-gaming.png')} />
    *CachyOS Hello устанавливает и `cachyos-gaming-meta`, и `cachyos-gaming-applications`.*
  </TabItem>
  <TabItem label='Мета-пакет'>
    Мета-пакет `cachyos-gaming-meta` включает в себя множество библиотек, связанных с играми.
    ```sh
    sudo pacman -S cachyos-gaming-meta
    ```
  </TabItem>
  <TabItem label='Инструменты и магазины'>
    Мета-пакет `cachyos-gaming-applications` включает в себя следующее:
    - Инструменты
      - Gamescope, GOverlay, MangoHud
    - Лаунчеры
      - Steam, Heroic Games Launcher, Lutris, Faugus Launcher
    ```sh
    sudo pacman -S cachyos-gaming-applications
    ```
  </TabItem>
</Tabs>

## Proton-CachyOS

Proton-CachyOS основан на ветке Proton `bleeding-edge` и применяет к ней ряд модификаций.
- **Патчи Wine-staging**
- **Wine Fullscreen FSR**
- **Включает видео- и аудиокодеки для игровых заставок**
- **Поддержка umu-launcher, включая UMU-Protonfixes**
- **Добавляет ранние исправления/обходные пути для игр**

:::note[NTSync включён по умолчанию]
Вы можете отключить его, установив переменную окружения `PROTON_NO_NTSYNC=1`
:::

### Как правильно настроить несколько параметров запуска

Параметры запуска в Steam строятся по следующему шаблону.

```bash
[переменные окружения] [обертки] %command% [аргументы приложения]
```

- **`[переменные окружения]`**: Это опции в формате `ПЕРЕМЕННАЯ=значение`
  ```bash title="Примеры"
  PROTON_DXVK_D3D8=1
  # Или
  DXVK_HUD="fps,memory,version,api"
  ```

- **`[обертки]`**: Это приложения и скрипты, которые изменяют способ запуска реального приложения. Аргументы для обертки обычно идут после её исполняемого файла.
  ```bash title="Примеры"
  mangohud --dlsym
  # Или
  gamescope -W 1680 -H 1050 -w 1280 -h 720 -S fit -F fsr --mangoapp --
  ```

- **`%command%`**: Это реальное приложение. Это следует указывать именно так, и Steam заменит его на соответствующую команду при запуске приложения.

- **`[аргументы приложения]`**: Это различные аргументы для реального приложения, и они зависят от самого приложения.
  ```bash title="Пример"
  %command% -dx11
  ```

**Пример полной опции запуска, объединяющей все элементы:**
```bash
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 prime-run game-performance %command% -dx11
```

:::caution
Не добавляйте несколько `%command%`, используя их в качестве разделителей для нескольких опций запуска.

Пример: `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 %command% game-performance %command% prime-run %command%`

В этом случае всё, что идёт после первого `%command%`, будет проигнорировано, так как будет рассматриваться как аргументы игры, поэтому только `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1` будет распознана как опция запуска.
:::

#### Переменные окружения
:::note
Кастомные версии Proton имеют нестабильные параметры конфигурации по умолчанию. Для получения последней информации об их параметрах конфигурации обращайтесь к их документации.

Ссылки на документы Proton-CachyOS:

<LinkButton icon="external" href="https://github.com/CachyOS/proton-cachyos/blob/cachyos_main/README.md#proton-cachyos-config-options">Readme</LinkButton>
<LinkButton icon="external" href="https://github.com/CachyOS/proton-cachyos/blob/cachyos_main/CHANGELOG.md">Changelog</LinkButton>

Ссылки на документы Proton-EM:

<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-11-hdr/README.md">Readme</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/EM-ADDITIONS.md">EM-ADDITIONS</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/FSR4.md">FSR4</LinkButton>
<LinkButton icon="external" href="https://github.com/Etaash-mathamsetty/Proton/blob/em-10-hdrtest/docs/CHANGES.md">Winewayland</LinkButton>
:::

### Настройка Proton-CachyOS с Lutris и Heroic

Убедитесь, что в вашей системе установлен umu-launcher из CachyOS. Установите его следующей командой.
```sh
sudo pacman -S cachyos/umu-launcher
```

<Tabs>
  <TabItem label='Lutris Глобально'>
    <Steps>
      1. На главном экране Lutris нажмите на значок шестерёнки рядом с Wine.
      2. Перейдите на вкладку **Runner Options** и убедитесь, что ваши настройки соответствуют следующим:
          - **Wine version** = `proton-cachyos-slr` или `proton-cachyos-native`
          - **Use System winetricks** = *Отключено*
          - **Graphics**
          - **Enable DXVK** = `Enabled`
            - Примечание: Пользовательские версии **DXVK**, **VKD3D** и **DXVK-NVAPI** не применяются при использовании `umu-launcher`.
      3. Перейдите на вкладку **System Options**.
          - **Lutris**
          - **Disable Lutris Runtime** = `Enabled`
          - **Prefer system libraries** = `Enabled`
      4. Продолжайте прокручивать вниз до раздела **Game execution** и найдите таблицу **Environment variables**.
      5. Добавьте следующие переменные окружения:
          - **Key**: `PROTON_VERB` *опционально*
          - **Value**: `waitforexitandrun`
            - *Это позволяет protonfixes работать с соответствующим GAMEID.*
      6. Нажмите **Save**, чтобы применить изменения.
    </Steps>
  </TabItem>
  <TabItem label='Lutris Для игры'>
    <Steps>
      1. Щёлкните правой кнопкой мыши по игре, которую хотите настроить, затем нажмите **Configure**.
      2. Перейдите на вкладку **Runner Options** и убедитесь, что ваши настройки соответствуют следующим:
          - **Wine version** = `proton-cachyos-slr` или `proton-cachyos-native`
          - **Use System winetricks** = *Отключено*
          - **Graphics**
          - **Enable DXVK** = `Enabled`
            - Примечание: Пользовательские версии **DXVK**, **VKD3D** и **DXVK-NVAPI** не применяются при использовании `umu-launcher`.
      3. Перейдите на вкладку **System Options**.
          - **Lutris**
          - **Disable Lutris Runtime** = `Enabled`
          - **Prefer system libraries** = `Enabled`
      4. Продолжайте прокручивать вниз до раздела **Game execution** и найдите таблицу **Environment variables**.
      5. Добавьте следующие переменные окружения:
          - **Key**: `PROTON_VERB` *опционально*
          - **Value**: `waitforexitandrun`
            - *Это позволяет protonfixes работать с соответствующим GAMEID.*
      6. Нажмите **Save**, чтобы применить изменения.
    </Steps>
  </TabItem>
  <TabItem label='Heroic Games Launcher'>
    <Steps>
      1. Нажмите на кнопку `Configure` рядом с кнопкой `Play Now` у игры, которую вы хотите запустить.
      2. На вкладке `WINE` установите Wine Version на `Proton - proton-cachyos-slr`.
    </Steps>
  </TabItem>
</Tabs>

### Поддержка античитов

:::caution[Важно]
Если вы столкнулись с проблемами в играх, использующих **Easy Anti-Cheat** (EAC) или **BattlEye** (BE), например, отказ в подключении к игровым серверам, вы можете использовать версию [Proton-CachyOS, собранную с использованием Steam Linux Runtime](https://github.com/CachyOS/proton-cachyos/releases), также известную как **proton-cachyos-slr**.
:::

### Как установить proton-cachyos-slr

:::note[Этот шаг требуется только если пакет cachyos-gaming-meta не был установлен. Если он был установлен, пропустите эту часть.]
:::

<Tabs>

  <TabItem label='pacman'>
    ```sh title='Выполните следующую команду'
    sudo pacman -S proton-cachyos-slr
    ```
  </TabItem>

  <TabItem label='protonup'>

    <Steps>
      1. Откройте терминал и установите `protonup`.
          ```sh
          sudo pacman -S protonup-qt
          ```
      2. Откройте **protonup-qt** и следуйте скриншоту:
          <ImageComponent imgsrc={import('~/assets/images/steam-protonup.png')} />
          :::note
          Выберите версию `x86-64_v3`, если ваш процессор поддерживает **[AVX2](/ru/installation/installation_prepare#x86_64-microarchitecture-level-support)**.
          В противном случае загрузите версию, оканчивающуюся на `x86-64`.
          :::
      3. Перезапустите Steam, если он был у вас открыт.
    </Steps>
  </TabItem>

</Tabs>

<details>
  <summary>Ручная установка (для продвинутых)</summary>

  <Steps>
    1. Загрузите последнюю версию [здесь](https://github.com/CachyOS/proton-cachyos/releases) (прокрутите вниз до **Assets**).
        :::note
        Выберите версию, оканчивающуюся на `x86-64`. Это версия, которую предпочтут большинство пользователей.
        Выберите версию, оканчивающуюся на `x86-64_v3`, только если ваш процессор поддерживает **[AVX2](/ru/installation/installation_prepare#x86_64-microarchitecture-level-support)** и вы хотите поэкспериментировать.
        :::
    2. Распакуйте файл и переместите папку в `~/.steam/steam/compatibilitytools.d/`
    3. Перезапустите Steam, если он был у вас открыт.
  </Steps>

</details>

## Wine-CachyOS

Это тот же `Wine`, который лежит в основе `Proton-CachyOS`, но в виде отдельного пакета. Его можно использовать в Lutris, Heroic, Bottles и других программах. **Имейте в виду, что он не предназначен для использования в Steam.**

- **Все модификации Wine, включённые в Proton-CachyOS**
- **Добавляет ранние исправления/обходные пути для игр**

:::note
В репозиториях CachyOS **Wine-CachyOS** предлагается в двух разных пакетах. `wine-cachyos` устанавливает его как системный Wine по умолчанию и заменяет `wine` или `wine-staging`. `wine-cachyos-opt` устанавливает его в другое место, что позволяет нескольким версиям wine сосуществовать в системе.
:::

:::caution
**Wine-CachyOS** в первую очередь предназначен для **игр**. Хотя его можно использовать как системный Wine с десктопными приложениями, имейте в виду, что это может привести к неожиданному поведению и проблемам из-за модификаций, ориентированных на игры.

Если вы хотите использовать десктопные приложения, мы рекомендуем использовать `wine` или `wine-staging` в качестве системного Wine и установить `wine-cachyos-opt` для игр.
:::

**Дополнительные параметры конфигурации**

- `WINE_WMCLASS="[name]"`: Устанавливает `WM_CLASS` для всех окон Wine, позволяя оконному менеджеру управлять окнами Wine через правила.
- `WINEUSERSANDBOX=1`: Отключает создание символических ссылок из папок пользователя Wine (таких как Documents и Pictures) на аналогичные папки в каталоге `HOME` пользователя.
- `WINE_NO_WM_DECORATION=1`: Отключает декорации окон. Это может исправить проблемы с **полноэкранным режимом без рамок** и прокликиванием мыши сквозь окно.
- `WINE_PREFER_SDL_INPUT=1`: Обходной путь для проблем с определением контроллера

### Как использовать wine-cachyos-opt

<Tabs>
  <TabItem label='Автономно'>
    Обычно запуска `/opt/wine-cachyos/bin/wine` вместо просто `wine` должно быть достаточно для запуска приложения с использованием `wine-cachyos-opt`.

    Если требуется более строгая конфигурация, она может выглядеть так:
    ```sh
    export PATH="/opt/wine-cachyos/bin/:$PATH"
    export WINEDLLPATH="/opt/wine-cachyos/lib/wine:/opt/wine-cachyos/lib32/wine:$WINEDLLPATH"
    export LD_LIBRARY_PATH="/opt/wine-cachyos/lib/:/opt/wine-cachyos/lib32/:$LD_LIBRARY_PATH"
    ```

    Если вы хотите использовать `winetricks` с `wine-cachyos-opt`, вы можете вызвать его так:
    ```sh
    WINE=/opt/wine-cachyos/bin/wine WINEPREFIX=[ваш префикс] winetricks [verb]
    ```
  </TabItem>
  <TabItem label='Lutris'>
    :::note
    Второе изображение также применимо для настройки для каждой игры в отдельности.
    :::
    <MultipleImageComponent
      images={[import('~/assets/images/lutris-guide-1.png'), import('~/assets/images/lutris-guide-2.png')]}
    />
  </TabItem>
  <TabItem label='Heroic Games Launcher'>
    <MultipleImageComponent
      images={[import('~/assets/images/heroic-wine.png'), import('~/assets/images/heroic-wine-2.png'), import('~/assets/images/heroic-wine-3.png')]}
    />
  </TabItem>
</Tabs>

## Steam: FAQ и советы

:::note
Пользователям ноутбуков с дискретными GPU Nvidia следует обратиться к [руководству по ноутбукам с двумя GPU](/ru/configuration/dual_gpu/).
:::

:::tip
CachyOS предоставляет различные версии Proton, которые создаются и поддерживаются для дальнейшего улучшения производительности:
- `proton-cachyos` (включён в мета-пакет `cachyos-gaming-meta`) разработан с добавлением улучшений качества жизни, отобранных патчей и т.д.
:::

:::tip
Чтобы проверить, совместима ли игра с Linux или как она работает на Linux, посетите
**[ProtonDB](https://www.protondb.com/)**,
**[Are We Anti-Cheat Yet?](https://areweanticheatyet.com/)**
или **[раздел античитов на Gaming On Linux](https://www.gamingonlinux.com/anticheat/)**
:::

### Как установить кастомные версии Proton в Steam

:::caution[НАСТОЯТЕЛЬНО РЕКОМЕНДУЕТСЯ оставить Proton от Valve в качестве глобального значения по умолчанию.]
:::

- Чтобы установить кастомный Proton для конкретной игры, перейдите в Библиотеку, щёлкните правой кнопкой мыши по игре,
войдите в **Properties** > **Compatibility**

отметьте чекбокс `Force the use of a specific Steam Play compatibility tool`
и выберите желаемую версию Proton.

- Чтобы установить Proton от Valve в качестве глобального значения по умолчанию, перейдите в **Settings** > **Compatibility** > **Default Compatibility tool**
и установите последнюю стабильную версию Proton от Valve или Proton Experimental.

### Какую версию Proton следует использовать в Steam?

:::tip
Новым пользователям мы рекомендуем использовать Proton от Valve или Proton Experimental.
:::

Официальные версии Proton:

**Proton Experimental:** это самый свежий релиз от **Valve**. Используйте его, если игра, в которую вы хотите играть, относительно новая, плохо работает с текущей стабильной версией Proton или если люди рекомендуют его на **[ProtonDB](https://www.protondb.com/)**.

**Proton 11.0:** это стабильный релиз от **Valve**. Используйте его, если игра, в которую вы хотите играть, хорошо с ним работает.

**Proton 10.0 или ниже:** это стабильные релизы от **Valve**. *Используйте их, если игра, в которую вы хотите играть, работает только с предыдущей версией Proton.*

:::tip
Для более опытных пользователей, которые хотят поэкспериментировать с дополнительными функциями, использовать Proton вне Steam или нуждаются в исправлениях, отсутствующих в Proton от Valve, есть несколько кастомных версий Proton, которые они могут использовать. Имейте в виду, что они не поддерживаются Valve, это усилия сообщества и они экспериментальны по своей природе.
:::

Сторонние форки Proton:

**Proton-CachyOS:**
Создаётся и поддерживается [CachyOS](https://github.com/CachyOS/proton-cachyos), содержит дополнительные функции качества жизни, исправления и экспериментальные изменения.

В репозиториях CachyOS можно найти две версии: [`proton-cachyos-native`](https://packages.cachyos.org/package/cachyos/x86_64/proton-cachyos-native) и [`proton-cachyos-slr`](https://packages.cachyos.org/package/cachyos/x86_64/proton-cachyos-slr).

Мы рекомендуем использовать пакет `proton-cachyos-slr` вместо `proton-cachyos-native`.

**Proton-EM:**
Кастомная сборка, ориентированная на разработку, созданная [Etaash-mathamsetty](https://github.com/Etaash-mathamsetty/Proton). Это отличный вариант, если вы хотите использовать **winewayland** и **FSR4** без дополнительных функций Proton-CachyOS. Это также источник различных улучшений, которые включает Proton-CachyOS.

*Если вас интересует последнее и лучшее в разработке **winewayland**, это для вас.*

**dwproton:**
Кастомная сборка от [Dawn Winery](https://dawn.wine/dawn-winery/dwproton), это форк Proton-CachyOS с **дополнительными исправлениями и патчами для определённых аниме-игр**.

Если вы столкнулись с проблемами с такими играми с другими версиями Proton, **dwproton** — ваш лучший вариант.

**Proton-GE**:
Кастомная сборка от [GloriousEggroll](https://github.com/GloriousEggroll/proton-ge-custom). Включает различные исправления и может быть полезна в определённых ситуациях.

### Исправление неработающих видео H264 или отображения цветных полос в играх с Proton от Valve
:::caution
Это опционально. Используйте только если вы сталкиваетесь с этой проблемой.
:::
Запустите Steam следующей командой. Дождитесь загрузки, затем выйдите из Steam и запустите его как обычно.

```sh
steam steam://unlockh264/
```

### Исправление заиканий, вызванных функцией записи игр в Steam

:::caution
Добавление этой переменной окружения приводит к прекращению работы **оверлея Steam**.
:::

Добавьте следующую опцию запуска к вашей игре.

```sh
LD_PRELOAD="" %command%
```

### Сбор и отправка логов Proton

:::note
При отправке логов в CachyOS, пожалуйста, загружайте их на **[paste-cachyos](https://paste.cachyos.org/)** вместо того, чтобы постить напрямую.

Вы можете просто перетащить файл лога на сайт, а затем поделиться сгенерированной ссылкой.
:::

Чтобы включить логирование Proton для игры:

<Steps>
  1. Нажмите правой кнопкой мыши на игру в Steam и выберите **Properties**.
  2. В разделе **Launch Options** установите переменную окружения `PROTON_LOG`:
      ```sh
      PROTON_LOG=1 %command%
      ```
      Это создаст файл лога в вашем домашнем каталоге с именем `steam-[AppID].log` (например, Counter Strike 2 использует AppID **730**, поэтому файл будет называться `steam-730.log`).
</Steps>

<details>
  <summary>Пользовательский каталог для логов</summary>

  Чтобы установить пользовательский каталог для логов, используйте `PROTON_LOG_DIR`:

  ```sh title='Пример'
  PROTON_LOG=1 PROTON_LOG_DIR=/home/cachyos/steam-logs %command%
  ```
</details>

### Предварительное кэширование шейдеров с Proton-CachyOS, -GE и -EM

:::note
Рекомендуется отключать функцию предварительного кэширования шейдеров в Steam при использовании Proton-CachyOS, Proton-GE или Proton-EM. Они уже содержат все необходимые кодеки для воспроизведения видео в играх, а в наши дни относительно современная связка GPU-CPU должна быть более чем способна справиться с компиляцией шейдеров в игре.

Если у вас есть свободное время, вы можете проигнорировать этот совет и позволить Steam предварительно скомпилировать некоторые шейдеры для вашей игры.

**Имейте в виду, что не всё кэшируется во время этого процесса, и обновления версии Proton, использованной для компиляции шейдеров, могут потребовать полной перекомпиляции шейдеров.**
:::

#### Как отключить эту функцию в Steam

В Steam нажмите `Steam`->`Settings`, перейдите в `Downloads` и снимите галочки с этих настроек:
- **Allow background processing of Vulkan shaders**
- **Enable Shader Pre-caching**

:::note
Настоятельно рекомендуется [увеличить максимальный размер кэша шейдеров](#увеличить-максимальный-размер-кэша-шейдеров) после отключения предварительного кэширования шейдеров в Steam.
:::

### Повторное использование игрового раздела Windows NTFS

:::caution
Избегайте использования Proton на дисках с NTFS. Valve не поддерживает такую конфигурацию, и это может привести к непредсказуемому поведению игр.

Если вы готовы продолжить, следуйте их **[неофициальному руководству](https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows)**.
:::

### Запуск в сессии gamescope

Сессия Gamescope запускает ваш рабочий стол внутри gamescope, предоставляя специализированную полноэкранную игровую среду с улучшенной обработкой дисплея, управлением вводом и оптимизациями производительности.

Она идеально подходит для игровых систем или портативных устройств, предлагая опыт, похожий на консольный, при сохранении доступа к вашему рабочему столу при необходимости.

Для её использования установите пакет `gamescope-session-cachyos` (`pacman -S gamescope-session-cachyos`) и установите сессию gamescope в качестве сессии по умолчанию.

## [Lutris](https://lutris.net/)

Lutris — это игровой лаунчер в CachyOS. С помощью Lutris вы можете легко управлять своими игровыми ранерами, включая Wine, Proton и эмуляторы.

- Запускайте игры через Lutris, просто нажимая кнопку **Play**.
- Добавляйте любую игру, нажав на **+** в верхнем левом углу.
- Настройте магазин в разделе Sources на левой панели и подключите свой аккаунт. После этого он установит указанный магазин, и вы сможете запускать игры из него, как на Windows.
- И многое другое!

*Игровые магазины, поддерживаемые в Lutris:*

- [EA App](https://lutris.net/games/ea-app/)
- [Epic Games Store](https://lutris.net/games/epic-games-store/)
- [GOG Galaxy](https://lutris.net/games/gog-galaxy/)
- [Steam](https://lutris.net/games/steam/)
- [Ubisoft Connect](https://lutris.net/games/ubisoft-connect/)

### Как правильно установить несколько опций запуска и переменных окружения в Lutris

- Опции запуска, такие как `-dx11` или `-fullscreen`, следует добавлять в поле **Arguments** на вкладке **Game options**, разделяя их пробелом.
- Обёртки команд, например `mangohud --dlsym` или `game-performance`, следует добавлять в поле **Command prefix** на вкладке **System options**, разделяя их пробелом.
- Переменные окружения, такие как `DXVK_HDR=1`, следует добавлять в таблицу **Environment variables** на вкладке **System options**, используя кнопку `+` для добавления новой записи.
:::note
Не включайте `=` в поле Key. Оно должно содержать только имя переменной.
:::

### Как правильно генерировать логи в Lutris
- Установите Output debugging info в значение `Inherit from environment`.
- В Environment variables добавьте `PROTON_LOG` со значением `1`.


## Советы по производительности и прочее

### Не совмещайте gamemode и ananicy-cpp

Из-за того, что `gamemode` и `ananicy-cpp` оба пытаются одновременно изменить приоритет процесса (niceness), это может привести к конфликтам и неожиданному поведению. Если вы хотите использовать gamemode, рекомендуется сначала отключить или остановить ananicy-cpp.

Чтобы остановить ananicy-cpp, выполните следующую команду:

```sh
systemctl stop ananicy-cpp
```

### Переключение профиля питания по требованию

:::note
Это поведение немного отличается с `intel_pstate`. На Intel регулятор остаётся в режиме powersave, но значения EPP/EPB настраиваются для производительности.
:::

:::caution[game-performance может не дать никакого преимущества на старых процессорах.]
:::

CachyOS включает в себя скрипт-обёртку [game-performance](https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/bin/game-performance),
который использует `power-profiles-daemon` для временного переключения профиля питания на `performance`.
Этот профиль повышает уровни энергопотребления системы и устанавливает регулятор ЦП на `performance`, а также переключает любой активный планировщик scx на его игровой профиль (если доступен).

При использовании для запуска игры система остаётся в **режиме производительности** до тех пор, пока игра не закроется, после чего восстанавливается предыдущий профиль.

[GameMode от Feral](https://github.com/FeralInteractive/gamemode)
предлагает аналогичную функциональность.

### Как добавить game-performance в Steam, Lutris и Heroic Games Launcher

<Tabs>

  <TabItem label='Steam'>

    <Steps>
        1. Откройте вашу `Библиотеку Steam`.
        2. Щёлкните правой кнопкой мыши по названию игры и выберите `Properties`.
        3. На вкладке `General` вы найдёте раздел `Launch Options`.
        4. Добавьте следующую опцию запуска:
            ```sh
            game-performance %command%
            ```
    </Steps>

  </TabItem>

  <TabItem label='Heroic Games Launcher'>

    <Steps>
        1. На левой панели откройте `Settings`.
        2. Перейдите в `Game defaults`, затем нажмите `Advanced`.
        3. В разделе команды `wrapper`. Добавьте следующую строку без аргументов:
            ```sh
            game-performance
            ```
        4. Нажмите на знак `+`, чтобы сохранить изменения.
    </Steps>

  </TabItem>

  <TabItem label='Lutris'>

    <Steps>
      1. В правом верхнем углу откройте `гамбургер-меню`.
      2. Перейдите в `Preferences/Global options`.
      3. Включите `Advanced Mode` в правом верхнем углу.
      4. Прокрутите вниз до `Command prefix` и добавьте следующую строку:
          ```sh
          game-performance
          ```
      5. Сохраните изменения.
    </Steps>

  </TabItem>

</Tabs>

### Увеличить максимальный размер кэша шейдеров

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

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

Чтобы избежать длительных загрузок и заиканий, мы можем увеличить глобальный размер кэша шейдеров:

<Steps>

  1. Откройте терминал.
  2. Создайте каталог `environment.d` в вашей папке с конфигурациями, если он ещё не существует:
      ```sh
      mkdir -p ~/.config/environment.d
      ```
  3. Создайте новый файл конфигурации:
      ```sh
      touch ~/.config/environment.d/gaming.conf
      ```
  4. Откройте файл с помощью **Micro** (текстовый редактор).
      ```sh
      micro ~/.config/environment.d/gaming.conf
      ```
      И вставьте следующее содержимое в зависимости от производителя вашей видеокарты:
      <details>
        <summary>AMD</summary>
        ```sh
        # Увеличить размер кэша шейдеров AMD до 12 ГБ
        MESA_SHADER_CACHE_MAX_SIZE=12G
        ```
      </details>
      <details>
        <summary>NVIDIA</summary>
        ```sh
        # Увеличить размер кэша шейдеров Nvidia до 12 ГБ
        __GL_SHADER_DISK_CACHE_SIZE=12000000000
        ```
      </details>
  5. Сохраните файл, нажав `CTRL+S`, и выйдите из Micro, нажав `CTRL+Q`. Перезагрузите систему.

</Steps>

После перезагрузки максимальный размер кэша шейдеров должен быть постоянно увеличен. Спасибо [shader-booster от psygreg](https://github.com/psygreg/shader-booster/) за помощь с этим руководством.

### Принудительное использование новейшего пресета DLSS

#### Как добавить dlss-swapper в Steam, Lutris и Heroic Games Launcher

<Tabs>

  <TabItem label='Steam'>

    <Steps>
      1. Откройте вашу `Библиотеку Steam`.
      2. Щёлкните правой кнопкой мыши по названию игры и выберите `Properties`.
      3. На вкладке `General` вы найдёте раздел `Launch Options`.
      4. Добавьте следующую опцию запуска:
          ```sh
          dlss-swapper %command%
          ```
    </Steps>

  </TabItem>

  <TabItem label='Heroic Games Launcher'>

    <Steps>
      1. На левой панели откройте `Settings`.
      2. Перейдите в `Game defaults`, затем нажмите `Advanced`.
      3. В разделе команды `wrapper`. Добавьте следующую строку без аргументов:
          ```sh
          dlss-swapper
          ```
      4. Нажмите на знак `+`, чтобы сохранить изменения.
    </Steps>

  </TabItem>

  <TabItem label='Lutris'>

    <Steps>
      1. В правом верхнем углу откройте `гамбургер-меню`.
      2. Перейдите в `Preferences/Global options`.
      3. Включите `Advanced Mode` в правом верхнем углу.
      4. Прокрутите вниз до `Command prefix` и добавьте следующую строку:
          ```sh
          dlss-swapper
          ```
      5. Сохраните изменения.
    </Steps>

  </TabItem>

</Tabs>

<details>
  <summary>Метод ручной замены DLL</summary>

  Если `dlss-swapper` не работает или вызывает проблемы, попробуйте обновить реализацию DLSS в игре вручную, заменив `nvngx_dlss.dll` на актуальную версию и используя вместо этого скрипт-обёртку `dlss-swapper-dll`.
</details>

### Поддержка трассировки лучей
Arch Wiki уже предоставляет исчерпывающие инструкции о том, как включить [трассировку лучей](https://wiki.archlinux.org/title/Hardware_raytracing) для различных аппаратных платформ.
- [Трассировка лучей на Nvidia](https://wiki.archlinux.org/title/Hardware_raytracing#NVIDIA)
- [Трассировка лучей на AMD](https://wiki.archlinux.org/title/Hardware_raytracing#AMD)
- [Трассировка лучей на Intel](https://wiki.archlinux.org/title/Hardware_raytracing#Intel)

### Падение производительности на Nvidia в играх DirectX12

Некоторые пользователи сообщают, что проблема связана с тем, как драйверы Nvidia для Linux обрабатывают планирование GPU — в отличие от Windows, где обеспечивается правильное планирование. Официального заявления от Nvidia по этому поводу пока не было. В настоящее время известного решения этой проблемы нет. Nvidia предположительно работает над исправлением, но неясно, когда оно будет выпущено.

**Это никак не связано с CachyOS.**

В некоторых играх падение производительности менее заметно, чем в других. Посмотрите это [видео со сравнением производительности](https://www.youtube.com/watch?v=SU2mFqCOh5A) для справки.

Следите за [темой на форуме Nvidia](https://forums.developer.nvidia.com/t/directx12-performance-is-terrible-on-linux/303207/488), чтобы узнать больше об этой проблеме.
