LINUX.ORG.RU

Особенности гейминга под Linux

 , , ,


10

3

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

Общее для всех целевых ОС

Большинство пользователей и разработчиков игр не понимают, что и как надо сделать для получения удобного времяпрепровождения в играх. А по линуксу информации мало, есть куча мифов и заблуждений. Поэтому сначала независимая от ОС основа.

Режим вывода картинки

Первое, что надо получить от каждой игры - подходящий под ситуацию режим отображения картинки. Их можно разбить на 4 основных варианта:

  • VSync (без VRR)
  • VRR (VSync или Mailbox)
  • Mailbox
  • Без синхронизации

VSync (без VRR)

Частота в игре синхронизируется с частотой монитора. Нет разрыва картинок, кадры идут равномерно и промежуток между кадрами в игре совпадает с промежутком между их выводом. Только вот 60-Гц монитор не может выводить 55 fps, и вместо этого будут переключения между 30 fps и 60. Плюс к этому игре придется держать очередь кадров, из-за чего получишь пару кадров задержки. Этот метод используют обычно тогда, когда не знают как сделать лучше или задержка не имеет значения (пошаговые стратегии).

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

VSync (с VRR)

Тут уже не игра подстраивается под частоту монитора, а монитор под частоту игры. Пропадает связанная с VSync задержка и всё отлично работает в рабочем диапазоне VRR. Оптимальный вариант для большинства случаев. В соревновательных играх на железе fps порой может быть в разы выше частоты монитора, там стоит присмотреться к Mailbox.

Беда с VRR в том, что он работает только при fps в пределах частоты монитора, из-за чего в игре надо ограничить fps на пару % ниже герцовки экрана. И ограничить надо именно лимитером в игре, так как внешние приводят к аналогичной обычному vsync задержке. Часто в игре нет лимитера или настройки ограничены фиксированными частотами, типа 30/60/120. Если 120 fps на 144Hz мониторе - незначительный компромисс, то на 60 Hz остаётся использовать mailbox вместе с vrr. Результат будет как у обычного mailbox, но vrr избавит от проблем при просадках fps-а (порой даже лучше будет). Сейчас в играх начинают добавлять опцию reflex и antilag, которая должна сама позаботиться об ограничении fps.

Также в зависимости от монитора и характера колебаний fps-а в игре может проявляться мерцание на тёмных участках изображения, особенно сильно от этого страдают текущие OLED-ы.

В играх, где взаимодействие идет больше через интерфейс и перемещение мышки VRR может оказаться нежелателен сам по себе, так как в некоторых играх перемещение курсора не привязано к fps в игре, а зависит только от частоты монитора. VRR же тормоза игры придаст и ему.

  • Плюсы: лучший вариант в большинстве случаев.
  • Минусы: требуется настройка и в игре не всегда есть необходимые для этого инструменты. Могут быть проблемы на отдельной комбинации конфигурации и игр.

Mailbox

Когда приходит время выводить кадр на экран, монитор получает последний полностью готовый кадр. Нет разрывов картинки, фпс не надо ограничивать, но промежуток между выводом картинки может отличаться от игрового. Если монитор с низкой герцовкой, да еще и нет кратного запаса по fps в игре, то картинка будет дерганая и появится ощутимая задержка. Под виндой этот метод известен как fast sync на nvidia и enhanced sync на амд. Под вейлендом так игры выводят картинку по умолчанию, если не включено разрешение тиринга.

Стоит использовать, когда есть проблемы с VRR или когда у тебя какая-нибудь соревновательная игрушка с x2-x4 fps-ом относительно частоты монитора.

  • Плюсы: всегда доступен в вейленде, хорошо работает при высоком фпс в игре.
  • Минусы: проблемы с таймингами кадров и задержкой, когда мало фпсов и низкая герцовка монитора.

Без синхронизации

Доп. задержки нет, есть тиринг. Использовать имеет смысл либо когда все остальные варианты не подходят и это единственный способ хоть как-то играть. Либо когда у тебя 240 Гц+ монитор и фпс в играх так же исчисляется сотнями.

Разгрузка GPU

У рендеринга в играх есть особенность, что при упоре в gpu появляется очередь отрисовки. Которая может приводить к разной, порой огромной задержке. Какой-нибудь ведьмак в 55 fps с упором в соточку будет играться в разы хуже, чем с ограничением в 50 fps лимитером там же. Лимитер должен быть внутри игры, внешние дают эффект vsync-а. Упор в cpu такой проблемы не создаёт.

Тут аналогично ситуации с VRR. Не всегда есть адекватный лимитер в игре, также эту задачу довольно неплохо решает nvidia reflex и amd antilag (когда они есть).

Генерация кадров

Добавляют существенную задержку относительно реального fps и нагружает видюшку, из-за чего реальный fps в GPU-bound сценариях падает еще ниже. Использовать имеет смысл в нишевых случаях, хорошо подходит для CPU-bound игр и где не важна задержка, типа flight/train simulator.

Nvidia Reflex / AMD Antilag

По сути, как динамический фреймлимитер. Который не даёт игре выйти за пределы vrr при vsync-е и нагружать видюшку по полной. Порой эффект похуже, чем от ручной установки оптимального лимита по фпс, но удобнее и эти технологии могут быть в играх, где разработчики не предоставили возможность ограничить фпс.

ReBAR

Resizable BAR - технология, которая уменьшает издержки на передачу ресурсов в память видюшки. Эффект часто незначительный, но стоит включить в настройках UEFI. В редких случаях может негативно влиять на fps.

Вывод

  • По возможности надо ограничивать частоту кадров игровым лимитером для разгрузки GPU или рефлексом/антилагом, а также для работы VRR. При любом способе вывода изображения.
  • Если в игре x2-x4 от частоты монитора, то лучшим вариантом будет Mailbox.
  • Если нет, то надо смотреть в сторону VRR + VSync при наличии игрового лимитера и VRR + Mailbox без него.
  • Если всё печально, то стоит попробовать просто режим Mailbox, как меньшее зло.
  • Если всё еще печальнее и у тебя 20 фпс шутан на мышке на 60 Гц мониторе, то, возможно, играть получится только без синхронизации и разрывов.
  • По возможности стоит включить ReBAR.

Особенности Linux

DLSS, FSR и другие апскейлеры

Всё есть, всё работает, всё как под виндой, но есть особенности с подменой FSR в играх.

В играх с FSR4 часто можно включить поддержку FSR4 через подкидывание библиотек в папку с игрой. Как и в винде это работает, но можно просто запустить игру с PROTON_FSR4_UPGRADE=1 при использовании свежих версий Proton GE

Если игра dx11 или dx12 (в вулканом пока не работает) и там есть DLSS или XeSS, то можно подкинуть любую версию FSR через Optiscaler. Всё как под винду, только файл setup там под линукс и нужен свежий протон, актуальный гайд по установке под линукс: https://github.com/optiscaler/OptiScaler/wiki/FSR4-Compatibility-List

