Debian gallium nine: iXit/wine-nine-standalone: Build Gallium Nine support on top of an existing WINE installation

Gallium-nine

2019

  • General
    Gallium-nine для DirectX 8
    (10 комментариев)
  • Desktop
    Победить Gallium Nine в debian
    (16 комментариев)

2018

  • Talks
    Пара вопросов про Wine
    (13 комментариев)

2016

  • Talks
    Wine Staging + Nine
    (19 комментариев)
  • Games
    wine + gallium-nine не работает стимовский оверлей
    (13 комментариев)
  • Talks
    Вопрос по Wine
    (13 комментариев)
  • General
    Как установить Gallium-Nine и патченный Wine в Fedora 23?
    (22 комментария)
  • General
    gallium nine на debian
    (8 комментариев)
  • Development
    Ebuild для Wine со свистоперделками
    (43 комментария)
  • Development
    Багтрекер IXiT (GalliumNine)
    (6 комментариев)

2016

  • Development
    Пердоллинг с ебилдами в Gentoo
    (42 комментария)

2015

  • General
    Gallium-Nine, кажется что-то в мезе поломали
    (18 комментариев)
  • Games
    gallium-nine и opensuse tumbleweed
    (10 комментариев)
  • Desktop
    Wine-staging и Gallium-nine в Arch Linux
    (43 комментария)
  • Games
    Gallium-nine, не работает D3D в Wine
    (63 комментария)
  • Games
    WoT wine-nine r600g
    (3 комментария)
  • Games
    Проблемы с Gallium Nine
    (6 комментариев)
  • Talks
    Wine 1. 7.37 + Staging + Gallium Nine
    (23 комментария)
  • Talks
    Сравнение производительности Direct3D 9 в Mesa 10.4 и Windows 8
    (111 комментариев)

2014

  • Talks
    Где брать патч с добавлением Gallium-nine для Wine
    (8 комментариев)

Оптимизация Linux для игр (Копипаста)

В данной заметке я опишу 5 способов увеличения производительности игр в Linux. Особенно это будет актуально для «виндовых» игр, запущенных в Wine.

 

 

 

1) Свежие драйвера на видеокарту

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

Xorg-Edgers

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

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update && sudo apt-get upgrade

Oibaf PPA

В этом репозитории находятся более стабильные, но одновременно свежие версии свободных графических драйверов, которые также имеют поддержку 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

exit

Запуск производится следующей командой:

xinit /путь/до/исполняемого/файла/игры $* — :1

Например: xinit /usr/games/steam $* — :1

Запустится отдельная сессия X, и запустится указанное приложение. Переключение обратно в режим рабочего стола производится комбинацией Ctrl+Alt+F7, вторые иксы будут (в моём случае) на F2. Альтернативный вариант: переключиться на любую свободную консоль (F1-F6), залогиниться, и запустить приложение командой:

startx /путь/до/исполняемого/файла/игры — :1

Однако такой способ неудобен тем, что в случае если игра имеет лаунчер, или какие-то дополнительные окна при запуске, будут проблемы с их отрисовкой. Да и запускать это всё руками как-то муторно. Исправить эту проблему поможет любой легковесный оконный менеджер. Например Openbox. Устанавливаем:

sudo apt install openbox

Теперь создаём файл:

nano ~/. steamxinitrc

и туда записываем:

exec openbox-session

Теперь командой:

startx ~/.steamxinitrc — :1

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

mkdir ~/.config/openbox
touch ~/.config/openbox/autostart
nano  ~/.config/openbox/autostart

#! /bin/bash

steam &

Сохраните. Теперь Стим будет запускаться автоматически, а вы можете легко перключаться между сеансами. ВНИМАНИЕ: у себя в KDE на Debian 8, я обнаружил баг, при котором после перехода в основные иксы и обратно на дополнительные, появлялись сильнешие графические артефакты в некоторых играх, а сам Стим отрисовывался кусками. Способа решения проблемы я не нашёл. Если вы знаете — напишите в комментариях, я добавлю в статью.

Соответственно, вместо Steam, вы можете добавить PlayOnLinux, если запускаете виндовые игры через него
 

5) Отключение графических эффектов (композитинга) для полноэкранных приложений.

Если вы используете KDE или Cinnamon, рекомендую отключить полноэкранный композитинг. В KDE: Параметры системы — Эффекты — Дополнительно — Поставить галочку на «Отключить графические эффекты для полноэкранных окон»
 

