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, чтоб эта команда срабатывала до запуска. В терминале работает, в ярлыке нет.

★★
20 мая 2023 г.
Ответ на: комментарий от el-d

Попробовал Payday 2. На интеграшке Intel HD 630 нативная версия выдает заметно больше FPS, чем виндовая через Proton + DXVK. Виндовая выдает где-то на 5 FPS меньше - и это не мало, учитывая, что на такой интеграшке каждый кадр на счету. На дискретной видеокарте ситуация может быть иная, но я на ней не проверял (потому что проверял на втором ПК, а там нет видюхи).

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

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

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

Просто я недавно столкнулся с тем, что у меня в 32-х битной стимовской версии Planescape: Torment пропал звук, хотя раньше работал, а стимовский рантайм изменяться не должен был. Но 64-битная версия работает нормально.

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

Понятно. А у Payday 2, как я полагаю, это как-то связано с ALSA/PulseAudio. Вначале у меня звука вообще не было, потом поставил pipewire-pulse, звук появился в видеороликах в игре, но непосредственно в игровом процессе все равно тишина. Забил на это дело, поставил виндовую версию.

Игра, кстати, конских размеров - 30 GB на скачивание и 80 GB в установленном виде, и при переключении с нативной на виндовую Steam полностью заново ее скачивал.

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

в 32-х битной стимовской версии Planescape: Torment

У меня она почему-то нормально работает только в Wine 2.22, во всех остальных версиях или тоже звука нет,или черный экран,или еще что.

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

Протестировал на Overlord, в нативной версии тоже fps выше. Просто натыкался на видео, где сравнивалась производительность Bioshock Infinite, там у человека fps был выше на wine+dxvk.

Нативный Bioshock Infinite у меня почему-то не запускается, сначала пишет что видеокарта не поддерживает opengl 4.1, потом выдаёт https://i.imgur.com/VqR24oN.png

[thread ffffffff][I][0]: Log system initialised
[thread ffffffff][I][0]: Default allowed number of simultaneously open files in the system is 1024.
[thread ffffffff][I][0]: Current memlock limit is 498409472.
[thread ffffffff][I][0]: setrlimit(RLIMIT_MEMLOCK) failed, (1) Operation not permitted
[thread ffffffff][I][25]: setup_teb_register() - using LDT entry 13
[thread 00000001][I][80]: OpenGL Core context version 4.6 detected
[thread 00000001][I][111]: OpenGL information:
[thread 00000001][I][111]:     renderer: Mesa Intel(R) HD Graphics 610 (KBL GT1)
[thread 00000001][I][111]:     vendor: Intel
[thread 00000001][I][111]:     version: 4.6 (Core Profile) Mesa 23.1.0
[thread 00000001][I][111]:     GLSL version: 4.60
[thread 00000001][I][111]:     Available texture memory (from MESA extension): 3802 MB
[thread 00000001][I][154]: TomCrypt initializing...
[thread 00000001][I][154]: TomCrypt initialized
[thread 00000001][W][155]: eON_GetProcAddress() for module 0x1750000, in PE file 'msvcrt.dll' FAILED. Proc not found at name '_get_terminate'.
[thread 00000005][W][161]: While loading bitmap, source file 'C:\media\al\HDD\Games\BioShock Infinite\Binaries\Win32\..\..\XGame\Splash\PC\Splash.bmp' wasn't there. Failing the function.
[thread 00000004][I][349]: Enumerating COM libraries...
[thread 00000004][W][366]: eON_LoadLibraryEx() couldn't load 'NVCPL.DLL', returning NULL!
[thread 00000004][W][366]: eON_LoadLibraryEx() couldn't load 'ATIMGPUD.DLL', returning NULL!
[thread 00000004][W][366]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][366]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][I][366]: D3D11CreateDevice( pAdapter = 0x9394ea0, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0xe5dfd840, FeatureLevels = 2, SDKVersion = 0x7, ppDevice = 0xe5dfd84c, pFeatureLevel = 0xe5dfdae0, ppImmediateContext = 0xe5dfd850 )
[thread 00000004][I][366]: D3D11CreateDevice( SDKVersion = 7 ) created device 0x92fbdf0 and immediate context 0x92f4700
[thread 00000004][I][371]: Direct3D -> OpenGL context information:
[thread 00000004][I][371]:     renderer: Mesa Intel(R) HD Graphics 610 (KBL GT1)
[thread 00000004][I][371]:     vendor: Intel
[thread 00000004][I][371]:     version: 4.6 (Core Profile) Mesa 23.1.0
[thread 00000004][I][371]:     GLSL version: 4.60
[thread 00000004][I][2093]: Starting to delete D3D11 device...
[thread 00000004][I][2093]: Direct3D11ImmediateDeviceContext deletion starts.
[thread 00000004][I][2121]: ===enforcing log flush===
el-d ★★
() автор топика
Ответ на: комментарий от annulen

Из любопытства: 32-битная игра?

Я так понимаю 32-битные не могут больше 2 гб использовать. Но на торрентах почему-то игры, которым нужно 2 гб и больше 32-битные выкладывают. Почему-так? Или 64 бит ещё не стандарт на винде?

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

Я так понимаю 32-битные не могут больше 2 гб использовать

4гб, а не 2, т.к. указатель - беззнаковый тип. Вот у чисто 32-битной винды ограничения были похуже.

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

Я так понимаю 32-битные не могут больше 2 гб использовать.

Да, по умолчанию лимит в 2 GB. Но есть такая штука как Large Address Aware (в Proton включается через переменнную WINE_LARGE_ADDRESS_AWARE), которая позволяет использовать 32-битным приложениям до 4 GB памяти.

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

Kron4ek ★★★★★
()
8 июля 2023 г.
Ответ на: комментарий от Kron4ek

Kron4ek.

А есть какие то гайды по оптимизации встроек в линукс? В будущем планирую пересесть на нее.

Или пустая трата времени?

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

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

Kron4ek ★★★★★
()