LINUX.ORG.RU
ФорумGames

Проблема с производительностью в Wine

 , , , ,


1

1

В любых играх все плавно, в некотором моменте, когда превышает доступной видеопамяти видеокарты, резко падает, что делает очень неиграбельными, даже иногда 5 фпс. Ещё также после смены настроек графики. Во время падения фпс нагрузка 100% видеокарты, это резко. Только помогает перезагрузка игры, может быть тоже перезагрузка видеодрайвера (в Windows win+ctrl+shift+B, а Linux не знаю, мне хотелось бы знать какие клавиши и попробовал бы). А в нативном Windows не наблюдалось резкое падение фпс. Как исправить? Использовал не только Wine, но и Proton.

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

1. Установить pf-kernel и выбрать его как ядро по умолчанию для загрузки (например, в загрузчике Grub).

2. Установить cpupower. Затем добавить его команду в автозапуск: cpupower -c all frequency-set -g performance.

3. Установить Proton-GE-Custom. Нужно использовать его для запуска игр.

4. Установить GameMode от Feral Interactive. Затем настроить его.

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

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

amd_amd ★★★★★
()

на Windows играется плавно и прекрасно

Как исправить?

Использовать не только Wine, но и Windows.

Это как лохотрон…

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

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

Не пишите, если не знаете ответ. Как понимаю, здесь должно быть баг или неправильное обращение к оперативной памяти. Когда в игре занимаются более 3 гб VRAM (у меня видеокарта gtx 1060 3 гб), так что при недостаточной видеопамяти используют ОЗУ в качестве VRAM. Вот именно при этом резко и сильно падает фпс, а нагрузка вечно 100%. Эта проблема наблюдается только на Wine и Proton в Linux, а на Windows нет. А у других людей нет такой проблемы. Может быть проблема с видеодрайвером Nvidia или тем, что неправильно настроил скрипты Proton.

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

Эта проблема наблюдается только на Wine и Proton в Linux, а на Windows нет.

Вот, вам играть или на форуме самоутверждаться?

А у других людей нет такой проблемы.

Можно спросить других людей, почему у них нет такой проблемы.

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

у меня видеокарта gtx 1060 3 гб

Вас обманули на деньги. У меня моя днокарта RX 550, которая дешевле gtx 1060, имеет 4 гб. А вообще в вайне насколько я помню dxvk используется. dxvk использует больше видеопамяти чем оригинальный directx. Это даже багом не считается.

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

Хочу исправить свою проблему в Linux в игре. В интернете нет никакого ответа, долго искал, поэтому написал в форум, надеясь когда-нибудь кто знает и ответит. Даже эти люди не знают как исправить)

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

У меня GTX 1060 3 Gb

Прошу не напишите об апгрейда пк ... Это полная бессмысленная чушь.

Суть в том что для DirectX игр используется DXVK (до DX11) или VKD3D (DX12), то бишь DirectX транслируется в Vulkan. И вот тут есть одна засада, Vulkan не умеет «автомагически» освобождать видеопамять при её переполнении, если разработчик движка игры такого явно не предусмотрел в этой сцене например.

В Windows c нативной реализацией DirectX, при исчерпании видеопамяти, что с твоими 3гб происходит очень и очень быстро, начинает использоваться память системная, что конечно сажает производительность, но при наличии быстрой PCI-E хотя бы 3 поколения и двухканальной памяти хотя бы DDR3 это не приводит к катастрофической потере играбельности. А главное — это происходит автомагически и прозрачно для движка игры.

В Vulkan соответствующий механизм пока не реализован, поэтому при исчерпании видеоОЗУ начинаются адские тормоза и падения ФПС до 5 кадров, всё как у тебя. В среднем игры сейчас рассчитаны на 8гб видеопамяти, поэтому владельцы 8гб карт под Линуксом вообще проблем не ощущают, так как движки игр сами стараются «удерживать себя в рамках». А вот на играх с «кривыми» движками, да при наличии видеоОЗУ меньше 8гб, такое как у тебя случается.

Я сам от этого страдаю периодически, так как у меня ПЕЧ1660 с 6гб, и, например Elite Dangerous периодически переполняет видеопамять (это известная проблема, там удивительно кривой и к тому же поломанный добавлением новых фич движок) и ФПС падает до 5-15. ЧСХ на картах с 8гб такого не происходит, так как движок настроен под них и в рамках 8гб удерживает себя самостоятельно. Но не в рамках 6гб. Под Виндоус тоже проблем нет, да, ФПС при переполнении падает где то до 30-40, но это по прежнему играбельно.