Для Cinnamon: Настройки — Общие — Отключить композитинг для полноэкранных окон
 

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

Gallium Nine — LinuxReviews

Gallium Nine (или «d3dadapter9») — это графический драйвер DirectX 9 с несколькими графическими процессорами для GNU/Linux и других операционных систем, в которых можно использовать API графического драйвера Gallium из бесплатного графического стека Mesa. В основном он полезен в качестве серверной части Wine для программного обеспечения Windows, использующего DirectX 9 API.

Gallium Nine — самый быстрый бэкенд Wine для DX9 из-за более короткого пути рендеринга по сравнению с DXVK и встроенным в Wine слоем wined3d DX9 в OpenGL.

Путь рендеринга wined3d DirectX 9 идет Direct3D 9 ▸ OpenGL ▸ Mesa’s Gallium Hardware State Tracker ▸ Аппаратное обеспечение графического процессора.

Gallium Nine сокращает это до Direct3D 9 ▸ Отслеживание состояния оборудования Mesa Gallium ▸ Аппаратное обеспечение графического процессора.

Хотя Gallium Nine является более быстрым вариантом для Direct3D 9, он не настолько быстрее, чем DXVK, как можно было бы ожидать. Разница между встроенной реализацией wined3d в Wine и Gallium Nine значительна, но она едва ощутимо быстрее, чем DXVK.

Содержание

  • 1 Unigine Heaven Benchmark 4.0
  • 2 Тест Unigine Valley 1.0
  • 3 Quantum от Outracks против Nazareth Creations
  • 4 Fr-025 : . популярный . д е м о
  • 5 Совместимость
  • 6 Выводы
  • 7 Установка
  • 8 Выбор Wine Driver
  • 9 звеньев

Unigine Heaven Benchmark 4.0

Wine с wined3d не хочет запускать Unigine Heaven Benchmark с DirectX 9рендеринг.

Wine 6.7 не запускает Unigine Heaven Benchmark 4.0 в режиме DirectX 9, когда используется слой преобразования wined3d DX9 в OpenGL. Он отлично работает с Gallium Nine и DXVK. Тест Heaven позволяет выбирать между DirectX 9, DirectX 11 и OpenGL, а тест Heaven отлично работает с wined3d , если используется DirectX 11. Поэтому мы включили wined3d с использованием DirectX 11 наряду с результатами DXVK и Gallium Nine с использованием DirectX 9.. Мы также включили нативную версию для Linux в качестве контраста, поскольку Unigine Heaven доступен в нативной версии для Linux. API OpenGL — единственный вариант в нативной версии Linux, поэтому мы использовали его с точно такими же настройками.

Unigine Heaven Benchmark 4.0, 1080p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 1440p, High, x2 AA, FPS
Mesa 21. 1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 720p, низкий уровень, без сглаживания, FPS
Mesa 21.1, Intel Broadwell i7-5500U CPU/iGPU
Unigine Heaven Benchmark 4.0, 1080p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 1440p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 720p, низкий уровень, без сглаживания, оценка
Mesa 21.1, Intel Broadwell i7-5500U CPU/iGPU

Разница между wined3d и DXVK и Gallium Nine довольно велика при разрешении 1080p на тестовой машине AMD. В 1440р чуть меньше, но разрыв все равно есть.

Небольшая разница между Gallium Nine и DXVK на машине AMD при разрешении 1440p и 1080p является более интересным результатом. Это показывает, что Gallium Nine имеет небольших преимуществ в производительности по сравнению с DXVK. быстрее , но только на волосок. Мы ожидали увидеть большую разницу. Также интересно, что разница между нативной версией Linux с OpenGL и версией Windows с DXVK примерно равна нулю при разрешении 1080p, а оценка Gallium Nine немного выше 9.0013, чем оба из них. Для нативной версии Linux с разрешением 1440p ситуация становится еще хуже, и DXVK, и Gallium Nine опережают нативную версию Linux и ее путь рендеринга OpenGL при более высоком разрешении.

На тестовой машине Intel картина немного отличается. Он едва мог работать на низком разрешении 720p, так что это не совсем то, что обычно можно использовать для игр или графики. Gallium Nine был бы лучшим выбором, если бы вы запускали игры в Wine на слабом Intel iGPU. Разрыв между нативной версией Linux, использующей OpenGL, и Gallium Nine намного больше на машине Intel, чем на системе AMD, хотя было бы довольно плохо играть в игру со средней частотой кадров 34,1 и 30,9.в 720р низко.

Unigine Valley Benchmark 1.0

Собственная Linux-версия Unigine Valley Benchmark 1.0 с использованием OpenGL.

Бенчмарк Unigine Valley создан теми же людьми, что и тест Unigine Heaven. Реализация wined3d DX9 в Wine также не работает с этим, поэтому мы использовали DX11 для сравнения с DXVK и Gallium Nine.

Unigine Valley Benchmark 1.0, 1080p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1.0, 1440p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1. 0, 1080p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1.0, 1440p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,

Реализация Wine, встроенная в wined3d DX9, набрала примерно таких же при 1080p и 1440p, что делает разрыв между ним и DXVK и Gallium 9 намного больше при 1080p, чем при 1440p.

Gallium Nine выигрывает у DXVK с явным отрывом в обоих разрешениях, но уступает только собственной версии Unigine Valley Benchmark 1.0, использующей OpenGL.

Quantum от Outracks vs Nazareth Creations

Демо-сцена Quantum для ПК от Outracks vs Nazareth Creations не работает с реализацией wined3d DX9 в Wine 6.7 или 6.8. Он отлично работает как с Gallium Nine, так и с DXVK. Оба обеспечивают примерно одинаковую частоту кадров, хотя у Gallium Nine есть преимущество.

Quantum от Outracks vs Nazareth Creations, 1080p, вертикальная синхронизация отключена
Mesa 21.1, MSI RX 570 8 ГБ, AMD Ryzen 5 1600x
Quantum от Outracks vs Nazareth Creations, 4K, Vsync выключен
Mesa 21.1, MSI RX 570 8 ГБ, AMD Ryzen 5 1600x

Данные были собраны из GALLIUM_HUD и VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay с интервалом в одну секунду.

Fr-025 : . популярный . демо

Fr-025 : . популярный . демоверсия 2003 года использует DirectX 9и он работает с wined3d, Gallium Nine и DXVK. Fr-025 не поддерживает разрешения выше 1080p. Частота кадров, которую он производит на несколько современном оборудовании с выделенным графическим процессором, довольно высока.

Fr-025 : . популярный . демо, 1080p, Качество: 2
Mesa 21. 1, MSI RX 470 8 ГиБ, AMD Ryzen 5 2600

Gallium Nine не слишком хорош против DXVK в Fr-025: . популярный . демо демонстрация демо-сцены на оборудовании AMD. на самом деле делает хуже wined3d в некоторых областях. Результаты не такие, как вы ожидаете в этой конкретной демонстрации.

Fr-025 : . популярный . демо, 1080p, качество: 2
Mesa 21.1, Intel i7-5500U (iGPU)

Результаты отличаются слабым и жалким графическим чипом в процессоре Intel i7-5500U. Galliun Nine является явным абсолютным победителем на этой машине, хотя у него есть такие же странные провалы ниже двух других в середине демонстрации и снова ближе к концу.

Совместимость

Большинство программ Windows, использующих DirectX 9, будут нормально работать с Gallium Nine, но есть некоторые исключения. Не ждите, что все будут работать. Как правило, вы можете ожидать, что все, что работает с DXVK, также будет работать с Gallium Nine.

Некоторое программное обеспечение, которое не будет работать со стандартным слоем перевода Wine wined3d DX9 в OpenGL, будет нормально работать с Gallium Nine. Демонстрационная сцена для ПК Fr-041: deb r i s является одним из примеров, она работает с DXVK и Gallium Nine, но просто вылетает во время экрана загрузки с wined3d DX9 от Wine.выполнение.

Возникла проблема с использованием проекционного дисплея Gallium с Gallium Nine. GALLIUM_HUD=fps отлично работает с приложениями OpenGL (например, GALLIUM_HUD=fps glxgears ), но при использовании Gallium Nine все приложения DX9 в Wine падают. Не используйте GALLIUM_HUD= с Gallium Nine, иначе у вас будет плохой день.

Выводы

Gallium Nine может стоить того, если вы хотите несколько дополнительных кадров в секунду в DirectX 9игры в вине. Это будет намного быстрее, чем встроенная реализация wined3d Direct3D 9, но не будет намного быстрее, чем DXVK. Вы получите на несколько кадров больше, чем с DXVK, но всего на несколько больше. Чем больше, тем больше, но в этой истории есть еще кое-что: есть несколько программ (особенно демо-сцены для ПК), которые работают с DXVK, но не работают с Gallium Nine. Это не всегда лучший выбор, если вас больше всего беспокоит совместимость с . Еще несколько кадров в некоторых играх — это еще не все, если другие не работают.. и поэтому вы можете оставить отдельную WINEPREFIX для него и приложений DX9, которые лучше всего с ним работают. Вы можете использовать простой сценарий оболочки, если не хотите вводить WINEPREFIX=любое вино game.exe каждый раз при запуске игры:

Файл: bin/wine9

 #!/bin/bash
WINEPREFIX="$HOME/.wine-gallium-nine" вино $@
 

Установка

Для использования Gallium Nine вам понадобятся две вещи:

  • Пакет Mesa libd3d . Он есть в репозиториях любого дистрибутива, поставляющего графические драйверы Mesa, и это все. Вам, скорее всего, придется установить его, дистрибутивы, как правило, не включают его по умолчанию.
  • Пакет «gallium-nine-standalone» доступен на сайте github.com/iXit/wine-nine-standalone/releases.

Пакет «gallium-nine-standalone», вероятно, отсутствует в репозиториях ваших дистрибутивов, даже если пакет Mesa libd3d есть. Вы можете приобрести готовые двоичные файлы на github.com/iXit/wine-nine-standalone/releases.

Его также можно собрать из исходников. На github.com/iXit/wine-nine-standalone/wiki/Compiling есть инструкции, если вы хотите пойти по этому пути. Мы рекомендуем против этого. Собрать его достаточно просто , если у вас есть зависимости . Их довольно много, и вам нужны пакеты разработки как для x86-64 , так и для i686 версий необходимых библиотек (wine, d3dadapter9, liblx11, libxcb, libdrm, valgrind, libXau-devel, libgl/libglvnd).

Установить Gallium Nine несложно, если вы пойдете по простому пути и воспользуетесь архивом выпуска. Вы можете просто распаковать его и запустить nine-install.sh из архива. Вы должны запустить wine ninewinecfg , как только он будет установлен, он сообщит вам, работает ли он или вам не хватает чего-то важного, например версии i686 пакета Mesa libd3d .

Возможно, вы захотите создать отдельный выделенный WINEPREFIX= для игр и приложений Gallium Nine и DirectX 9; ninewinecfg делает совершенно не , предоставляющим какие-либо простые средства переключения между Gallium Nine и DXVK в случае, если какая-то игра не работает с одним или другим.

Выбор Wine Driver

Здесь все становится немного грязным и раздражающим. Невозможно легко переключаться между Gallium Nine и DXVK на уровне каждой игры, когда вы запускаете игры.

Лучший и, по-видимому, единственный (возможно, есть способ, о котором мы не знаем) способ выбрать, что Wine должен использовать для конкретных игр без утомительной работы, — это создать разные WINEPREFIX папки. Это один из работающих способов, вы можете установить префикс, например, WINEPREFIX=$HOME/.wine-dxvk или WINEPREFIX=$HOME/.wine-nine и установите игры в предпочитаемую вами установку Wine.

Можно запустить wine ninewinecfg и отключить параметр «Включить Gallium Nine для повышения производительности графики D3D9». Эта работа работает и имеет смысл, если ninewinecfg не был сломан бесполезным мусором. Это значит, что опция отключает любую поддержку DX9 , а не только Gallium Nine. Причина в том, что ninewinecfg переместит существующие библиотеки d3d9.dll в d3d9..dll.old и создайте символические ссылки с d3d9-nine.dll на d3d9.dll , когда он установлен, и , удалите символическую ссылку и оставьте ее, когда она отключена. Это, очевидно, не оставит конечному пользователю никакой работающей реализации DX9. Было бы не стыдно, если бы того, кто подумал, что это хорошая идея, ударили стержнем из промышленной стали диаметром 1000 мм и диаметром 50 мм.

Одним из решений является переустановка DXVK, но это не совсем то, что вам захочется делать постоянно. Лучшее решение — использовать другой WINEPREFIX= , пока кто-нибудь не придумает решение, благодаря которому DXVK и Gallium Nine будут хорошо работать вместе.

