Как использовать видеопамять?

У меня есть ПК, работающий на Arch Linux, и я регулярно сталкиваюсь с серьезной нехваткой видеопамяти во время игр. Мониторинг с помощью Mangohud показывает, что игровое приложение (или драйвер) не освобождает память от ненужных данных, что приводит к постоянному росту потребления памяти. Как только память заполняется, производительность значительно ухудшается, иногда вдвое или более. Эта проблема возникает во всех играх, которые я пробовал, независимо от используемой версии Proton, Proton-GE или Wine с различными версиями DXVK. Я также испытал все доступные версии ядра из официальных репозиториев. 

Проблема появилась два года назад, когда я установил Linux с видеокартой GT 650 на 1 ГБ, и тогда я думал, что причина в старом оборудовании и драйвере. Сейчас у меня RX580 на 4 ГБ, и проблема проявляется аналогично: потребление памяти растет, и при ее заполнении производительность падает. В некоторых играх это частично решается сменой локации, когда память очищается, однако вскоре она снова заполняется, и проблемы продолжаются. 

Я пробовал те же игры на Windows, где такая проблема не возникает: при нехватке памяти они начинают фризить, но производительность не падает вдвое. С момента замены видеокарты я переустанавливал систему (теперь у меня Endeavour OS вместо ванильного Arch), но поведение остается прежним. Это нормально для Linux? Я активно искал информацию об этом, но не нашёл никаких упоминаний. Может быть, существуют параметры ядра или настройки MESA, которые помогут решить эту проблему?
  • 3 ноября 2024 г. 6:12
Ответы на вопрос 2
Проблемы с видеопамятью на Linux, особенно в контексте игр, могут быть вызваны несколькими факторами. Вот несколько подходов и настроек, которые могут помочь вам:

### 1. Обновление драйверов
Убедитесь, что вы используете самые последние версии драйверов. Для AMD рекомендуется использовать драйверы `mesa` и `xf86-video-amdgpu`. Вы можете проверить версию драйвера с помощью следующих команд:
```bash
glxinfo | grep "OpenGL version"
```

### 2. Настройки MESA
Некоторые параметры MESA могут помочь оптимизировать использование видеопамяти:

- Проверьте, включен ли режим `TearFree`. Вы можете добавить следующий фрагмент в конфигурацию драйвера:
  ```bash
  Section "Device"
      Identifier "AMD"
      Driver "amdgpu"
      Option "TearFree" "true"
  EndSection
  ```
  
- Попробуйте установить уровень кэширования текстур, ограничивая использование видеопамяти. Например, вы можете установить переменную окружения перед запуском игры:
  ```bash
  MESA_GLSL_CACHE_DISABLE=1
  ```

### 3. Использование параметров ядра
Некоторые параметры ядра могут помочь в управлении памятью, например, `vm.swappiness`. Попробуйте изменить его для улучшения работы системы с памятью:
```bash
sudo sysctl vm.swappiness=10
```

### 4. Настройки Proton и DXVK
- Поскольку вы используете Proton, попробуйте переключаться между версиями Proton, чтобы проверить, влияет ли это на использование памяти.
- Таймеры и настройки DXVK могут оказать влияние на поведение видеопамяти. Попробуйте использовать переменные окружения:
  ```bash
  DXVK_ASYNC=1
  DXVK_HUD=devinfo
  ```

### 5. Мониторинг и очистка
Используйте утилиты вроде `glances` и `htop`, чтобы отслеживать использование ресурсов вашей системы в реальном времени. На практике вы можете попробовать освободить память вручную, переключаясь на другие виртуальные консоли (например, Ctrl + Alt + F2) и обратно.

### 6. Помощь сообществу
Существует активное сообщество пользователей Linux-игр. На форумах, таких как Reddit или GitHub, вы можете задать специфические вопросы о играх или драйверах, чтобы получить советы непосредственно от других пользователей.

### 7. Ошибки и баги
Убедитесь, что проблемы, с которыми вы сталкиваетесь, не являются известными ошибками. Вам стоит проверить GitHub репозиторий для DXVK или MESA на наличие открытых проблем, связанных с вашими играми.

### Заключение
Проблемы с видеопамятью на Linux могут быть сложными, и их решение может зависеть от конкретных настроек вашего оборудования и ПО. Эксперименты с различными настройками и активное участие в сообществе помогут вам найти решение вашей проблемы. Если ничего из перечисленного не помогает, возможно, стоит рассмотреть вопрос о переустановке с новой конфигурацией или обновлениям, если они доступны.
RX580 на 4гб

Ну, вообще-то эта видюха сама по себе геморройная.
Почти все пользователи после покупки сталкиваются с проблемами и я так полагаю вы купили китайский клон аналогичной нативной ASUS.

Я сыну купил 2 мес тому такую SOYO, но с заявленной 8 Гб.
По факту, аналогичная история.
Причины:
Перепрошитый китайцами БИОС с параметрами под 8 ГБ, а по факту всего 4 Гб, если снимем кулер и посчитаем кол-во чипов памяти и маркировки на них.
Но это не самое страшное.
А самое страшное то, что термо-паста, коей китайцы мажут камень и клеют термо-пластинки на чипы памяти под кулером, это с лужи взятая глина!
Лечится:
- некоторые делают андервольтинг, но спецы говорят, да это так и есть - это далеко не лучший и не эффективный вариант
- покупкой MX4 пасты и термо-пластин и их заменой на камне и чипах памяти, но надо замерять высоту пластин, на одних картах 1мм, на др. 0.5мм - а вот это рекомендуют почти все!!!

Заменяете это дело и радуетесь жизни.
Куча видосов в Инете, как это делается.
Похожие вопросы