Low Latency Layer (Антилаг, Reflex)

Работает как и под Windows, но есть удобная поддержка Anti-lag/Reflex без привязки к GPU: https://github.com/Korthos-Software/low_latency_layer

Эта штука позволяет включить в игре antilag или рефлекс на любой карточке. Что особенно полезно для владельцев amd/intel, так как поддержка рефлекса встречается почти в каждой современной игре.

Чтобы не заморачиваться с внедрением этого слоя вручную, проще использовать протон от cachyos: https://github.com/CachyOS/proton-cachyos

Wayland

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

По умолчанию картинка в играх рисуется как Mailbox, в свежих DE можно в настройках включить тиринг (в kde с 6.5.0 в настройках экрана можно разрешить для развернутых на весь экран окон). Включать тиринг имеет смысл в одном случае - если целенаправленно хочешь выводить картинку в играх в режиме без синхронизации, а не Mailbox или VSync. Просто так включать этот режим плохая идея, так как тиринг в играх нужен редко, а вот Mailbox режима в настройках игр практически никогда нет (и это головная боль в dx12 играх под виндой).

  • Sync - Включил в игре и он есть, выключил и у тебя либо mailbox, либо тиринг, в зависимости от настроек.
  • VRR - Аналогично, никаких дополнительных особенностей.
  • Mailbox - По умолчанию в вейленде, но может стоять настройка на тиринг в конкретном DE (kde). В случае с разрешенным тирингом можно форсировать mailbox для отдельного приложения через запуск с переменной окружения типа MESA_VK_WSI_PRESENT_MODE=mailbox
  • Без синхронизации - Режим включается в настройках DE, но не во всех может присутствовать.

Xorg (иксы)

В системах на базе X11 есть особенности, с которыми придется бороться. За отрисовку там отвечают иксы и композитор.

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

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

Куча возможных схем вывести картинку, они зависят от DE, игры, настроек иксов и драйвера. Но нет ни одной, которая бы просто работала. Это приводит к невозможности описать правильный подход к настройке иксов и игр, так как его не существует и всегда придется чем-то жертвовать.

Запуск игр

Игры бывают родные для ОС (нативные), игры для Windows (основная масса) и другие (через всякие эмуляторы).

Родные встречаются нечасто и «нативность» далеко не всегда говорит о лучшей их работе под линуксом. Часто самый быстрый способ решить проблему - запустить версию для Windows, особенно если играешь в стиме. Из плюсов - у родных игр есть родные установщики, можно просто скачать и поставить.

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

Сложности с windows-играми начинаются при выходе за пределы стима и при установке модов.

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

Steam

Установка

Установка стима может отличаться от привычной и тут есть несколько вариантов:

  • Установка из пакетного менеджера своего дистрибутива
  • Установка вручную
  • Установка из flatpak

Оптимальный вариант - установка через пакетный менеджер дистрибутива. Либо это пакет прямо в репозитории, либо с официального сайта стима. В отличие от ручной будут подтянуты разные неочевидные зависимости и с меньшей вероятностью придется вникать в особенности работы системы и решать необычные проблемы. Но, в зависимости от дистрибутива, надо доустановить часть необходимых 32-х битных пакетов вручную. Это зависит от дистрибутива и лучше свериться с гайдом к нему.

Через flatpak поставить проще всего и, чаще всего, это нормально работает. Но это неподдерживаемая Valve конфигурация, там бывают уникальные проблемы и есть особенности при интеграции с другими приложениями.

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

Иногда можно встретить в гайдах по стиму для разных дистрибутивов такое понятие, как запуск со стимовским рантаймом и с родным (Native). Вальве поддерживает только вариант со своим рантаймом и редко имеет смысл пытаться запускать с родным.

Запуск

Родные для линукса игры запускаются как обычные игры в винде.

Родные для windows через прослойку в виде протона.

Версию прослойки можно выбрать в настройках игры в стиме на вкладке совместимости.

Свою прослойку можно подкинуть в .steam/steam/compatibilitytools.d/. Чаще всего всё работает и с родными, но в популярных сторонних есть полезные особенности и решенные проблемы, которых по той или иной причине нет в официальной.

Популярный выбор Proton от CachyOS: https://github.com/CachyOS/proton-cachyos

Еще одна популярная сборка Proton GE: https://github.com/GloriousEggroll/proton-ge-custom

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

Перед покупкой игры или при проблемах с запуском стоит проверить сайт protondb. Там можно увидеть отчеты по совместимости конкретной игры и как её запускали другие люди, если сталкивались с какими-нибудь проблемами.

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

Файлы

Файлы игры стима можно найти по такому пути: /home/ПОЛЬЗОВАТЕЛЬ/.steam/steam/steamapps/common/. Дальше, как и в аналогичной директории в windows.

Если игра запускается через proton, то другие связанные с игрой файлы находятся в: /home/ПОЛЬЗОВАТЕЛЬ/.steam/steam/steamapps/compatdata/ID_ИГРЫ/. Там в pfx/drive_c/ копируется типичная для системного диска windows структура. Там в users/steamuser/ можно найти привычные для домашней директории пользователя по windows настройки и сохранёнки игры.

Родные игры обычно пишут куда-нибудь в домашнюю директорию пользователя в ~/.config/ИГРА_ИЛИ_ИЗДАТЕЛЬ

Lutris

Ссылка: https://lutris.net/

Менеджер для игр, который объединяет разные ланчеры и позволяет запускать и ставить игры через него.

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

Также удобный инструмент для ручного запуска игр, так как не надо самому создавать префиксы и искать нужные версии wine и proton. Но сильно перегружен, из-за чего можно заплутать даже при выполнении простейших действий.

Heroic Games Launcher

Ссылка: https://heroicgameslauncher.com/

Менеджер для игр из отличных от стима ланчеров (Epic, GoG, Amazon), которых нет под linux.

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

PortProton

Ссылка: https://linux-gaming.ru/forum/instructions/portproton/1186-ustanovka-portproton-ispolzovanie-wine-proton-bez-steam

Менеджер игр в духе Lutris. Меньше готовых рецептов, но не такой перегруженный функциями и для простого управления поставленными вручную играми будет попроще.

Bottles

Ссылка: https://github.com/bottlesdevs/Bottles

По сути это просто штука для ручной установки windows приложений и просто позволяет делать типичные в процессе этого вещи через графический интерфейс. Скачать Wine, создать префикс, поставить и запустить из него приложение. Только через GUI и не надо запоминать пути и возиться с консольными утилитами.

PlayOnLinux

Кто-то до сих пор может наткнуться на эту штуку, но она устарела и толком не поддерживается. Проще использовать Bottles или PortProton.

Ручной запуск Windows игр