Ссылки

  • Репозиторий Gallium Nine Stand-Alone (для использования его с Wine находится по адресу https://github.com/iXit/wine-nine-standalone

Сортировать по дате Сортировать по количеству баллов

Включить автоматическое обновление комментариев

Добавить комментарий

LinuxReviews приветствует все комментарии . Если вы не хотите быть анонимным, зарегистрируйтесь или авторизуйтесь. Это бесплатно.

Gallium Nine — LinuxReviews

Gallium Nine (или «d3dadapter9») — это графический драйвер DirectX 9 с несколькими графическими процессорами для GNU/Linux и других операционных систем, в которых можно использовать API графического драйвера Gallium из бесплатного графического стека Mesa. В основном он полезен в качестве серверной части Wine для программного обеспечения Windows, использующего DirectX 9 API.

Gallium Nine — самая быстрая серверная часть Wine для DX9 из-за более короткого пути рендеринга по сравнению с DXVK и встроенным в Wine wined3d DX9.на уровень перевода OpenGL.

Путь рендеринга wined3d DirectX 9 идет через Direct3D 9 ▸ OpenGL ▸ Mesa’s Gallium Hardware State Tracker ▸ Аппаратное обеспечение графического процессора.

Gallium Nine сокращает это до Direct3D 9 ▸ Отслеживание состояния оборудования Mesa Gallium ▸ Аппаратное обеспечение графического процессора.

Хотя Gallium Nine является более быстрым вариантом для Direct3D 9, он не настолько быстрее, чем DXVK, как можно было бы ожидать. Разница между встроенной реализацией wined3d в Wine и Gallium Nine значительна, но она едва ощутимо быстрее, чем DXVK.

Содержание

  • 1 Unigine Heaven Benchmark 4.0
  • 2 Тест Unigine Valley 1. 0
  • 3 Quantum от Outracks против Nazareth Creations
  • 4 Fr-025 : . популярный . д е м о
  • 5 Совместимость
  • 6 Выводы
  • 7 Установка
  • 8 Выбор Wine Driver
  • 9 звеньев

Unigine Heaven Benchmark 4.0

Wine с wined3d не хочет запускать Unigine Heaven Benchmark с DirectX 9рендеринг.

Wine 6.7 не запускает Unigine Heaven Benchmark 4.0 в режиме DirectX 9, когда используется слой преобразования wined3d DX9 в OpenGL. Он отлично работает с Gallium Nine и DXVK. Тест Heaven позволяет выбирать между DirectX 9, DirectX 11 и OpenGL, а тест Heaven отлично работает с wined3d , если используется DirectX 11. Поэтому мы включили wined3d с использованием DirectX 11 наряду с результатами DXVK и Gallium Nine с использованием DirectX 9.. Мы также включили нативную версию для Linux в качестве контраста, поскольку Unigine Heaven доступен в нативной версии для Linux. API OpenGL — единственный вариант в нативной версии Linux, поэтому мы использовали его с точно такими же настройками.

Unigine Heaven Benchmark 4.0, 1080p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 1440p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 720p, низкий уровень, без сглаживания, FPS
Mesa 21.1, Intel Broadwell i7-5500U CPU/iGPU
Unigine Heaven Benchmark 4.0, 1080p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 1440p, высокое, x2 AA, оценка
Mesa 21. 1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Heaven Benchmark 4.0, 720p, низкий уровень, без сглаживания, оценка
Mesa 21.1, Intel Broadwell i7-5500U CPU/iGPU

Разница между wined3d и DXVK и Gallium Nine довольно велика при разрешении 1080p на тестовой машине AMD. В 1440р чуть меньше, но разрыв все равно есть.

Небольшая разница между Gallium Nine и DXVK на машине AMD при разрешении 1440p и 1080p является более интересным результатом. Это показывает, что Gallium Nine имеет небольших преимуществ в производительности по сравнению с DXVK. быстрее , но только на волосок. Мы ожидали увидеть большую разницу. Также интересно, что разница между нативной версией Linux с OpenGL и версией Windows с DXVK примерно равна нулю при разрешении 1080p, а оценка Gallium Nine немного выше 9.0013, чем оба из них. Для нативной версии Linux с разрешением 1440p ситуация становится еще хуже, и DXVK, и Gallium Nine опережают нативную версию Linux и ее путь рендеринга OpenGL при более высоком разрешении.

На тестовой машине Intel картина немного отличается. Он едва мог работать на низком разрешении 720p, так что это не совсем то, что обычно можно использовать для игр или графики. Gallium Nine был бы лучшим выбором, если бы вы запускали игры в Wine на слабом Intel iGPU. Разрыв между нативной версией Linux, использующей OpenGL, и Gallium Nine намного больше на машине Intel, чем на системе AMD, хотя было бы довольно плохо играть в игру со средней частотой кадров 34,1 и 30,9.в 720р низко.

Unigine Valley Benchmark 1.0

Собственная Linux-версия Unigine Valley Benchmark 1.0 с использованием OpenGL.

Бенчмарк Unigine Valley создан теми же людьми, что и тест Unigine Heaven. Реализация wined3d DX9 в Wine также не работает с этим, поэтому мы использовали DX11 для сравнения с DXVK и Gallium Nine.

Unigine Valley Benchmark 1.0, 1080p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1.0, 1440p, High, x2 AA, FPS
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1.0, 1080p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,
Unigine Valley Benchmark 1.0, 1440p, высокое, x2 AA, оценка
Mesa 21.1, MSI RX 470 8 ГБ, AMD Ryzen 5 2600,

Реализация Wine, встроенная в wined3d DX9, набрала примерно таких же при 1080p и 1440p, что делает разрыв между ним и DXVK и Gallium 9 намного больше при 1080p, чем при 1440p.

Gallium Nine выигрывает у DXVK с явным отрывом в обоих разрешениях, но уступает только собственной версии Unigine Valley Benchmark 1. 0, использующей OpenGL.

Quantum от Outracks vs Nazareth Creations

Демо-сцена Quantum для ПК от Outracks vs Nazareth Creations не работает с реализацией wined3d DX9 в Wine 6.7 или 6.8. Он отлично работает как с Gallium Nine, так и с DXVK. Оба обеспечивают примерно одинаковую частоту кадров, хотя у Gallium Nine есть преимущество.

Quantum от Outracks vs Nazareth Creations, 1080p, вертикальная синхронизация отключена
Mesa 21.1, MSI RX 570 8 ГБ, AMD Ryzen 5 1600x
Quantum от Outracks vs Nazareth Creations, 4K, Vsync выключен
Mesa 21.1, MSI RX 570 8 ГБ, AMD Ryzen 5 1600x

Данные были собраны из GALLIUM_HUD и VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay с интервалом в одну секунду.

Fr-025 : . популярный . демо

Fr-025 : . популярный . демоверсия 2003 года использует DirectX 9и он работает с wined3d, Gallium Nine и DXVK. Fr-025 не поддерживает разрешения выше 1080p. Частота кадров, которую он производит на несколько современном оборудовании с выделенным графическим процессором, довольно высока.

Fr-025 : . популярный . демо, 1080p, Качество: 2
Mesa 21.1, MSI RX 470 8 ГиБ, AMD Ryzen 5 2600

Gallium Nine не слишком хорош против DXVK в Fr-025: . популярный . демо демонстрация демо-сцены на оборудовании AMD. на самом деле делает хуже wined3d в некоторых областях. Результаты не такие, как вы ожидаете в этой конкретной демонстрации.

Fr-025 : . популярный . демо, 1080p, качество: 2
Mesa 21.1, Intel i7-5500U (iGPU)

Результаты отличаются слабым и жалким графическим чипом в процессоре Intel i7-5500U. Galliun Nine является явным абсолютным победителем на этой машине, хотя у него есть такие же странные провалы ниже двух других в середине демонстрации и снова ближе к концу.

Совместимость

Большинство программ Windows, использующих DirectX 9, будут нормально работать с Gallium Nine, но есть некоторые исключения. Не ждите, что все будут работать. Как правило, вы можете ожидать, что все, что работает с DXVK, также будет работать с Gallium Nine.

Некоторое программное обеспечение, которое не будет работать со стандартным слоем перевода Wine wined3d DX9 в OpenGL, будет нормально работать с Gallium Nine. Демонстрационная сцена для ПК Fr-041: deb r i s является одним из примеров, она работает с DXVK и Gallium Nine, но просто вылетает во время экрана загрузки с wined3d DX9 от Wine.выполнение.

Возникла проблема с использованием проекционного дисплея Gallium с Gallium Nine. GALLIUM_HUD=fps отлично работает с приложениями OpenGL (например, GALLIUM_HUD=fps glxgears ), но при использовании Gallium Nine все приложения DX9 в Wine падают. Не используйте GALLIUM_HUD= с Gallium Nine, иначе у вас будет плохой день.

Выводы

Gallium Nine может стоить того, если вы хотите несколько дополнительных кадров в секунду в DirectX 9игры в вине. Это будет намного быстрее, чем встроенная реализация wined3d Direct3D 9, но не будет намного быстрее, чем DXVK. Вы получите на несколько кадров больше, чем с DXVK, но всего на несколько больше. Чем больше, тем больше, но в этой истории есть еще кое-что: есть несколько программ (особенно демо-сцены для ПК), которые работают с DXVK, но не работают с Gallium Nine. Это не всегда лучший выбор, если вас больше всего беспокоит совместимость с . Еще несколько кадров в некоторых играх — это еще не все, если другие не работают.. и поэтому вы можете оставить отдельную WINEPREFIX для него и приложений DX9, которые лучше всего с ним работают. Вы можете использовать простой сценарий оболочки, если не хотите вводить WINEPREFIX=любое вино game.exe каждый раз при запуске игры:

Файл: bin/wine9

 #!/bin/bash
WINEPREFIX="$HOME/. wine-gallium-nine" вино $@
 

Установка

Для использования Gallium Nine вам понадобятся две вещи:

  • Пакет Mesa libd3d . Он есть в репозиториях любого дистрибутива, поставляющего графические драйверы Mesa, и это все. Вам, скорее всего, придется установить его, дистрибутивы, как правило, не включают его по умолчанию.
  • Пакет «gallium-nine-standalone» доступен на сайте github.com/iXit/wine-nine-standalone/releases.

Пакет «gallium-nine-standalone», вероятно, отсутствует в репозиториях ваших дистрибутивов, даже если пакет Mesa libd3d есть. Вы можете приобрести готовые двоичные файлы на github.com/iXit/wine-nine-standalone/releases.

Его также можно собрать из исходников. На github.com/iXit/wine-nine-standalone/wiki/Compiling есть инструкции, если вы хотите пойти по этому пути. Мы рекомендуем против этого. Собрать его достаточно просто , если у вас есть зависимости . Их довольно много, и вам нужны пакеты разработки как для x86-64 , так и для i686 версий необходимых библиотек (wine, d3dadapter9, liblx11, libxcb, libdrm, valgrind, libXau-devel, libgl/libglvnd).

Установить Gallium Nine несложно, если вы пойдете по простому пути и воспользуетесь архивом выпуска. Вы можете просто распаковать его и запустить nine-install.sh из архива. Вы должны запустить wine ninewinecfg , как только он будет установлен, он сообщит вам, работает ли он или вам не хватает чего-то важного, например версии i686 пакета Mesa libd3d .

Возможно, вы захотите создать отдельный выделенный WINEPREFIX= для игр и приложений Gallium Nine и DirectX 9; ninewinecfg делает совершенно не , предоставляющим какие-либо простые средства переключения между Gallium Nine и DXVK в случае, если какая-то игра не работает с одним или другим.

Выбор Wine Driver

Здесь все становится немного грязным и раздражающим. Невозможно легко переключаться между Gallium Nine и DXVK на уровне каждой игры, когда вы запускаете игры.

Лучший и, по-видимому, единственный (возможно, есть способ, о котором мы не знаем) способ выбрать, что Wine должен использовать для конкретных игр без утомительной работы, — это создать разные WINEPREFIX папки. Это один из работающих способов, вы можете установить префикс, например, WINEPREFIX=$HOME/.wine-dxvk или WINEPREFIX=$HOME/.wine-nine и установите игры в предпочитаемую вами установку Wine.

Можно запустить wine ninewinecfg и отключить параметр «Включить Gallium Nine для повышения производительности графики D3D9». Эта работа работает и имеет смысл, если ninewinecfg не был сломан бесполезным мусором. Это значит, что опция отключает любую поддержку DX9 , а не только Gallium Nine. Причина в том, что ninewinecfg переместит существующие библиотеки d3d9.dll в d3d9..dll.old и создайте символические ссылки с d3d9-nine.dll на d3d9.dll , когда он установлен, и , удалите символическую ссылку и оставьте ее, когда она отключена. Это, очевидно, не оставит конечному пользователю никакой работающей реализации DX9. Было бы не стыдно, если бы того, кто подумал, что это хорошая идея, ударили стержнем из промышленной стали диаметром 1000 мм и диаметром 50 мм.