Как показать счетчик FPS в играх для Linux

How Show Fps Counter Linux Games



Игры для Linux получили серьезный толчок, когда Valve объявила Поддержка Linux для клиента Steam и их игр в 2012 году. С тех пор многие игры AAA и инди-игры перешли на Linux, и количество пользователей, играющих на Linux, значительно увеличилось.

С развитием игр для Linux многие пользователи начали искать правильные способы отображения счетчика кадров в секунду (FPS) в качестве наложения при запуске игр для Linux. Счетчик FPS помогает настраивать производительность запущенных игр, а также оценивать общую способность ПК играть в игры с разными разрешениями.







К сожалению, не существует единого унифицированного способа отображения счетчика FPS во всех играх для Linux, который не зависел бы от технологий, на которых работает игра. Различные средства визуализации и API имеют разные способы отображения счетчика FPS. В этом руководстве объясняются различные методы, которые можно использовать для отображения счетчика FPS в играх для Linux.



Примечания по совместимости:



  • Работает с играми OpenGL и Vulkan.
  • Работает с родными играми и Протон Proton - это уровень совместимости, включенный в Steam для запуска игр Windows в Linux. Он основан на Вино , DXVK а также D9VK проекты с открытым исходным кодом с дополнительными патчами и новыми функциями, добавленными разработчиками Valve / Wine.
  • Работает с играми, купленными в Steam, или играми сторонних производителей, добавленными в Steam пользователем.
  • Протестировано при работе со встроенными видеокартами Intel и AMD.
  • Не тестировался с картами NVIDIA, так как у меня нет карты NVIDIA. Но, согласно форумам сообщества Steam, встроенный счетчик кадров в секунду отлично работает на картах NVIDIA.

Steam для Linux включает встроенный счетчик FPS, который можно переключать в настройках. Вероятно, это один из наиболее совместимых вариантов, который работает с большинством игр для Linux. Однако у меня были некоторые проблемы с играми на движке Unity, которые не отображали встроенный счетчик FPS. Этот вариант также требует, чтобы в вашей системе была установлена ​​учетная запись Steam и клиент Steam.







Steam даже позволяет добавлять игры, не купленные в Steam, в игровую библиотеку, и встроенный счетчик FPS также работает в этих играх. Чтобы добавить игру, отличную от Steam, нажмите «Игры», а затем нажмите «Добавить игру не для Steam в мою библиотеку», как показано на снимке экрана ниже:

Перейдите к расположению файлов игры, а затем переключите опцию «Все файлы» внизу.

Выберите исполняемый файл игры и нажмите ДОБАВИТЬ ВЫБРАННЫЕ ПРОГРАММЫ, как показано на скриншоте ниже:

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

Я добавил исполняемый файл SuperTuxKart в библиотеку Steam, и здесь также работает счетчик FPS. Обратите внимание, что любые сторонние игры, добавленные в библиотеку Steam, не должны иметь пробелов в пути к файлу.

Метод 2 (LibGL)

Примечания по совместимости:

  • Работает только с играми OpenGL.
  • Работает с родными играми и играми Wine.
  • Проверена работа со встроенными видеокартами Intel и AMD с драйверами с открытым исходным кодом.
  • Не тестировался с картами NVIDIA, так как у меня нет карты NVIDIA. Однако он должен работать с графическими процессорами NVIDIA с драйверами с открытым исходным кодом.

LibGL - это библиотека Mesa, которая предоставляет API-интерфейсы OpenGL приложениям и играм, и по умолчанию она включена почти во все дистрибутивы Linux. Используя эту библиотеку и другой пакет, который создает HUD на видимом дисплее, мы покажем счетчик FPS в играх для Linux. Выполните следующую команду, чтобы установить требуемый пакет:

судоподходящийустановитьxosd-bin

Чтобы показать счетчик FPS в собственных играх для Linux, используйте приведенную ниже команду после замены / path / to / executable на свой собственный путь к исполняемому файлу игры. Вы можете узнать больше обо всех параметрах osd-cat из здесь .

LIBGL_SHOW_FPS = 1 / путь / к / исполняемому файлу 2> & 1 |
tee / dev / stderr | sed -u -n -e '/ ^ libGL: FPS = /{s/.* ([^] * ) = / 1 /; p}' |
osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top --align = left

Чтобы показать счетчик FPS в играх для Windows, запущенных в Linux через Wine, используйте приведенную ниже команду после замены / path / to / executable на свой собственный путь к исполняемому файлу игры.

WINEDEBUG = fps wine / путь / к / исполняемому файлу 2> & 1 | tee / dev / stderr |
sed -u -n -e '/ trace / s /.* приблизительно // p' | osd_cat --lines = 1 --color = желтый
--outline = 1 --pos = top --align = center

Если вы используете префикс Wine, команда будет выглядеть так (замените / путь / на / вино / префикс и / путь / к / исполняемому файлу):

WINEDEBUG = fps WINEPREFIX = / путь / к / вину / префикс вина
/ путь / к / исполняемому файлу 2> & 1 | tee / dev / stderr | sed -u -n -e '/ трассировка / с /
. * приблизительно // p '| osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top
--align = center

У этого метода есть небольшое ограничение. Хотя вы можете настроить HUD osd-cat, он остается в фиксированном положении в области отображения без учета геометрии игрового окна. На скриншоте выше счетчик FPS показан над окном игры, а не внутри него. Это не влияет на игры, работающие в полноэкранном режиме.