С ручным запуском игр куча нюансов, в основе приходится оперировать и мыслить такими сущностями:

  • Прослойка для запуска (Wine, Proton). Что запускает игру.
  • Префикс (что-то типа виртуального windows диска, с библиотеками и настройками прослойки).
  • Библиотеки dxvk (для dx9-11 игр) и vkd3d (для dx12). Необходимые слои трансляции для directx игр, могут идти в составе прослойки, могут ставиться отдельно.
  • Другие сторонние библиотеки. Иногда чего-то не хватает для запуска приложения и надо подкинуть вручную.

Запуск windows игр (и приложений) выглядит так:

  • Ставятся зависимости для работы игр в систему. Когда не знаешь какие, то проще всего поставить стим (лучший вариант) или wine (с большей вероятностью чего-нибудь не хватит).
  • Качается подходящая прослойка. Обычно это какая-нибудь свежая сборка Proton (с umu) или wine. Очень редко, бывают сборки под конкретную игру для фикса багов в ней.
  • Она запускается и создаёт префикс под приложение в указанном месте, лучше всегда использовать отдельный префикс под каждое приложение, так как настройки и потребности у них могут отличаться.
  • Ставится dxkv или vkd3d, если нет в скаченной прослойке
  • После чего запускается через эту прослойку в этом префиксе установщик или уже распакованная игра, при проблемах доставляются необходимые сторонние библиотеки.

Proton требует окружение стима (umu). Т.е. umu запускает протон, с которым уже затем работаешь как с обычным wine. О прослойках и umu в отдельном разделе ниже.

Для установки библиотек часто прибегают к использованию утилиты winetricks. Она ставит выбранные библиотеки в указанный префикс и настраивает его на их использование.

Wine, Proton, UMU Launcher

Windows игры запускаются через слой трансляции, в основе которого лежит Wine (proton, wine-tkg и т.п.). Чистый Wine для этого также часто годится, но, чаще всего, он отстаёт по производительности, совместимости и разным фиксам от постоянно обновляющихся сборок. Еще неудобно управлять версиями wine при использовании пакетов из дистрибутива, поэтому всегда лучше качать какую-нибудь сборку, а сам wine ставить только для автоматического подтягивания зависимостей для его работы.

Сборки Wine от Kron4ek: https://github.com/Kron4ek/Wine-Builds/releases

  • wine-staging - это wine и часть, по той или иной причине, не попавших в него исправлений и улучшений
  • wine-staging-tkg - сборка на основе staging с доп. патчами.

Proton - основанный на wine слой с дополнительными улучшениями, со встроенными библиотеками и рассчитанный на работу в окружении стима. Запуск игр через него чаще всего даёт ожидаемый результат при минимуме возни и понимания происходящего, но ему нужно окружение стима. В стиме просто забрасываешь директорию с протоном и используешь, а при запуске за его пределами чуть сложнее и надо использовать umu.

Популярные сборки протона:

  • proton-cachyos - оптимизированная под производительность сборка от разработчиков CachyOS. Интегрированы улучшения типа Low Latency Layer.
  • proton-ge-custom - сборка от gloriouseggroll, часто содержит фиксы для каких-нибудь новых игр.

Umu (github.com) - Выдранное из стима окружение для запуска игр за его пределами. Позволяет использовать сборки протона без стима и, частично, заменяет зависимости в системе (меньше вероятность, что не хватит какой-то библиотеки).

winetricks и protontricks

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

winetricks - в префикс wine. Указываешь путь к wine через переменную окружения WINE, указываешь путь к префиксу через переменную WINEPREFIX, затем winetricks имя_компонента для установки необходимого компонента.

protontricks - обёртка вокруг winetricks. Её суть в том, чтобы запустить winetricks через прописанный в стиме для игры протон и в её префиксе, а не искать всё это и не изворачиваться с запуском самостоятельно.

Моды

Моды из стим воркшопа просто ставятся и работают как и в винде.

Моды, работающие через подмену ресурсов игры, работают аналогично windows, но расположение файлов другое. Для windows игр wine/proton создают типичную для системного диска структуру и файлы, попадающие в домашнюю директорию пользователя (сохранёнки и конфиги), надо искать там. Для стима пример в разделе со стимом.

Некоторые моды работают не просто через подмену ресурсов самой игры, но через подкидывание туда библиотеки (*.dll файла). В Windows игра видит такой файл и подгружает его вместо стандартной библиотеки и так в игру встраивается мод. Под линуксом это не происходит автоматически и надо указать подсасывание библиотеки во время запуска игры. Это делается через переменную окружения, типа WINEDLLOVERRIDES="dinput8.dll=n,b". В стиме команда запуска игры будет выглядеть так: WINEDLLOVERRIDES="dinput8.dll=n,b" %command%.

Некоторые моды для windows игр могут требовать недостающие библиотеки и их надо поставить вручную или через proton/wine tricks. С установкой или работой библиотек могут быть проблемы. Чаще всего требуется поставить какую-нибудь версию .Net

Еще один тип модов работает через запуск отдельного приложения параллельно с игрой и через чтение памяти процесса игры. Но при запуске через wine/proton приложения запускаются в своём отдельном окружении и такой мод надо запустить в окружении игры. Если игра запускается из стима, то это может оказаться сложнее, чем кажется. Пример скрипта для запуска HunterPie для monster hunter world:

#!/bin/bash
cd "$(dirname "$0")"
# Steam comatibility data for Monster Hunter World
MWH_PATH_COMPDATA=~/.steam/steam/steamapps/compatdata/582010
# Path to proton, lazy method, should work
PROTON_PATH=$(cat $MWH_PATH_COMPDATA/config_info | head -n 2 | tail -n 1 | sed 's/files\/share\/fonts\///')
# Path to steam installation
STEAM_PATH=~/.steam/steam
 
# Run HunterPie in MWH Steam environment
STEAM_COMPAT_DATA_PATH=$MWH_PATH_COMPDATA \
        WINEPREFIX=$MWH_PATH_COMPDATA/pfx \
        STEAM_COMPAT_CLIENT_INSTALL_PATH=$STEAM_PATH \
        $PROTON_PATH/proton run \
        ./HunterPie.exe

Оверлеи производительности

Аналогов intel perfmon и его прородителя от nvidia для подробной оценки производительности под линуксом нет, есть только классическое отображение графика fps, и загруженности по ресурсам.

MangoHud

Ссылка: https://github.com/flightlessmango/MangoHud

Самый популярный оверлей со статистикой производительности под линуксом. Часто присутствует в базе пакетов дистрибутива, также есть версия для работы во flatpak-е.

Запускается:

  • mangohud /путь/игра/bin/game (для запускаемых вручную нативных игр)
  • mangohud %command% (команда запуска в настройках игры в стиме)
  • gamescope --mangoapp -- %command% (аналогично, только при использовании вместе с gamescope)
  • автоматически для игр на Vulkan (не opengl) при наличии переменной окружения MANGOHUD=1

Steam

В стиме появился свой оверлей производительности. Он попроще MangoHud, и его можно просто включить в настройках стима.

Железки, драйвера и сопутствующие настройки

Настройки мышки и чувствительности

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

У мышки есть три профиля работы adaptive, flat, custom.

  • adaptive - используется по умолчанию и отдаленно напоминает режим «повышенной точности курсора» в винде. Это режим с акселерацией мышки, но она зависит от её dpi и в этом режиме практически невозможно регулировать чувствительность курсора. Исторически там сложилось из-за мнения разработчика, что можно подобрать универсальный режим для всех пользователей со всеми комбинациями мышек. Из-за чего его тяжело использовать даже тем, кто предпочитает акселерацию. В kde это галочка «Включить ускорение курсора».

  • flat - режим без акселерации. В этом случае чувствительность мышки регулируется как и ожидает пользователь в режиме без акселерации, если бы не один нюанс. Ползунок в gui часто не продуман и «делитель» скорости регулируется линейно. Т.е. смещение на одну позицию влево может снизить скорость до 1.8x, еще на одну до 0.6x, потом до 0.4x, 0.2x, и 0x. Поэтому придется вбивать нужное значение вручную в GUI (если есть такая возможность как в kde), либо в конфиге. В libinput чувствительность начинается с нуля (1x), 0.2 означает +20%, а -0.2 это -20%. Поэтому если нужна, например, 1/8, то это будет -0.875

  • custom - своя собственная функция чувствительности мышки. Вопрос сложный и по нему нужен отдельный гайд, неинтересно подавляющему большинству пользователей.

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

В Xorg можно настроить мимо окружения через xinput, только в этом случае и восстанавливать заданные настройки это окружение не сможет.

Подробнее про борьбу с настройками мышки: https://wiki.archlinux.org/title/Mouse_acceleration

DPI и настройки самой мышки. Для популярных моделей мышек бывают приложения для настройки под линукс, но везет не всем. Если такого приложения нет, то остается настроить dpi и нужные параметры под виндой и сохранить в память мышки (можно через проброс мышки по usb в виртуальную машину).

Геймпады

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

Чтобы запущенные пользователем программы видели геймпад у него должны быть права доступа к ним. Самый распространённый способ этого добиться - рассказать системе, что доступ к геймпадам должен выдаваться каждому авторизованному пользователю в системе.

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

Доступ к геймпаду со стороны пользователя (udev)

Пример типичного правила для геймпада

udev - система управления устройствами linux. Правила для udev определяют, что система должна сделать с обнаруженным устройством.

Свои правила можно поместить в /etc/udev/rules.d/, например в файл 10-dualshock3.rules:

# DualShock 3 over USB hidraw KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0660", TAG+="uaccess"
# DualShock 3 over bluetooth hidraw KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0660", TAG+="uaccess"

В этом примере правило говорит системе, что при обнаружении hidraw устройства (железки типа геймпадов) с идентификатором поставщика 54c и идентификатором продукта 0268 разрешить доступ к нему залогиненным пользователям MODE=«0660», TAG+=«uaccess».

Для подключенных по usb это выглядит как ATTRS{idVendor}==«54c», ATTRS{idProduct}==«0268», для блютуса KERNELS==«054C:0268», MODE=«0660».

Идентификатор подключенного по usb устройства можно посмотреть командой lsusb, в выводе будет «Bus *** Device ***: ID поставщика:продукта Имя устройства».

Созданные правила должны подтянуться автоматически, перечитать правила можно принудительно командой udevadm control --reload и применить udevadm trigger.

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

Готовые правила

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

Сборка правил под геймпады: https://codeberg.org/fabiscafe/game-devices-udev

Можно просто распаковать из архива в ‘/etc/udev/rules.d’. Эти правила ничем не отличаются от самописных, просто для удобства известные геймпады собраны в одном месте.

Определение геймпада играми

С определением геймпада играми много нюансов. Некоторые игры видят только первый геймпад в системе, который может оказаться виртуальным и пользователь об этом даже не подозревает. Часть ожидает назначения клавиш и осей от xbox, какие-то понимают dualshock и nintendo. В первую очередь стоит проверить, видят ли какие-либо программы геймпад в принципе. Для этого можно использовать разные программы типа «sdl2-jstest», но лучше всего подходит стим.

Настройка геймпадов обширная тема, и подробнее можно почитать на arch wiki: https://wiki.archlinux.org/title/Gamepad

Видеокарты

Драйвер видеокарты можно поделить условно на две части. В ядре идет общение и управление железкой, в пространстве пользователя обеспечивается поддержка необходимых api и функций для работы приложений.

Привычного для windows идущего с драйверами софта нет. Часть аналогичных функций находятся в других местах, других просто нет.

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

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

Карточки Nvidia поддерживаются со дня выхода с большинством привычных для windows функций. Но идущий отдельно от ядра драйвер доставляет проблемы, а поддержка новых фишек самого linux-а реализуется с существенной задержкой или долго не решаются баги. Можно ожидать производительность на 10-30% ниже windows.

Карточки AMD быстро получают поддержку после выхода, но фишки этих карточек часто доходят с ощутимой задержкой. В то же время, плюшки самого линукса в первую очередь тестируются на них, а сами драйвера создают меньше всего проблем. В среднем производительность можно ожидать как от винды, в случаях с path tracing она может быть существенно ниже.

AMD

Актуальные нюансы можно найти в wiki: https://wiki.archlinux.org/title/AMDGPU

AMD начала прикладывать существенные усилия в поддержку linux относительно недавно. Основной фокус на карточки типа rdna2+, со всякими RX580 тоже всё отлично, но карточки старше не так распространены и их работа не так вылизана.

Думать о драйверах не надо, просто запустил и всё работает.

Кроме случаев, когда нет. Баги в mesa (драйвер в пространстве пользователя) возникают не так уж редко и приходится её откатывать. Баги в ядре случаются существенно реже.

Intel

Актуальные нюансы можно найти в wiki: https://wiki.archlinux.org/title/Intel_graphics

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

Nvidia

Актуальные нюансы можно найти в wiki: https://wiki.archlinux.org/title/NVIDIA

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

Для карточек, начиная с Turing (16xx, 20xx и выше) лучше ставить открытый драйвер ядра из состава дистрибутива.

Для более старых только закрытый.

Есть еще вариант использования полностью открытых драйверов (Nouveau + NVK), но в текущем состоянии нет смысла рассматривать их применения на актуальных карточках.

Звук

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

Также познакомиться с системой вывода звука придется, если есть желание завести объемный звук в наушниках (преобразование 7.1 из источника в HRTF вывод в наушниках). В современных дистрибутивах обычно используется PipeWire, и у него есть всё необходимое для реализации подобной функции (аналог HeSuVi под windows). В дистрибутивах старше можно встретить Pulseaudio, там это тоже возможно.

Объемный звук можно настроить вручную через конфиги, либо используя вспомогательные приложения типа Irate Goose.

Другой софт для игр

Gamescope

Ссылка: https://github.com/ValveSoftware/gamescope

Композитор wayland. Только его суть не в предоставлении пользователю полноценного окружения, а это такое «окно» для запуска внутри игр с дополнительными функциями.

Через него можно задать нужные пропорции экрана и правила растягивания картинки. Полезен, когда надо растянуть картинку с применением FSR или целочисленного скалирования. А также для старых игр, в которых нет поддержки разрешения и пропорций твоего экрана.

Gamemode

Ссылка: https://github.com/FeralInteractive/gamemode

Приблуда для того, чтобы при запуске игры применять «оптимизации» на время её работы.

В самих оптимизациях ничего необычного и они могут и не давать никакого эффекта. Там просто установка приоритетов, режима энергосбережения, отключение гашения экрана и т.п.

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

Применяется так:

  • gamemoderun %command% (параметр запуска для стима)
  • gamemoderun ./game (запуск игры напрямую)

Moonlight и Sunshine

Стриминг игры и десктопа с хоста (sunshine) на удалённую железку (moonlight)

Moonlight: https://github.com/moonlight-stream/moonlight-qt

Sunshine: https://github.com/LizardByte/Sunshine

Проверенный и качественный способ стриминга игр. Поддерживается широкий спектр устройств и можно играть со своего ПК даже на nintendo switch lite (взломанном).

★★★★★

Проверено: hobbit ()
Последнее исправление: altwazar (всего исправлений: 5)
Ответ на: комментарий от altwazar

Зачем нагружать карточку на 100-300% сверху, что бы что?

Забыл написать. Если вдруг у тебя комп способен выдать x2-x4 фпс-а, то, порой, можно получить меньше задержку с mailbox режимом, чем с VRR. Так как задержка ввода - не только время на вывод картинки, но и обработка ввода самой игрой. Может быть целесообразно для соревновательных игр.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от altwazar

Промежуток вывода изображения на 60 Гц мониторе - 16 мс. У тебя машина рисовала кадр 16 мс, а после этого он выведется еще через 0-16 мс.

Давай возьмём 16 мс, для предметного разговора. Я как представляю ситуацию: вот есть игра, в которой состояние изменяется довольно быстро, пусть будет 1 мс. Раз в 16 мс происходит отрисовка текущего состояния. Она должна занимать ну пусть будет 14-15 мс. Ситуации, когда кадр не успевает отрисоваться за 16 сек либо исключены, либо крайне специфичны. Получается стабильная задержка в районе 16 мс от начала отрисовки кадра. Зачем при таком раскладе сразу пытаться рисовать новой кадр, не понимаю, т.к. мы рано или поздно один из кадров всё равно пропустим при отрисовке и лаг от начала отрисовки у нас составит 16-32 мс.

Если вдруг у тебя комп способен выдать x2-x4 фпс-а, то, порой, можно получить меньше задержку с mailbox режимом, чем с VRR. Так как задержка ввода - не только время на вывод картинки, но и обработка ввода самой игрой. Может быть целесообразно для соревновательных игр.

Логика такая же: если за 16 мс можно нарисовать 4 кадра, зачем рисовать первые 3? Хотя тут могу оправдать игроков: если это кибер-спорт, да ещё за деньги, то иметь задержку 4-8 мс куда лучше, чем 4 мс с фоллбеком 20 мс. Сколько воздуха при этом нагреет карточка, игрока при этом совсем не волнует. Ну а другие действуют как киберспротсмены, потому что тоже дофига киберспротсменами себя считают.

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

bbc69
()
Ответ на: комментарий от bbc69

Раз в 16 мс происходит отрисовка текущего состояния. Она должна занимать ну пусть будет 14-15 мс. Ситуации, когда кадр не успевает отрисоваться за 16 сек либо исключены, либо крайне специфичны.

Что ты описываешь больше подходит для классического VSync-а. Когда монитор должен выводить картинку за 16 мс, а железо позволяет рисовать быстрее и может за это время подготовить новый кадр.

Это оптимальное состояние в плане синхронизации по времени и задействования возможностей монитора. Но у тебя должен быть огромный запас по производительности (среднее время отрисовки кадров в 15 мс - не значит, что они все за это время будут отрисовываться). И есть какой-то нюанс (не вникал в технические подробности), как игры пытаются синхронизироваться под частоту монитора и добавляют ради этого кадры в очередь. Когда-то читал разбор этого процесса на blurbusters.com, но по памяти больше навру сейчас и только запутаю.

Сколько воздуха при этом нагреет карточка, игрока при этом совсем не волнует.

Я про практический эффект написал, что, порой, mailbox метод даёт задержку ниже остальных, когда у тебя производительность кратно превышает герцовку монитора.

Если кому-то это по той или иной причине не надо, то он может этим не пользоваться. Нагрев, чаще всего, не воспринимается там как проблема. Так как в каком-нибудь контрстрайке с ограничением в 400 fps карточка будет греться меньше, чем в типичной свежей ААА игре с 50.

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

Сложный вопрос.

Первая беда в том, что, в зависимости от ситуации, разные подходы будут оптимальными. Тот же VRR, просто включенный в системе по умолчанию, кучу проблем создаёт людям, так как может вызывать мерцание, которое особенно выражено на oled-ах и многих VA мониторах. А на 60 Гц мониторах mailbox режим с низким fps в игре использовать не комфортно.

Вторая беда - разработчики игр постоянно делают полную дичь. Я чуть ли не в каждой второй игре натыкаются на проблемы с такой простой вещью, как настройка чувствительности мыши. Например, в Helldivers 2 у тебя ползунок с тысячью градаций чувствительности. У меня на мышке довольно типичные 3200 dpi, 2/1000 - слишком быстро, 1/1000 - слишком медленно. Им бы для начала втолковать, что не надо делать фиксированные фреймлимитеры на частоты типа 30/60/120/144/240, так как это мешает их грамотно использовать. Чаще всего всё хорошо в плане настроек в киберспортивных играх, плохо в остальных.

Ну и вишенка на торте - системные требования. Их просто от балды пишут. Процы часто просто по ценовой категории подбирают.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от altwazar

(среднее время отрисовки кадров в 15 мс - не значит, что они все за это время будут отрисовываться).

Я имел в виду не среднюю, а 90-95 квантиль (2-3 сигмы). Видимо, где-то тут собака и порылась. Играм сложно удержать это число стабильным, проще генерить кадры постоянно, пользователь с настройками и карточка сами разберутся, какие кадры и как показать.

bbc69
()
Ответ на: комментарий от mittorn

При упоре в gpu же cpu в современных играх может нагенерировать несклько кадров вперёд

и игра работает только с одним кадром

это совершенно не означает, что нет никаких кадров «в полёте» на стороне драйвера/gpu

Не передёргивай, это не красиво.

в играх нет никакой «очереди».

тем временем mat_queue_mode в сорсе…

Что mat_queue_mode? Ты не знаешь, что? Ну, другие люди знают. Вот что:

