Причина низкого fps в играх на linux графическая система линукса или отсутствие оптимизации игр под него?
Лор. Вот поставил я себе metro 2033 на свой arch и что я наблюдаю? Я наблюдаю низкий фпс и непонятные фризы на ровном месте иногда, хотя на оффтопике все идет гораздо более гладко и спокойно. В том же cs go фпс ниже чем на оффтопике. да вообще во всех играх какие ставил фпс ниже. В чем причина? Издатели не оптимизируют игры, драйвера не заточены под игры или графическая подсистема линукса такая кривая?
PS: карточка nvidia gtx660TI с проприетарными драйверами.
Линукс заточен под консоль и фрейм-буфер ещё с 90-х годов.
графическая подсистема линукса такая кривая
1. Часто игры работают через целый набор прослоек, а не нативно.
2. Порт делает только часть разрабов, причем самые криворукие из них.
На вяленом фпс должен больше быть?
если у тебя низкий фпс в современных играх — ты покупаешь новую видеокарту
если у тебя низкий фпс на linux — ты покупаешь windows
ОС — это сраный инструмент для запуска и нормальной работы приложений. и ты должен выбирать инструмент под задачи, а не наоборот, Карл.
Отключи композитинг с эффектами, если оно включено.
PS: карточка nvidia gtx660TI с проприетарными драйверами.
Сам спросил — сам ответил.
Я же сказал, что в оффтопике фпс выше, гораздо. Или по твоему проприетарные драйверы тормозят ее?
Иксы тут в принципе не могут быть причиной, так как в иксах рендеринг идёт напрямую.
Игры на Vulkan на линуксе работают ничуть не хуже.
На вяленом фпс должен больше быть?
Конечно! И все DX11 игры без прослоек всяких будут работать. А еще HL3 эксклюзивно под вяленый релизнут.
Игры на Vulkan на линуксе работают ничуть не хуже.
А эксклюзивные фото Линуса Торвальдса и Поттеринга в качестве обоев раб.стола будут? Если будут, то прям сейчас поставлю.
Конечно, на них они вместе катаются на водных лыжах и пьют пиво в пабе(На заднем плане Столлман лапает баб за разные выпуклости).
Все три, да. Но скоро их будет гораздо больше.
А вот у меня в CS GO наоборот FPS выше, чем в десятке. Да и в метро тоже. Карта GTX 760. У меня KDE, и в играх композитинг вырубается. Так что копни в эту сторону. И помни — большинство игр под Линукс не являются нативными портами. Иксы вносят свою лепту, кто это отрицает — пусть зайдёт в блог разработчика KWin и почитает его статью о будущем Linux-игр.
На вяленом фпс должен больше быть?
Да, если игра его поддерживает. Из игровых библиотек его поддерживает SDL 2.0.6, из движков — Unity (бета вроде какая-то)
А как композитинг в последних кедах отключить?
Параметры системы — Экран — Обеспечение эффектов — поставить галочку на «Разрешать приложениям блокировать режим с графическими эффектами». Это позволит игре самой вырубить композитинг при старте. Если игра этого сделать не может — то вырубить их там же. Вообще, можно комбинацией Shift + Alt + F12, но вот у меня она что-то не срабатывает.
Причина низкого fps в играх на linux
кривые руки пользователя и (кривые руки/злой умысел) игрушкописателя.
Игрухи с x-ами связаны чуть менее чем никак. X-ы лишь предоставляют окно, поверх которого будет выводится оверлей с результатом работы GPU. На этом, всё общение игрухи с х-ами заканчивается. Линуксячий OpenGL при тех же равных быстрее вендового из-за дебильного устройства вендового OpenGL. Из-за дебильности вендовой реализации OpenGL игрушкописатели пользуют ублюдочный DirectX вместо нормальных кросс-платформенных способов доступа к GPU. А эмуляция DirectX на линуксе стоит ресурсов.
Поэтому, с игрухами — сиди на своей венде и не жужжи. Их пишут вендузятники для вендузятников. Или пинай разработчиков, чтобы отказались от сраного DirectX и писали на чём-то приличном, но это с большой вероятностью никаких результатов не даст.
ЗЫ: Нормальный софт, а не игрухи, использующий GPU, как правило, на линухе работает быстрее, тот же блендер взять.
Производительность CS GO и Dota 2 на Linux оказалась выше чем на Windows 10
реклама
Практически каждый слышал о таких играх как CS GO и Dota 2. Это главные проекты компании Valve, которые собирают многотысячную аудиторию и приносят компании огромную прибыль. Кроме этого, это одни из главных мировых киберспортивных дисциплин. Ежегодно по CS GO и Dota 2 проводится множество турниров, а также грандиозные киберспортивные мероприятия от Valve с огромными призовыми фондами — CS:GO и Dota Major. Обе игры построены на базе движка Source с тем отличием, что Dota 2 основана на обновленном Source 2, который лучше использует возможности современных систем, а в CS: GO до сих пор используется первая версия Source, несколько улучшенная и модифицированная версия того же движка, что использовался и в CS Source. Поэтому CS:GO не может похвастаться хорошей многоядерной оптимизацией и поддержкой современных графических API. В свое время компания Valve провела большую работу по портированию движка Source на Linux, внедрив в него поддержку рендеринга через OpenGL. Оптимизация была настолько хорошей, что производительность Source игр на Linux оказалась выше чем на Windows.
YouTube канал FlightlessMango опубликовал отчет о тестировании CS GO и Dota 2 на системах Windows и Linux. В Windows в качестве графического API использовался DirectX и Vulkan, а на Linux использовался OpenGL, так же игры на Linux были протестированы в Wine с реализацией DirectX поверх API Vulkan с помощью прослойки DXVK.
В CS GO производительность Linux OpenGL оказалась на 15% выше, чем в Windows с DirectX 9. После этого было ожидаемо увидеть снижение производительности при запуске игры через Wine с DXVK, оно составило около 7%. Вырос и минимальный FPS, который на тестовой карте Ulletical наблюдается в дыму. Многие владельцы слабых компьютеров жалуются на просадки FPS в дыму и при использовании зажигательных и светошумовых гранат в CS GO. В поисках лучшей производительности можно попробовать CS GO на Linux.
реклама
В Dota 2 Linux OpenGL разделил победу с Windows DirectX 11, остальные варианты показали производительность от 2 до 30% ниже.
реклама
Производительность CS GO на Linux оказалась лучше, чем в Windows 10. Производительность Dota 2 OpenGL и DirectX 11 примерно одинакова, по графику FPS в некоторых сценах OpenGL лучше. Но нужно отметить, что игроки, предпочитающие сторонние киберспортивные платформы, такие как FACEIT, не смогут играть на них с Linux. Это связано с тем, что античит-программы на этих платформах поддерживают только Windows. Есть ли вероятность, что в будущем античит-системы придут к общему знаменателю — созданию единого Linux дистрибутива для киберспортивных игр, полностью защищенного от интеграции различных мошеннических программ? Если это и произойдет, то очень нескоро. А сейчас можно порекомендовать любителям CS GO и Dota 2, испытывающим проблемы с производительностью на старых компьютерах, попробовать Linux. Возможно, это поможет увеличить FPS, особенно в CS GO.
Блог начинающего линуксоида.
советы, руководства, инструкции.
Страницы
пятница, 4 декабря 2015 г.
Как увеличить производительность игр в Linux
В данной заметке я опишу 5 способов увеличения производительности игр в Linux. Особенно это будет актуально для «виндовых» игр, запущенных в Wine.
1) Свежие драйвера на видеокарту
Первый и самый очевидный способ. В свежие версии драйверов и компонентов графического стека, вносятся новые оптимизации, устраняются недоработки и так далее. Для Ubuntu есть несколько замечательных репозиториев, которые предоставляют свежие графические драйверы:
Самый популярный PPA-репозиторий со свежайшим графическим стеком. Соответственно, используете вы его на свой страх и риск, так как в нём нет ничего стабильного. В этом репозитории находятся свежие версии Xorg, Mesa, свободных графических драйверов и так далее. Подключение:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update && sudo apt-get upgrade
В этом репозитории находятся более стабильные, но одновременно свежие версии свободных графических драйверов, которые также имеют поддержку Wine Gallium-Nine и многое многое другое. Подключение:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update && sudo apt-get upgrade
Proprietary GPU Drivers
Данный репозиторий — новичок, но настоящий must have для всех, у кого видеокарта Nvidia. Здесь находятся самые свежие версии проприетарного драйвера для этих видеокарт. Подключение:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
Далее откройте менеджер драйверов, и там выберите желаемую версию драйвера
2) Установка патченого ядра.
В некоторых ситуациях, увеличить производительность игр, помогает установка модифицированного ядра. К примеру ядро Linux-RT (ядро реального времени), на моей конфигурации. дало мне прибавку в 12 FPS в некоторых играх. Данное ядро есть в стандартных репозиториях Ubuntu, и ставится командой:
sudo apt install linux-image-rt
Также положительный эффект могут дать ядра PF-Kernel и Zen-Kernel, о которых я говорил в недавней заметке.
3) Потоковая оптимизация (только для Nvidia с проприетарным драйвером).
Nvidia — лучший друг Линуксоида, когда речь заходит о 3D и играх. И начиная с драйвера версии 310, в нём появилась возможность серьёзно увеличить производительность, включив многопоточный рендеринг. По умолчанию данная опция не включена, так как есть приложения, которые не работают с ней (например игра Metro Last Light). Включить эту опцию можно следующими способами:
- Вручную: в терминале командой export __GL_THREADED_OPTIMIZATIONS=1 ;
- Автоматически при запуске системы: открыть файл /etc/profile и в конец вставить строку __GL_THREADED_OPTIMIZATIONS=1 ;
- Запускать приложение с этим параметром: например __GL_THREADED_OPTIMIZATIONS=1 steam , либо в самом Steam указать данную опцию в параметрах запуска игры: __GL_THREADED_OPIMIZATIONS=1 %command%
Прирост производительности составляет от 15 до 45 кадров в секунду, в зависимости от игры. Пригодится для Wine. Кстати о Wine. В Winetricks очень желательно выставить опцию GLSL в значение Disabled.
4) Запуск в отдельном X-сервере (или в отдельных иксах).
Это давний способ увеличить производительность игры, а также решить проблему со сворачиванием игры (не все они нормально сворачиваются, некоторые перестают работать. В прочем, для Windows проблема также актуальна). Для этого:
sudo nano /etc/X11/Xwrapper.config
Меняем параметр allowed_users=console на allowed_users=anybody и сохраняем. Это нужно для того, чтобы можно было запускать X-сервер от пользователя, а не root. Далее необходимо добавить себя в группу audio, иначе звука в отдельных иксах не будет:
usermod -G audio -a имяпользователя
Далее редактируем файл
/.Xauthority, для этого в консоли:
xauth
list
Увидим что-то вроде
blind.local:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
[fe80::204:61ff:fe9e:c083]:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
blind/unix:0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
Буквенно-цифровое окончание будет другим.
Пишем там же, вставив своё значение:
add :1.0 MIT-MAGIC-COOKIE-1 e087ead1f80cd5d35b6bd273222d1feb
Запуск производится следующей командой:
xinit /путь/до/исполняемого/файла/игры $* — :1
Например: xinit /usr/games/steam $* — :1
Запустится отдельная сессия X, и запустится указанное приложение. Переключение обратно в режим рабочего стола производится комбинацией Ctrl+Alt+F7, вторые иксы будут (в моём случае) на F2. Альтернативный вариант: переключиться на любую свободную консоль (F1-F6), залогиниться, и запустить приложение командой:
startx /путь/до/исполняемого/файла/игры — :1
Однако такой способ неудобен тем, что в случае если игра имеет лаунчер, или какие-то дополнительные окна при запуске, будут проблемы с их отрисовкой. Да и запускать это всё руками как-то муторно. Исправить эту проблему поможет любой легковесный оконный менеджер. Например Openbox. Устанавливаем:
sudo apt install openbox
Теперь создаём файл:
у вас запустится оконный менеджер Openbox, из которого вы уже можете запустить любое приложение. Если вы хотите, чтобы например Steam стартовал автоматически при запуске Openbox, сделайте так:
Сохраните. Теперь Стим будет запускаться автоматически, а вы можете легко перключаться между сеансами. ВНИМАНИЕ: у себя в KDE на Debian 8, я обнаружил баг, при котором после перехода в основные иксы и обратно на дополнительные, появлялись сильнешие графические артефакты в некоторых играх, а сам Стим отрисовывался кусками. Способа решения проблемы я не нашёл. Если вы знаете — напишите в комментариях, я добавлю в статью.
Соответственно, вместо Steam, вы можете добавить PlayOnLinux, если запускаете виндовые игры через него
5) Отключение графических эффектов (композитинга) для полноэкранных приложений.
Если вы используете KDE или Cinnamon, рекомендую отключить полноэкранный композитинг. В KDE: Параметры системы — Эффекты — Дополнительно — Поставить галочку на «Отключить графические эффекты для полноэкранных окон»
Для Cinnamon: Настройки — Общие — Отключить композитинг для полноэкранных окон
Вот и всё. Конечно это не избавит от проблемы кривых портов игр. Там уже вина разработчика игры. Но тем не менее, всё описанное здесь, неоднократно проверено и даёт весьма нехилый прирост производительности. Приятных игр!