Метод 3 (Gallium3D)

  • Работает только с играми OpenGL.
  • Работает с родными играми и играми Wine.
  • Проверена работа с видеокартами AMD с драйверами с открытым исходным кодом.
  • Поддержка Gallium3D для Intel продолжается, поэтому пока не работает.
  • Не тестировался с картами NVIDIA, так как у меня нет карты NVIDIA. Поскольку драйвер с открытым исходным кодом NVIDIA поддерживает Gallium3D, этот метод должен работать.
  • Галлий3D - это API, который упрощает разработку драйверов для видеокарт, предоставляя набор стандартных библиотек и интерфейсов. Драйверы AMD и NVIDIA с открытым исходным кодом построены на Gallium3D.

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

    GALLIUM_HUDзнак равно'простой, fps' /дорожка/к/исполняемый файл

    Чтобы показать счетчик FPS в играх для Windows, запущенных в Linux через Wine, используйте приведенную ниже команду после замены / path / to / executable на свой собственный путь к исполняемому файлу игры.

    GALLIUM_HUDзнак равно'простой, fps' вино /дорожка/к/исполняемый файл

    Если вы используете префикс Wine, команда будет выглядеть так (замените / путь / на / вино / префикс и / путь / к / исполняемому файлу):

    GALLIUM_HUD = 'простой, fps' WINEPREFIX = / путь / к / вину / префикс вина / путь / к / исполняемому файлу

    На скриншоте выше я использую настроенную переменную GALLIUM_HUD, которая также показывает температуру графического процессора и процессора. Эта настраиваемая команда отличается для разных конфигураций ПК. Чтобы узнать больше обо всех параметрах настройки, выполните команды:

    судоподходящийустановитьстоловые приборы
    GALLIUM_HUDзнак равнопомощьglxgears

    Для справки, вот пользовательская команда, которую я использовал на скриншотах выше:

    GALLIUM_HUDзнак равно'простой, fps; sensor_temp_cu-amdgpu-pci-1c00.temp1;
    сенсоры_temp_cu-k10temp-pci-00c3.Tdie '
    /дорожка/к/исполняемый файл

    Метод 4 (таблица оверлея Vulkan)

    Примечания по совместимости:

    • Работает только с играми Vulkan.
    • Работает только с Ubuntu 19.10+ и другими дистрибутивами, имеющими последнюю версию Mesa с наложенным слоем vulkan.
    • Работает с собственными играми и играми Steam Proton, работающими с поддержкой DXVK / D9VK.
    • Работает с играми Wine, работающими с библиотеками DXVK / D9VK.
    • Рабочий статус Wine’s неизвестен Vkd3d . Поскольку это слой Vulkan, он должен работать с чем угодно, если Mesa построена с поддержкой VK_LAYER_MESA_overlay.
    • Протестировано при работе с видеокартами AMD и интегрированными картами Intel с драйверами с открытым исходным кодом.
    • Не тестировался с картами NVIDIA, так как у меня нет карты NVIDIA. Поскольку это слой Vulkan, он должен работать с чем угодно, если Mesa построена с поддержкой VK_LAYER_MESA_overlay.

    Накладной стол Vulkan - это новый слой Vulkan, добавленный в последние сборки Mesa. Он отображает различную информацию о запущенном приложении с помощью наложения.

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

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = позиция = верхний левый / путь / к / исполняемому файлу

    Чтобы показать счетчик FPS в играх для Windows, запущенных в Linux через Wine и DXVK, используйте приведенную ниже команду после замены / path / to / executable на свой собственный путь к исполняемому файлу игры:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = позиция = верхнее левое вино / путь / к / исполняемому файлу

    Если вы используете префикс Wine, команда будет выглядеть так (замените / путь / на / вино / префикс и / путь / к / исполняемому файлу):

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay
    VK_LAYER_MESA_OVERLAY_CONFIG = позиция = верхний левый
    WINEPREFIX = / путь / к / вину / префикс вина / путь / к / исполняемому файлу

    Метод 5 (DXVK HUD)

    Примечания по совместимости:

    • Работает только с играми Vulkan, запущенными в Wine и Proton с библиотеками DXVK / D9VK.
    • Протестировано при работе с видеокартами AMD и интегрированными видеокартами Intel с драйверами с открытым исходным кодом.
    • Не тестировался с картами NVIDIA, так как у меня нет карты NVIDIA. В исходном коде есть коммиты, в которых упоминается поддержка NVIDIA, поэтому этот метод должен работать.

    DXVK предоставляет уровень перевода на основе Vulkan для D3D10 и D3D11, позволяющий пользователям играть в игры Direct3D 10/11 в Linux. D9VK использует бэкэнд DXVK, чтобы предоставить дополнительную реализацию Direct3D9, которую можно использовать для игр, построенных на D3D9.

    Чтобы показать счетчик FPS в играх DXVK, запущенных в Linux через Wine, используйте приведенную ниже команду после замены / path / to / executable на свой собственный путь к исполняемому файлу игры:

    DXVK_HUD= кадров в секундувино /дорожка/к/исполняемый файл

    Если вы используете префикс Wine, команда будет выглядеть так (замените / путь / на / вино / префикс и / путь / к / исполняемому файлу):

    DXVK_HUD= кадров в секундуWINEPREFIXзнак равно/дорожка/к/вино/приставкавино /дорожка/к/исполняемый файл

    Это знаменует конец этой публикации. В заключение я хотел бы упомянуть одну небольшую деталь, упущенную выше. Все описанные выше методы, отличные от Steam, также будут работать для игр Steam. Вы должны заменить / путь / к / исполняемому файлу или вино / путь / к / исполняемому файлу или WINEPREFIX = / путь / к / вино / префикс wine / путь / к / исполняемому файлу на% command% в тех же командах, которые использовались выше. Просто добавьте полную команду для запуска параметров в свойствах игры внутри приложения Steam, как показано на скриншоте ниже: