LINUX.ORG.RU
ФорумGames

Wine+DXVK - что задает FPS=50?

 ,


0

2

Использую WINE из репозитория Fedora 38 (wine-8.6 + dxvk-1.10), в компьютере используется nvidia GTS 1060 (6Гб). Пытаюсь заставить работать Atomic Heart на 144 Гц (дисплей поддерживает до 165 Гц). В командной строке запуска использовал разные параметры, заметный эффект есть только от DXVK_HUD=fps (ну другое, вплоть до full). А вот такой параметр: DXVK_FRAME_RATE=60 не производит эффекта (так же как и PROTON_HIDE_NVIDIA_GPU=0 PROTON_ENABLE_NVAPI=1 и прочие). Собственно, меня напрягает следующее: когда игра запускается, то дисплей сообщает, что его настроили на 2650х1440х50, fps от DXVK_HUD показывает, что ФПС колеблется, но никогда не превышает 50 (что настройки ультра, что самые низкие). Если запустить эту же игру (тот же билд) от Positive Records (https://positiverecords.ru/pages/photoshop/games_1641.html), там используется отдельная сборка wine+dxvk и скрипт от Kron4ek’а, то при той же производительности игры (по ощущению и по fps от DXVK_HUD) при тех же ее настройках, дисплей настраивается на 2560х1440х60 Гц (и больше никак). И вот я хочу понять - что именно в wine+dxvk задает FRAME_RATE дисплею? Куда нужно залезть? В скрипте Kron4ek’а не нашел ничего активного, не заремленного, что бы могло задавать ФПС.

что именно в wine+dxvk задает FRAME_RATE дисплею?

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

Если в игре включена вертикальная синхронизация, то FPS будет ограничен частотой обновления экрана. Соответственно, можно отключить вертикальную синхронизацию и FPS будет не ограничен (если в самой игре нет жесткого ограничения FPS).

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

дисплей настраивается на 2560х1440х60 Гц (и больше никак)

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

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

И еще через gamescope можно задать нужную герцовку.

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

В самой ОС настроено 144 Гц (так задано в настройках нвидиа, и это подтверждается информацией в дисплее). Вертикальная синхронизация в игре по умолчанию включена, и я ее не отключал, считая, что это хорошо. В дисплее есть параметр FSR, но я с ним не разбирался. В настройках самой игры установлен предел FPS на уровне 120, я его пробовал туда-сюда менять, как-то не почувствовал разницы. Оконный режим неинтересен с точки зрения погружения в игру. Как я уже писал выше, одна и та же игра (Atomic Heart билд такой-то…) запускается в разных средах - под официальным вайном с репозитория Федоры, и со специальным вайном, специальной сборки (кстати - это классно сделано, очень удобно, но мне интересно разобраться с официальным вайном). И внутриигровые настройки одинаковые, а вот режим дисплея разный - 50 Гц и 60 Гц. По ощущению играется одинаково (вообще без параметров - просто так, как оно устанавливается в WINE). Кстати, я еще до этого прошел эту же самую игру под вынь 10 с включенным в ней dx12 и включенными в винде 144 Гц. Ощущения по производительности были такие же, но мне припоминается, что глюков было больше (чаще пропадал звук, игра иногда вылетала, шрифты мелкие какие-то были). Увы, этот опыт уже не повторить, поскольку я полностью снес винду.

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

Оконный режим неинтересен с точки зрения погружения в игру.

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

а вот режим дисплея разный - 50 Гц и 60 Гц.

Это потому что обычный Wine и Proton (который в моей сборке) немного по-разному работают с режимами монитора.

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

Вертикальная синхронизация в игре по умолчанию включена

Если в игре есть лимитер fps (или его можно зафорсить через драйвера, как в Винде) - то лучше отключать vsync

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

Сама игра задаёт через виндовые API. wine их пробрасывает в вызовы, вроде бы xrandr.

Можно ещё в wine настроить виртуальный рабочий стол, может повлиять.

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

Wine и Proton (который в моей сборке) немного по-разному работают с режимами монитора.

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

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

Обычный Wine берет список режимов дисплея из xrandr. Proton делает то же самое и плюс еще добавляет свой захардкоженный в исходниках список к тому, что есть.

Еще Wine меняет разрешение рабочего стола при изменении разрешения в игре, а Proton просто масштабирует изображение под текущее разрешение рабочего стола.

как штатными средствами управлять этим делом

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

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

как я понимаю, тогда это может приводитьк разрывам изображения?

Да, но может это тебя не будет напрягать совсем. К тому же если у тебя Wayland, тиринга не будет в любом случае, независимо от настройки vsync в игре.

И еще можно в настройках игры отключить Vsync и включить в конфиге DXVK опцию dxgi.tearFree, тогда не будет тиринга и при этом будет неограниченный FPS.

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

Wine берет список режимов дисплея из xrandr.

ну вот я запускал два разных Wine’а и получал разные частоты при одинаковых настройках системы

К тому же если у тебя Wayland,

нету

настройках игры отключить Vsync и включить в конфиге DXVK опцию dxgi.tearFree

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

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

жалуешься, что у тебя 50 фпс

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

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

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

Это нужно выбрать в игре Windowed, а все остальное оставить, как есть? Надо попробовать, но что-то подсказывает мне, что оконный режим, даже без рамки, в чем-то ущербнее полноэкранного. Например, мыша может выскочить из игры. Или проц будет сильнее нагружаться из-за оконности.

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

Это нужно выбрать в игре Windowed, а все остальное оставить, как есть?

Он должен называться borderless windowed или windowed fullscreen или как-то так.

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

Это не так.

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

Я попробовал Fallout 4 от Steam. Установленная без дополнительных параметров, эта игра жутко тормозила при любом качестве в настройках (не обратил внимание, правда, какой режим дисплея при этом устанавливается, надо будет вечером глянуть). Так вот она нормально заработала, как только я добавил в парамтеры запуска DXVK_FRAME_RATE=60. Рано об этом говорить, не перепроверив, но похоже, что Протон от Стима настраивает игру на тот FRAME_RATE, который стоит в системе.

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

И еще через gamescope можно задать нужную герцовку.

у него не wayland. вроде.

А вот интересно gamescope есть в репах Федоры, а как оно с родным композитным менеджером сочетается …

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

А тьфу, все время забываю про эмулятор x11-to-вайланд.

(It’s getting game frames through Wayland by way of Xwayland, so there’s no copy within X itself before it gets the frame.)

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

Не заню, не нравятся мне эти кривые новшества. То systemd зачем-то прикрутили - я не вижу, чем жизнь стала легче про сравнению с system V, то вот теперь тулят этот Вейланд, якобы Х11 не справляется - я не вижу, почему надо отказываться от укоренившихся технологий, вместо того, чтобы их совершенствовать. Так, в результате, всю жизнь можно прожить на бета-решениях. У меня Иксы вполне себе справляются с задачами.

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

Если не будет прогресса то будет застой и регресс. Вот к примеру у тебя моник на 144 герца, а зачем нужно было отказываться от привычного 50 гц ? И не факт что твои х11 всего лишь ссесия под ХВайланд …

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

ну не знаю, у меня тут куча пакетов с именами «xorg-x11-…».

Да и откуда в Mate Desktop взяться вейланду?

Как тут и советовали, перевел игру в режим «оконный без рамок» (надо будет почитать где-нибудь, что это за чудо-режим такой). Дисплей сразу же перенастроился в режим 144 Гц. Индикатор фпс стал упираться в 60. Вышел из игры и убрал в командной строке ограничения: DXVK_FRAME_RATE=0 (убрал лимит).

Теперь в игре fps уверенно стала переходить 60, иногда доходя до 115 максимум.

igorbounov
() автор топика