Суть в чём — ежели желаешь играть под Линукс задумайся об апгрейде видеокарты, главное 8гб чтобы было. Желательно больше, например 3060RTX есть с 12гб. Либо играй в Винде и жди пока разработчики Вулкан добавят аналогичный ДиректИксу функционал динамического вытеснения.

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

Нет, не обманули. Моя видеокарта просто старая, не хочется апгрейдить, когда в Windows в играх в порядке. Только захотелось перейти в Linux ради расширения управления компьютера и программирования. Иногда люблю играть в игры.

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

Тут дело такое, есть «стандартные» размеры видеопамяти, на которые ориентируются разработчики движков. Игра при запуске определяет размер видеоОЗУ и старается держать себя «в рамках», выбирая соответствующие настройки графики «по умолчанию». Обычно это 4гб и 8гб. Так что проблемы начинаются в Линукс если памяти меньше чем эти объёмы, например 3гб или 6гб, так как движок «округляет» всё это до 4 или 8, рассчитывая на то что видовый директикс дальше сам выделит недостающее из ОЗУ. И вот у Вулкана с этим пока проблемы. Так что думаю даже если ты разживёшься 4гб картой — это уже поможет, если ты не будешь с ручными настройками «борщить». Смотреть расход видеопамяти можно прямо в процессе игры через mangohud или любой другой вулкановский оверлей.

Jameson ★★★★★
()

На картах AMD с Mesa RADV такая же проблема есть, причем раньше совсем все плохо было с переполнением VRAM, я даже баг-репорт писал, но с тех пор ситуация чутка улучшилась. И в случае с картами AMD драйвер AMDVLK получше обрабатывает ситуации нехватки видеопамяти чем RADV.

В целом ничего особо с этим не сделаешь, это нужно чтобы либо на стороне драйвера какие-то улучшения внесли в этом плане, либо на стороне DXVK или vkd3d-proton.

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

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

встроенную в процессор графику как основную, а дискретную видеокарту использовать для рендеринга игр

В ноутбуках есть гибридная графика (например, Optimus). А как это сделать на десктопе? Это же как-то нужно, чтобы дискретная графика выводила изображение через встроенную в процессор графику.

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

У меня в BIOS (UEFI) есть настройка, какую видеокарту использовать в качестве основной, там есть выбор между PCI Express и Integrated Graphics. Я выбираю Integrated Graphics, подключаю монитор к встройке и могу задействовать дискретку через DRI_PRIME и через специфичные для DXVK и vkd3d-proton переменные.

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

на десктопе воткнуть кабель в встройку и в биосе выставить встройку как primary. по крайней мене у меня так с моим hp.

и через prime-run запускать игру. Но как обычно блобовский драйвер по умолчанию будет задействоваться

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

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

а разве при использовании типа ноутбучного решения интерфейс основной видеокарты (PCIe) не порежится? встройка как бы тоже будет потреблять линии, и это уже потеря производительности на основной карте

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

Когда то что то читал про запуск Оптимус на десктопах с дискретной Нвидией и интеграшкой. Теоретически это должно работать без проблем, так как это чисто софтварно-драйверная фича, просто отрендерённое на дискретке 3д передаётся во фреймбуфер встройки через pci-e, где уже композитится в окно или рисуется на весь экран. При этом монитор естественно подключён к встройке и основной видеокартой тоже является она.

На практике — куча проблем. Во первых драйверы мешают это делать если дискретка не на ноутбучном чипе. Во вторых проблемы энергосбережения, БИОС может снимать питание со слота или начать экономить если дискретка не является основной картой и к ней не подключён монитор. Это лечат затычкой имитирующей подключенный кабель и монитор, а так же демоном persistenced, который нужен для поддержания в активном состоянии видеокарты не занимающейся собсно выводом видео, например если она нейросети считает и т.п.

Короче на одном комплекте железа у чувака это завелось, на другом — нет, потребовало хаков драйвера и танцев с саблями и бубнами. И естественно без гарантии что всё это внезапно не развалится.

ЗЫ. Прочитал выше что уже нормально всё это работает. Я лет пять назад читал про Оптимус на стационарнике, хорошо что сейчас проблем с этим нет.

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

а разве при использовании типа ноутбучного решения интерфейс основной видеокарты (PCIe) не порежится? встройка как бы тоже будет потреблять линии, и это уже потеря производительности на основной карте