https://www.reddit.com/r/GlobalOffensive/comments/5zkpwn/in_depth_discussion_of_mat_queue_mode_and_mat/

At the end of each frame a function called EndFrame is called. In that function, the engine will take the integer value of mat_queue_mode and cast that to one of the MaterialThreadMode_t modes, which it subsequently assigns to a local variable called nextThreadMode. If the value of mat_queue_mode is negative, nextThreadMode will be set to the class member CMaterialSystem::m_IdealThreadMode instead (any negative value results in the same behaviour, no magical -2 value exists). Later on this function will compare the current thread mode, CMaterialSystem::m_ThreadMode, to that local variable nextThreadMode, and change the mode if the values are different.

MATERIAL_QUEUED_SINGLE_THREADED will use the same render context each frame, while MATERIAL_QUEUED_THREADED will alternate between the render context used in each frame in a round robin fashion.

Где у нас тут очередь кадров? А нигде, нет никакой очереди. Опять слышишь звон, да не знаешь, где он.

при использовании видеокарт кадры рисует специально для этого придуманный GPU

кадры отправляет в работу CPU.

Отправляет в работу КОМУ? КТО работу-то делает? М-м-м?

не надо мне тут с «умным» видом пытаться что-то доказать

Так я

  1. не тебе доказываю-то
  2. ты и без меня сам с собой прекрасно справляешься

@altwazar

Могу сказать только одно

Лучше б не говорил, ну да ладно.

учи матчасть. Выше я уже кинул разбор от нвидии про очередь из подготовленных на CPU кадров и её влияние на задержку.

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

Frames are rendered in small pieces of work called drawcalls. These calls are eventually grouped together into packets of work. Those packets of work are then sent by the graphics driver to the GPU to be rendered. This allows each of the stages to start working before the prior stage has finished - splitting up the frame into bite-sized pieces.

As work makes it way through the pipeline, it eventually gets written to the frame buffer. This continues until the frame is fully rendered. Once it’s done rendering, the back buffer is swapped with another available buffer in the swap chain and sent to scan out.

Твоя задача - доказать, что хоть в одном из известных игровых движков (unreal, anvil, unity) существует более чем один "back buffer".

Пока ты этого не доказал, все твои рассказы про "очереди кадров" - это твои фантазии на абсолютно ровном месте.

@bbc69

А зачем такие запасы? Зачем нагружать карточку на 100-300% сверху, что бы что?

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

в моё время такого внимания фпсам не устраивали.

Фпсы были центром внимания с момента создания трёхмерных игр на PC:

                     Post-Release v6.666 - STANDARD revision
                       Last Updated: DOOMSDAY, 1994
               December 10, 1994 EST: Anniversary Edition
...

[3-8]: Smooth, Seamless Gameplay
================================
        The environment in DOOM is frightening, but the player can be at
ease when playing.  Much effort has been spent on the development end to
provide the smoothest control on the user end.  And the frame rate (the rate
at which the screen is updated) is high, so you move smoothly from room to
room, turning and acting as you wish, unhampered by the slow jerky motion of
most 3-D games.  On a 386DX, the game runs well, and on a 486/33, the normal
mode frame rate is almost as fast as television.  This allows for the
most important and enjoyable aspect of gameplay: immersion.

r--r--r--
()
Ответ на: комментарий от r--r--r--

Фпсы были центром внимания с момента создания трёхмерных игр на PC:

Ну хз, может я в другие игры играл. Раньше игры были интересные, красивые, тормознючие, но никто фпсы не мерял и ими не мерялся. В обзорах я эту инфу тоже не помню. И уж тем более я не понимаю, почему 70 фпс - это плохо, а 80 - норм. Ладно, сравнение 70/120 - там понятен прирост, но тут…

Посмотрел из любопытства, что там по думу было: целевые 60 фпс с

the normal mode frame rate is almost as fast as television

т.е., в районе 25-30 фпс.

Итого 30-60 фпс в зависимости от системы. С учётом вышесказанного тем более странно (текущее положение вещей).

bbc69
()
Ответ на: комментарий от bbc69

Посмотрел из любопытства, что там по думу было:

На релизе у первого дума был фиксированный фреймрейт в 35 кадров / сек - ровно половина от частоты обновления экрана в 13h VGA режиме.

r--r--r--
()
Ответ на: комментарий от bbc69

И уж тем более я не понимаю, почему 70 фпс - это плохо, а 80 - норм.

Если взять идеальные условия с VRR и упростить, то:

30+ fps - можно неплохо играть в неторопливые игры без прямого управления камерой с мышки.

48+ fps - хорошо практически для любого гейминга, кроме соревновательных шутеров. В обычных шутерах хочется побольше, но для какого-нибудь киберпанка и dying light и так не плохо будет.

Чем выше фпс, тем меньше ощутимый прирост от него. 30 и 48 отличаются куда больше, чем 120 и 240. Завышенные потребности у геймеров часто возникают из-за того, что они любые проблемы пытаются залечить поднятием fps-ов. Хотя они особую разницу между 70 и 80 не придают, если не сравнивают железки в одной ценовой категории.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от bbc69

Раньше игры были интересные, красивые, тормознючие, но никто фпсы не мерял и ими не мерялся

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

REDDERa
()

Извини, Автор, что не прочитал я ещё статью, но вот хочу спросить…

Ты рассказал про особенности 144гц моников, а если быть точнее про специфику фреймгена в современных играх??

Короче смотри… когда включаешь фреймген, то чтобы оборудование не расплавилось от 400 ФПС — Необходимо лок кадров ставить на 60. — С этим ограничением, + фреймгенкой — кадров будет 120.

И важно ещё что??? — На линуксе надо монитор втыкать в Дисплэй-Порт, чтобы фрисинк РАБОТАЛ.

Если есть гладких 120 Кадров, — фрисинк сгладит абсолютно любые статтеры.

(Надеюсь, кому-то поможет)

Set440 ★★
()
Ответ на: комментарий от yars068

Я с вендой плотно дел не имею со времëн ХР.

Ты ни чего не потерял.

UriZzz ★★
()
Ответ на: комментарий от Set440

Ты рассказал про особенности 144гц моников, а если быть точнее про специфику фреймгена в современных играх??

Короче смотри… когда включаешь фреймген, то чтобы оборудование не расплавилось от 400 ФПС — Необходимо лок кадров ставить на 60. — С этим ограничением, + фреймгенкой — кадров будет 120.

Основная специфика фреймгера - увеличение задержки, особенно в ситуациях с упором в gpu в играх. В большинстве случаев лучше иметь 60 fps без фреймгена, чем 120 с ним. Так как 60 fps дают комфортную плавность практически всегда, а вот комфортную задержку нет.

Хорошо работает в играх, в которых задержка не важна, а с плавностью проблемы. Особенно, когда они в cpu упираются. Типа flight simulator. Или во всяких неторопливых играх на стимдеке, чтобы зарезать fps и батарея жила подольше.

