LINUX.ORG.RU
ФорумGames

Оптимизация игор

 , ,


1

2

У меня 4 гб озу и встроенная видеокарта. Апгрейдить не планирую, для работы хватает, а играю редко. Возникли некоторые вопросы по оптимизации.

Через wine запускаю с такими параметрами. Скопировал из скрипта запуска какой-то игры на рутрекере. Актуальны ли сейчас эти параметры? Или может добавить какие? Использую proton и dxvk

export script="$(readlink -f "${BASH_SOURCE[0]}")"
export scriptdir="$(dirname "$script")"
export WINEESYNC=1
export WINEFSYNC=1
export XDG_CACHE_HOME="${scriptdir}"/cache
export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1
export __GL_SHADER_DISK_CACHE_PATH="${XDG_CACHE_HOME}"
export DXVK_LOG_PATH="${XDG_CACHE_HOME}"/dxvk
export DXVK_STATE_CACHE_PATH="${XDG_CACHE_HOME}"/dxvk
export DXVK_CONFIG_FILE="${scriptdir}"/dxvk.conf
export DXVK_LOG_LEVEL=none
export DXVK_HUD="fps"
export DXVK_ASYNC=1
export VKD3D_DEBUG=none
export VKD3D_SHADER_DEBUG=none
export STAGING_SHARED_MEMORY=1
export ULIMIT_SIZE=1000000
export WINEDLLOVERRIDES="winemenubuilder.exe="
export WINE_LARGE_ADDRESS_AWARE=1
export WINE_FULLSCREEN_FSR=1
export WINE_FULLSCREEN_FSR_STRENGTH=2

Gamemode что-то полезное делает? Я разницы не заметил, но может на каких-то играх она есть.

Steam жрёт довольно много памяти. Можно как-то это исправить, может альтернативные клиенты какие есть? Или может как-то можно без steam запускать.

Как простым способом выключать композитор для xfwm4 при запуске игр? Или может менять его на openbox при запуске игр для экономии памяти? Сейчас добавляю в скрипт запуска для каждой игры xfconf-query -c xfwm4 -p /general/use_compositing -s false, но может можно проще. Ещё не получается поправить ярлык для steam, чтоб эта команда срабатывала до запуска. В терминале работает, в ярлыке нет.

★★
Ответ на: комментарий от mrjaggers

но в любом случае этот gamemod просто пример васянского вендузятничества пока. Волшебная штука которая делает ЗБС для ИГОРЕЙ.

У меня при виде его кода приходят в голову следующие ключевые слова: оверинжиниринг, неправильный выбор языка под задачу, кривая архитектура. Все операции, которые он выполняет, можно сделать, вызвав внешние утилиты с нужными параметрами, а по завершению работы откатив все обратно таким же способом, вместо этого видим сишную простыню, которая делает то же самое, но даже не через system, а методом «закат солнца вручную».

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

annulen ★★★★★
()
Ответ на: комментарий от el-d

Кстати, какое DE лучше для игор…

Если вейленд и нужен vrr, то любое кроме гнома (скоро и там будет). Если vrr нет, то любое сойдет.

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

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

проверял на Мате
их дефолтный композитор (Х-чего-то-там) встроенный в виндоу-манагер (ихний форк Метасити второгномовского), сломал мне Warhammer 3. В смысле тот подтормаживать стал.
Сменил на picom - вроде на глаз стало как без композитинга (не подтормаживает).

так что старые/неудачные композиторы вполне могут сломать.

Больше проверять не стал. Всегда сижу без композитинга. Страдаю без теней от окон/меню (они реально повышают эргономичность особенно на тёмной теме, остальные эффекты больше похожи на антифичи.. некоторые так точно), но страдание с композитингом обычно больше (боже какие уродливые тени по дефолту у этого picom’а пздц)… Это к теме качества софта… Винда ХРюндель 20+ лет назад умела в фейк-тени и мы ужасались что ей надо ЦЕЛЫХ 128 метров памяти. Вот такой вот прогресс у этих ваших вялендо-композитнго-пейсателей.

mrjaggers
()
Последнее исправление: mrjaggers (всего исправлений: 2)

Отключение log и debug должно помогать, потому что игры однопоточные приводят и ожиданию ввода-вывода.
В изменении директорий кэша не нахожу смысла.

ya-shy4y
()
Ответ на: комментарий от el-d

Нужно переменную WINE указать, в ней написать путь до бинарника wine, winetricks это учтет. Например:

$ WINE=~/wine-8.1-amd64/bin/wine winetricks d3dx9
Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от Kron4ek

Спасибо, разобрался) добавил в bashrc путь к proton.

Есть ещё пара вопросов:

При прочих равных настройках графики что быстрее через dxvk работает — dx9 или dx10/11?

Есть ли какая-то разница в том, какой префикс, 32 или 64 бита? 32 сможет только 2 гб озу сможет использовать?

Dirt 2 кое как завёл, но после выхода не запускается. Надо удалить конфиг с графическими настройками, даже если я их не менял, тогда запустится. Как-то странно, куда примерно копать?)

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

При прочих равных настройках графики что быстрее через dxvk работает — dx9 или dx10/11?

Не сравнивал их, так что не могу сказать. Зато могу сказать, что в DX9 играх Gallium Nine на встройке работает обычно лучше чем DXVK (но понятно, что это и от игры может зависеть), во всяком случае у меня так было. С Proton он не работает, если что, нужно обычные сборки Wine использовать. Жаль, что для D3D11 нет Gallium Eleven.

Есть ли какая-то разница в том, какой префикс, 32 или 64 бита? 32 сможет только 2 гб озу сможет использовать?

Разницы нет. Если игра 32-битная, то она больше 2-3 GB использовать не сможет, даже если ты ее в 64-битном префиксе запустишь. Один фиг, библиотеки она будет 32-битные использовать.

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

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

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

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

проблема была из-за кэша dxvk. сделал в скрипте его очистку при каждом запуске

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

Не сравнивал их, так что не могу сказать. Зато могу сказать, что в DX9 играх Gallium Nine на встройке работает обычно лучше чем DXVK (но понятно, что это и от игры может зависеть), во всяком случае у меня так было. С Proton он не работает, если что, нужно обычные сборки Wine использовать.

Native Direct3D 9 will be unavailable. err:d3d9nine:d3dadapter9_new Your display driver doesn’t support native D3D9 adapters

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

OS: Debian GNU/Linux bookworm/sid x86_64
Kernel: 6.1.0-3-amd64
CPU: Intel Celeron G3930 (2) @ 2.900GHz
GPU: Intel HD Graphics 610
mesa 22.3.3-1

кстати заметил ещё, что на fps влияет больше не качество графики, а разрешение экрана

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

Тебе нужно установить libd3dadapter9-mesa и libd3dadapter9-mesa:i386.

а разрешение экрана

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

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

Зато могу сказать, что в DX9 играх Gallium Nine на встройке работает обычно лучше чем DXVK (но понятно, что это и от игры может зависеть), во всяком случае у меня так было.

Протестил, в splinter cell 3 жуткие артефакты, даже героя не видно. В saints row 3 fps ниже в 2 раза по сравнению с dxvk. Остальное не запустилось) В терминале было написано, что Native Direct3D 9 включен.

Возможно с новым wine и новой mesa некорректно работает, на гитхабе последнее обновление 2 года назад.

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

К сожалению, да, он не со всеми играми корректно работает, дело тут не в версии Wine. Я недавно его проверял на The Witcher и World of Warcraft 3.3.5a - в них корректно работал с новой версией Wine и Mesa.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)

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

В параметры запуска ядра добавить:

mitigations=off i915.mitigations=off

На свой страх и риск, естественно.

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

Спасибо, попробую) На десктопе же это особой опасности не представляет?

Интересно, есть ли сейчас значительная разница в производительности по сравлению с оффтопиком? Где-то читал, что некоторые игры сейчас даже быстрее работают, чем на оффтопике

Разницы нет. Если игра 32-битная, то она больше 2-3 GB использовать не сможет, даже если ты ее в 64-битном префиксе запустишь. Один фиг, библиотеки она будет 32-битные использовать.

А wow64 не может замедлять работу?

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

Спасибо, попробую) На десктопе же это особой опасности не представляет?

Не знаю. Но я их отключаю с тех пор, как появилась такая возможность. Если кто-то и эксплуатировал на мне эти уязвимости, то следов не оставил никаких.

Интересно, есть ли сейчас значительная разница в производительности по сравлению с оффтопиком? Где-то читал, что некоторые игры сейчас даже быстрее работают, чем на оффтопике

Только интеграшек Intel это вряд ли касается. Когда я последний раз проверял, на Intel HD 630 производительность была чуть ли на два раза выше на винде по сравнению с Linux + DXVK, хоть и давно это было.

А wow64 не может замедлять работу?

Нет.

Kron4ek ★★★★★
()
Ответ на: комментарий от el-d

Где-то читал, что некоторые игры сейчас даже быстрее работают, чем на оффтопике

Подозреваю, что часть этих легенд связана с тем, что в Linux есть реально работающий кэш файловой системы, а в винде нет. Если какая-то игра в процессе работы подгружает данные с диска и периодически обращается к одним и тем же файлам, то в линуксе все эти файлы (при достаточном объеме свободной оперативки - с твоими 4 гб этого кайфа полностью не ощутить) будут находиться в кэше и читаться со скоростью RAM-диска. Особенно значительна разница для чтения файлов с HDD.

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

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

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

Еще имел дело с CI сборками на виндовых машинах, и там наблюдался тот же эффект: уменьшение количества повторных обращений к файлам давало заметное ускорение на винде и копеечное на линуксе.

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

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

Это как запустить в фоне торрент-клиент и раздавать кучу торрентов - гарантированно весь кэш ФС ими засирается со временем, приходится через cgroup ограничивать.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 2)

У меня 4 гб озу и встроенная видеокарта.

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

Не ну игори года так до 2011 можно будет играть, но все остальное… извольте выложить бабки на нормальный конфиг, или купить сосноль «Икс Коробка Сириес Эс как доллар маска инкогнито дрочить в подъезде»

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

Вставлю свои 5 копеек. На AMD вообще все замечательно работает, особенно на карточках с RDNA архитектурой. Я вот апгрейднулся до RX6700 и вообще прекрасно себя чувствую. Киберпанк прохожу. Правда со звуком у него беда какая-то. Трещит в некоторых локах, но как я понял и на винде есть такая проблема. Мол шота там с частотой дискретизации надо шаманить, но мне лень, я просто куплю аудиокарту нормальную, и поставлю pipewire как руки дойдут

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

Браза, с такими аппаратными мошьностями даже под виндой будет тяжко, а ты собрался еще и на линуксе гонять. Никакая оптимизация не поможет, она же не на волшебстве работает. Не ну игори года так до 2011 можно будет играть, но все остальное… извольте выложить бабки на нормальный конфиг, или купить сосноль «Икс Коробка Сириес Эс как доллар маска инкогнито дрочить в подъезде»

Учитывая, сколько я играю, не вижу смысла тратиться на игровой комп или консоль. И до 11-12 года выходили хорошие игори с неплохой графикой) Для меня в Half-Life 2 графика вполне приличная. Я в неё решил поиграть года 3 назад, так как в своё время не прошёл. Продолжил только через 2 года и опять забросил) Может через годик и пройду. Биошок первый вот начал в том году и тоже забросил. И дед спейс 2 тоже.

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

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

протестил, эффект нулевой)

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

Раз уж речь о винде зашла. Как сейчас на онтопике дела с поддержкой ntfs? Лет 10 назад при использовании ntfs жутко нагружался цп. Думаю жене предложить линукс в дуалбуте. А то у неё ноут жутко тормозит, игры работают нормально, тормозит именно сама система и браузер. Ssd нет, но у меня, когда ssd не было, так не тормозило. И если сделать дуалбут, десятка его не снесёт?

Кстати, запуск игр с hdd а не ssd влияет на производительность? Или только на скорость загрузки? Я игры на hdd храню, ssd маленький.

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

Как сейчас на онтопике дела с поддержкой ntfs? Лет 10 назад при использовании ntfs жутко нагружался цп.

Сейчас в ядре есть нативный NTFS драйвер, у которого все должно быть гораздо лучше в плане нагрузки на процессор. Раньше был только fuse-драйвер.

И если сделать дуалбут, десятка его не снесёт?

Если в установщике винды раздел с Linux не удалять, то не должна, во всяком случае у меня не сносила. Но она точно удалит загрузчик, придется заново ставить.

Хотя ты же будешь Linux ставить в дуалбут, а винда уже установлена, верно? Тогда проблем не должно быть.

Кстати, запуск игр с hdd а не ssd влияет на производительность? Или только на скорость загрузки? Я игры на hdd храню, ssd маленький.

Влияет только на скорость запуска, загрузки и на скорость подгрузки ассетов в играх. На производительность как таковую не влияет (максимальный FPS не изменится, разумеется), но если игра большая по объему, то во время подгрузки ассетов с HDD могут быть подтормаживания. Например, в Howarts Legacy это очень заметно, в The Witcher 3 тоже, ну и в Atomic Heart.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 3)
Ответ на: комментарий от el-d

Как сейчас на онтопике дела с поддержкой ntfs?

В ядро приняли Ethersoftовский «полноценный» ntfs драйвер, с чтением и записью, тот который они раньше продавали (собсно и сейчас продают). У него проблемы с юзерспйсными сервисными утилитами для обслуживания и ремонта, ЕМНИП они доступны в полном объёме только при покупке драйвера, но сам по себе драйвер и без них нормально работает и быстродействие такое же как у нативных линуксовых FS. В параметрах mount нужно указывать ntfs3 для использования Ethersoftовского драйвера.

В качестве альтернативы по прежнему доступен ntfs-3g, юзерспейсная реализация драйвера через FUSE. Она использовалась как основная раньше и она по очевидным причинам не особенно шустрая. Этот драйвер выбирается указанием ntfs-3g в качестве типа FS для mount.

Важно то что для хранения и запуска игр через wine или его порт proton ntfs НЕ ГОДИТСЯ, ни в какой его реализации. Так что организовать совместное с виндоуз хранилище игр на ntfs не выйдет, в github protonа и steam полно багов причиной которых является использование ntfs в качестве хранилища для игр в линукс.

Ещё один важный момент - винда нынче при выключении не выключается, а гибернирует по умолчанию. Соответственно не размонтирует свою файловую систему и линукс видит её как «грязную», ну и наоборот, после принудительного монтирования «грязной» FS линуксом винда будет воспринимать её как испорченную. В конечном итоге всё это приводит к развалу FS, в котором многие обвиняют «кривой» драйвер. Он тут ни при чём, просто нужно где то там в Винде, в реестре, или в настройках, я не помню, отключить эту «фичу». Кажется она называется «быстрый запуск», или «быстрый старт», как то так, Гуголь знает...

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

Верно, забыл напрочь про него.

Важно то что для хранения и запуска игр через wine или его порт proton ntfs НЕ ГОДИТСЯ, ни в какой его реализации. Так что организовать совместное с виндоуз хранилище игр на ntfs не выйдет, в github protonа и steam полно багов причиной которых является использование ntfs в качестве хранилища для игр в линукс.

Там проблема именно с хранением префиксов Wine на NTFS, сами игры можно хранить на NTFS, обычно с этим проблем нет.

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

Если игра использует стримминг текстур - очень сильно влияет, разница между hdd и ssd ощутима. Тут дело даже не в скорости последовательного чтения, обычно ресурсы в виде одного большого файла лежат и не фрагментированы, тут суть в многопоточном чтении, с которым SSD, особенно NVMe, справляются значительно лучше «механики».

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

Не правда - был ядерный драйвер «ntfs», но он умел только чтение.

И он был таким говном что им никто не пользовался, даже для чтения, потому что он и в чтение плохо умел, так как понимал только «древние» версии ntfs. Поэтому его существование как бы игнорировалось.

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

Разница дейсвительно ощутима, но не так, чтобы c HDD невозможно было играть. Даже тот же Hogwarts Legacy недавний, который огромен и довольно паршиво на HDD работает, все равно играбелен. Но это с 7200 RPM HDD, на 5400 совсем все печально, наверное.

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

Ну, на киберпанке это визуально заметно, даже в GTA5 с модом Redux подлагивания при загрузке текстур с HDD ощутимы. Играть то можно, но некомфортно... Кстати помогает подпереть HDD каким нибудь мелким SSD через bcache, текстуры достаточно быстро на SSD кешируются и не лагают.

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

Даже тот же Hogwarts Legacy недавний, который огромен и довольно паршиво на HDD работает, все равно играбелен.

Ну с моей видеокартой подобные игры неактуальны) Даже GTA 4 2008 года тормозит. Хотя она у меня и на винде тормозила на относительно мощном компе для того времени. И у игр на Unreal 3 fps низкий.

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

Там проблема именно с хранением префиксов Wine на NTFS, сами игры можно хранить на NTFS, обычно с этим проблем нет.

Это верное замечание. Сам префикс не должен на ntfs находиться, а сама игра и её ресурсы вполне могут быть на ntfs, они всё равно оттуда только читаются, вся запись и прочая «магия» происходит в профиле, который в префиксе...

Jameson ★★★★★
()
Ответ на: комментарий от el-d

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

Второй подвох со «скрытой гибернацией» относительно новый и появился с десятой версии винды ЕМНИП, поэтому для многих до сих пор является «откровением». Лечится снятием одной галочки или исправлением одной записи в реестре, инфы в гугле полно...

И собственно всё, других проблем нет...

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

Там проблема именно с хранением префиксов Wine на NTFS, сами игры можно хранить на NTFS, обычно с этим проблем нет.

Через staging tkg 8.2 не запускаются экзешники, если префикс на одном диске, а экзешник на другом. На proton запускались. Вообще мне не особо критично, на другой диск перенести недолго)

el-d ★★
() автор топика
Ответ на: комментарий от Kron4ek

Разницы нет. Если игра 32-битная, то она больше 2-3 GB использовать не сможет, даже если ты ее в 64-битном префиксе запустишь. Один фиг, библиотеки она будет 32-битные использовать.

В таком случае есть ли вообще смысл в 32-битных префиксах? Разве что размер чуть меньше.

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

В таком случае есть ли вообще смысл в 32-битных префиксах? Разве что размер чуть меньше.

Нет. Кроме как для редких гипотетических случаев, когда приложение не работает в 64-битном префиксе.

с чем, кстати, может быть связан более высокий fps в staging tkg 8.2? В wine что-то добавили, патчи какие в tkg, или proton как-то замедляет?

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

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
29 марта 2023 г.