Не, не порежется. Там по сути уже посчитанные кадры передаются во фреймбуфер встройки, это мизерный объём данных, особенно по сравнению с пропускной способностью pci-e. Да и вообще при работе 3д карты pci-e практически не задействуется, только при загрузке и стримминге текстур. Дело в том что по сравнению с памятью видеокарты доступ к основному ОЗУ через pci-e настолько медленный что разработчики движков такого избегают. Поэтому как показывают тесты разница между pci-e 8x и 16x, а так же между поколениями pci-e весьма слабо влияет на итоговый FPS.

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

все эти запуски игрух из под линукс - исключительно для привлечения внимания к самой системе

Я уже 3 года играю исключительно из-под линукса. Игр в библиотеке стима больше 300 и 75% из них с нативной(может ферал какой, но не протон) поддержкой линукса. А даже те что без поддержки, как например Elite: Dangerous или Ведьмак 3, те отлично идут с помощью протона. Надо просто видеокарту покупать, а не затычку для слота, и всё работает.

2 ТС: Ты бы хоть конфиг свой написал.

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

Не, GTX1660 не бери. Я бывший обладатель, 6гб вместо 8гб иногда ощутимо, выше об этом писал. Лучше уж «честных» 4, или 8, но не промежуточные 3 или 6. В Винде особой разницы нет, а в Линуксе иногда приходится с настройками пердолиться чтобы за 6гигов не вылезать, так как движки автоматом врубают пресеты под 8гб видеокарты. И не всегда это укротимо вообще.

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

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

А как это сделать с Vega11 + RX6400, не подскажешь? Карта дико страдает от нехватки видеопамяти. При чем часто на этой карте, в Линуксе ФПС значительно выше, чем в Винде. Так что дуалбут вообще не спасает.

Vochatrak-az-ezm ★★
()

Проблема в твоих 3 гигах. Разработчик DXVK в свое время писал что самому DXVK нужно минимум 4 гига. То есть это даже не вопрос игры которую ты запускаешь. Естественно игр на Вулкане это не касается.

Vochatrak-az-ezm ★★
()
Ответ на: комментарий от Vochatrak-az-ezm

Я здесь писал как у меня это работает. Думаю, у тебя примерно так же должно быть.

Вообще, я думаю, оно может работать даже и без выбора основной графики в BIOS (на случай если там нет такого пункта), то есть просто подключаешь монитор к порту встроенной графики и потом можно использовать дискретную видеокарту через DRI_PRIME и прочие похожие механизмы. В случае с DXVK и vkd3d-proton за выбор устройств отвечают переменные:

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

Я уже 3 года играю исключительно из-под линукса. Игр в библиотеке стима больше 300 и 75% из них с нативной(может ферал какой, но не протон) поддержкой линукса. А даже те что без поддержки, как например Elite: Dangerous или Ведьмак 3, те отлично идут с помощью протона. Надо просто видеокарту покупать, а не затычку для слота, и всё работает.

Подтверждаю. Примерно с конца 18-го года играю из под стима установленного на Ubuntu (других ОС на десктопе нет с 10.04). При этом играл как на 6 гиговой gtx1660 так и на 12 гиговой нынешней RTX3060 - no problem. Единственная проблема возникшая три-четыре недели назад была связана с запуском рокстаровских игрушек GTA5/RDR2 и ту пофиксили пару дней назад. Пусть товарищ не е.. компостирует мозг, а купит современную карточку с 12 гигами памяти, раз так любит современные многожрущие игры.

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

так что при недостаточной видеопамяти используют ОЗУ в качестве VRAM. Вот именно при этом резко и сильно падает фпс, а нагрузка вечно 100%.

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

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

что нвидия в драйвере сломала механизм свопа vram в ram и всё стало тормозить.

Так под линуксом этого механизма и не было. У меня по работе проблема была, когда модель влезающая и работающая на 4Гб под виндой, под линуксом резко перестала работать, т.к. оказалось что ей надо 4.2Гб, а механизма свопа в линуксе не оказалось.

Вот ссылка на запрос фичи на сайте невидии:

https://forums.developer.nvidia.com/t/non-existent-shared-vram-on-nvidia-linu...

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

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

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

Фичу сделали

В какой версии драйверов? У меня с 535, вот такой вот выхлоп в nvidia-settings:

Total Memory: 12282MB

Total Dedicated Memory: 12282MB

Если загрузится под вендой, то в Total Memory 20ГБ(вроде, венду лень грузить) будет, а не 12.

Upd: Может ты имеешь в виду фичу Resizable BAR, вот её запилили, да. Но это немного другая фича.

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