На линуксе надо монитор втыкать в Дисплэй-Порт, чтобы фрисинк РАБОТАЛ.

Да, нюансы с hdmi и amd забыл описать.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от UriZzz

Забрось переменную окружения, типа DXVK_HUD=fps

(Это должно подходить как для DXVK, так и для vkd3d_proton)

…Или включи внутриигровой счётчик фпс, и сравни. Делов-то?..

Вероятно мангохуд может врать на переключении режимов, типа, тройная буфферизация / мэйлбокс / фреймген.

На генке — он будет считать не все кадры, а только реальные (наверно).

На тройной буфферизации — будет не досчитывать 1-2 кадра (наверно).

На мэйлбоксе — будет скакать фреймрэйт +-кадр (наверно).

Set440 ★★
()
Ответ на: комментарий от altwazar

Я игрок больше по RPG, а не кубер-котлет.

Мне важно, чтобы картинка была без статтера, приятная, небыло сильного шума куллеров, и видеокарта чтоб не сгорела ОПЯТЬ.

Например, играя в ведьмака 3, чтоб небыло боли от задержки — можно себе немного очков опыта/навыков/перков консолью накинуть. (Либо просто привыкнуть играть на стимдэке, чтоб закалять нервы)

Или например, в Фоллаут Нью-Вегасе — отзывчивость не главное. Там деревянную стрельбу надо исправлять модами, или юзать VATS.

Последнее время играю в Outer Worlds — сильной задержки не чувствую.

Set440 ★★
()

ну блин легче винду накатить

alll81 ★★
()

стоит добавить в статью faugus launcher (внутри использует umu). в нем все просто никаих заморок. всетки lutris и бутылки перегруженны всякой хренью в настройках )

I_one ★★
()

Дополню:

  • Устанавливать игры лучше, по путям содержащим только латиницу и -, _ вместо пробелов, всяких точек, запятых и прочее лучше избегать, ещё могут мешать и ссылки. Также, запуск игр на NTFS может вызывать проблемы.
  • Для удобства руления путями можно использовать wine explorer [«Z:\home\user\...»], ссылки, но у меня был загрузчик модов, который не работал из-за ссылок, либо mount/bindfs.
  • Касательно DualShock, запускаю wine control и меняю настройки, там же можно проверить контроллер, обычно для игр с xbox управлением ставлю disable hidraw.
Dr64h ★★★★
()
Ответ на: комментарий от I_one

Обычно избегаю лаунчеры, они все написаны на тормозных и забагованных скриптах. Проще уж вручную рулить.

Dr64h ★★★★
()

модов работает через запуск отдельного приложения параллельно с игрой

Через протонтрикс так можно запускать или я с другой программой спутал. Проверено на steam deck.

zanac1
()
Ответ на: комментарий от Set440

Да речь не об fps а о температурах. Мне он нужен прежде всего для слежки за температурой ядер CPU, GPU, ну, процентом их загруженности… Ну, fps конечно тоже, но не на первом месте.

UriZzz ★★
()
Последнее исправление: UriZzz (всего исправлений: 1)
Ответ на: комментарий от Dr64h

umu — это специальная бутылка-песочница для протона, чтобы прикинуться стимом, и поставить все необходимые игре рантаймы.

Тоесть это не лаунчер, а что-то между флатпаком и эмулятором стима.

Set440 ★★
()
Ответ на: комментарий от Dr64h

Ещё можно сказать, что диск ДАТА или /Хомяк/ можно создавать (форматировать в Экст4) с опцией -O CaseFold

Тогда, к пустым папкам (для заготовки вайнпрефиксов) можно применять chattr +F

…И тогда, в этих папках становится регистро-независимая ФС, как на венде

Set440 ★★
()

Выигрыш в производительности у игр под линукс через Протон, по сравнению с нитивом под онтопиком.

В той же Атомик Харт со всеми длц выигрыш 5, 7°С, где-то так. Ставил через ПортПротон лаунчер вк плей, потом с лаунчера ставил игру, при тех же граф.настройках что и под офтопиком. Я был приятно удивлён.

UriZzz ★★
()
Последнее исправление: UriZzz (всего исправлений: 1)
Ответ на: комментарий от UriZzz

Я если честно, не представляю, как он может врать…

Наверное температуру памяти путает с ядром?.. Или температуру показывает в Фаренгейтах?.. А Конфиг у мангохуда есть? Если у ЧатЖпт попросить дать команды на установку софта для куллеров и датчиков, — все датчики должны инициализироваться и появиться в ГУЕ?

Я температуры не смотрю… потому опыта нету, есть разве-что эти мысли.

Летом лучше сделать как у меня: Перейти на режим энергосбережения, и не превышать ФПС рендеринга выше 75 кадров, залочить. … Жаль ток кондиционера нет…

Set440 ★★
()
Ответ на: комментарий от altwazar

Как минимум в этом контексте стоит дописать:

  1. Самый прямой (и порой не самый эффективный) способ — просто запустить игру/Steam через консоль. Зачастую так можно поймать отсутствие каких-то библиотек или не совсем работающий драйвер.
  2. Если это нативный бинарь, то ldd по нему.
  3. Использование переменной PROTON_LOG в том же Steam.
  4. Написать, что смена версий того же Proton в ряде случаев помогает.
  5. Всю статью не читал пока, но про пересоздание префкса тоже стоит упомянуть, т.к. порой от проблем в префиксе игра может не запускаться. Стоит только сделать сноску, что там порой хранятся сейвы (в зависимости от игры), поэтому порой их нужно бэкапить. :)
Ogden
()

у меня с этим rebar во всех играх (ну там всего штучки 4) только хуже. каждой в параметрах запуска прописываю отключение. карта 3080ти, дрова блоб. игры dbd, b4b, outlast trials, 7dtd.

milka
()
Ответ на: комментарий от milka

А «плохо» по минимальному ФПС, или по максимальному???

ИМХО, самый важный показатель 1%-перцентиль, тоесть микрофризы и минимальные кадры.

Если максимальный опускается, но поднимается 1% — всё вроде идёт хорошо.

Set440 ★★
()
Ответ на: комментарий от Set440

у меня 100 - 180 фпс игры дают, поэтому минимальный не вижу. но вот в целом средний фпс пониже. пс камень 7 5700х3д как за минимальным следить? у меня только в мангохуд простой счетчик фпс

milka
()
Последнее исправление: milka (всего исправлений: 2)
Ответ на: комментарий от milka

А могёшь, на ДХВК включить график фреймтайма, и понаблюдать на нём подскакивающие пики?? (Желательно в СИНТЕТИЧЕСКОМ БЕНЧМАРКЕ, например в Ларе Крофт, или например в последнем DeusEX … Или в Хорайзоне первом — HZD)

Set440 ★★
()
Ответ на: комментарий от milka

в мангохуд, если я помню правильно — можно закинуть какую-то переменную окружения, которая добавит график.

Я про этот худ знаю мало, спрошу нейрослопку.

Set440 ★★
()
Ответ на: комментарий от Set440

бенч в тень томы рейдера. по всем показателям без ребара значения выше, чем с ребаром.

с ребаром https://ibb.co/XkFvkJDJ

без ребара https://ibb.co/60KQBBpJ

п.с. что заметил сейчас в табличке снизу справа: без ребара показания с ЦП выше, а с ребаром показания с ГП выше, но всего на 1-2

milka
()
Ответ на: комментарий от milka

Может, ребар/4г-декод может помогать в играх по 64бита, типа Уриал Энжон 5

Но я не знаю игр, где есть встроенный синтетический бенч.

Можно сохраниться на какой-то панораме (чтоб камера после загрузки стояла в какой-то сцене в нужном ракурсе) и не поворачивая обзор, снять замеры.

Типа, в игре на уе5, загрузиться на панораме без движения с ребаром, потом его выключить, и загрузить без движения без_него.

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

Set440 ★★
()
Ответ на: комментарий от Set440

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

milka
()
Ответ на: комментарий от milka

Я на самом деле всю информацию связанную с ребаром — так-то и не знаю. Потому доказывать ничего не буду, и не вижу смысла спорить.

Мне прост кажется, что на ребар могут влиять такие вещи, как P-States процессора, стратегии энергосбережения, и чёрт ещё знает что.

Я в общем-то его у себя не отключаю, так-как в Нью-Вегасе ставлю в ДХВК presentInterval=2 (это на моём 144гц монике фиксирует кадры на 72) … а в играх на УЕ5 я ставлю лок=60 с Фрэйм-Геной, получаю в итоге «ненастоящие» 120, и шлифую Фри-Синком, чтоб моник синхронизировался.

По опыту лишь знаю: Старые игры ОЧЕНЬ НЕ ЛЮБЯТ ВЫСОКИЙ ФПС.

А если стараться в мою погоду, 39 градусов, выжать из УЕ5-игр настоящие 120 — карта расплавится просто, потому я включаю энергосбережение.

Я «адепт синхронизации» и «разумизма мат-логики». И я не играю в соревновательные игры…

Set440 ★★
()
Ответ на: комментарий от water_closed

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

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Такие статьи лучше «компилировать» в сайты то списком ЧАВО и поиском, потому-что огромная портянка только отпугнёт новичков.

Set440 ★★
()
Ответ на: комментарий от Set440

На самом деле, инфа тут очень общая. Развлекалово для новичков. Пользы несет мало. Чтобы реально что то сделать, каждый пункт нужно раз в 10 раскрыть больше. Или много много гуглить юзеру по каждому пункту.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Да. Но надо понимать: Автор не смог написать сверх-детальный инфопост, потому-что это всего-лишь статья, и уточняющие комменты накатывают после одобрения, когда он редактировать уже не может.

Че Сть и хвала аффтору.

Set440 ★★
()
Ответ на: комментарий от Ogden

Как минимум в этом контексте стоит дописать:

Угу, хорошие рекомендации.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от Set440

Я игрок больше по RPG, а не кубер-котлет.

Суть в том, что достаточная плавность при увеличении fps, в подавляющем большинстве случаев, достигается гораздо быстрее, чем комфортная задержка.

Например, в ведьмака можно отлично играть и в 30 fps в плане плавности, но задержка уже немного не комфортная. И дело не в её влиянии на эффективность прохождения, а в удовольствии от процесса. Потребности в ведьмаке к хорошей задержке низкие, можно играть как угодно, но имея 60 fps я бы даже не заморачивался с генерацией кадров. Тем более, что она может отнять реальные, если упор был в gpu.

…и видеокарта чтоб не сгорела ОПЯТЬ.

Видюшки в играх горят при комбинации дефекта железа и отсутствия ограничения по fps в меню. Вот эти сюрпризы с 600 fps в менюшках вылазят в самых неожиданных местах. Я, наоборот, после покупки насилую видюшку по максимуму, чтобы на ранней стадии выявить наличие такого дефекта.

altwazar ★★★★★
() автор топика
Последнее исправление: altwazar (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Или много много гуглить юзеру по каждому пункту.

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

Дипсик гораздо лучше меня объяснит, как запустить игру через umu+proton, и тут же поможет с возникшими проблемами. Но, чтобы грамотно задать вопрос, надо иметь общее представление о том, что ты пытаешься сделать.

altwazar ★★★★★
() автор топика
Последнее исправление: altwazar (всего исправлений: 1)
Ответ на: комментарий от milka

…но вот в целом средний фпс пониже.

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

Например, у тебя одна игра может выдавать 80 fps, другая 120 fps. Но в одной практически никогда кадры не рисуются дольше 16 мс, а в другой бывают кадры по 25 мс. И тогда эти 120 fps будут ощущаться хуже, чем 80.

В идеале, смотреть надо на график фреймтайма, где эти скачки видно. И, довольно не плохо, качество гейминга отражает 1% fps. Упрощенно, но вскрывает большинство проблем, которые не видно за показаниями среднего fps.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от I_one

стоит добавить в статью faugus launcher (внутри использует umu).

Хм, не сталкивался, звучит интересно. Lutris да, перегружен порой на столько, что интересен сейчас разве что для запуска готовых под него рецептов.

altwazar ★★★★★
() автор топика
Ответ на: комментарий от milka

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

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

altwazar ★★★★★
() автор топика
Ответ на: комментарий от altwazar

Суть в том, что достаточная плавность при увеличении fps, в подавляющем большинстве случаев, достигается гораздо быстрее, чем комфортная задержка.

Например, в ведьмака можно отлично играть и в 30 fps в плане плавности, но задержка уже немного не комфортная. И дело не в её влиянии на эффективность прохождения, а в удовольствии от процесса.

Ты же понимаешь, что «удовольствие от процесса» — вещь субъективная, и с противоположной точки зрения, 30 фпс — мутная тема.

На 144-монике, кадров должно быть МИНИМУМ 72 !

Я, как ты говоришь, играю сейчас С БОЛЬШОЙ ЗАДЕРЖКОЙ в Аутер Ворлц 2. — Но я никакой задержки не вижу. — 120 «ненастоящих» герц (60+генка), с фрисинком. И не понимаю как «задержку» можно увидеть или распознать.

30 герц — это статтер-фест, который комфортным быть никак не может.

Set440 ★★
()
Ответ на: комментарий от slackwarrior

Помню историю с 2K лаунчером, который крашил игры при запуске, выпилили.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Set440

На 144-монике, кадров должно быть МИНИМУМ 72 !

Хм, если с фрисинком, то зачем?

30 герц — это статтер-фест, который комфортным быть никак не может.

Если это реальные 30+ (а не средние с просадками) и попадаешь в диапазон фрисинка или герцовка монитора большая, то вполне комфортно можно играть на геймпаде в рпг-шки. Если задержка не волнует, то с VSync-ом можно получить хорошую плавность плавность.

altwazar ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.