☝🏻 Подняться в начало
Фото аватара

Смог ли Wayland приблизить крах Windows?

Мне было крайне любопытно провести сравнение производительности 3D графики под Wayland и X11, а заодно и сравнить результаты с тем же железом под Windows.

В повседневных задачах Wayland демонстрирует неоспоримые преимущества по сравнению с X11. Однако, когда речь идет о производительности полноэкранных приложений, ситуация остается неоднозначной. В отличие от X11, где использование композитора является необязательным, в Wayland по умолчанию всегда используется вертикальная синхронизация (VSync) для полноэкранных приложений.

В конце 2022 года в Wayland была добавлена возможность отключения VSync, однако, в моём случае, я не смогла сделать это. Поэтому было принято решение провести сравнительное исследование производительности 3D-графики при использовании протокола Wayland, сервера X11 и сравнить результаты с производительностью в Windows.

Тестовые стенды

Для проведения сравнительного анализа производительности 3D-графики были выбраны три видеокарты:

В качестве тестируемого программного обеспечения были выбраны игра Counter-Strike: Global Offensive и бенчмарк Unigine Heaven.

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

Особенности при тестировании

Для запуска игры CS:GO под Wayland потребовалось использовать следующие параметры запуска:

-novid -high -fullscreen env SDL_VIDEODRIVER=wayland -vulkan
Параметры запуска CS:GO в Steam для Wayland
Параметры запуска CS:GO в Steam для Wayland

Аналогично, для X11 использовались следующие параметры:

-novid -high -fullscreen env SDL_VIDEODRIVER=x11 -vulkan

Без явного указания SDL-видеодрайвера игра запускалась через XWayland, что оказывало негативное воздействие на производительность. Параметр -vulkan также позволял повысить производительность, благодаря использованию более современного API. Без опции -fullscreen игра в графической оболочке GNOME работала только в оконном режиме.

Кроме того, параметры -novid и -high применялись также и при запуске игры под Windows. Первый параметр позволял пропустить заставку, а второй приоритизировал процесс игры.

Результаты тестирования в бенчмарке

Рассмотрим результаты бенчмарка Unigine Heaven, так как у нас есть наиболее полные данные по нему. Для каждой видеокарты было проведено по 4 измерения производительности:

Тестирование AMD Radeon RX 580

Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 в Windows с помощью DirectX 11.0
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 в Windows с помощью DirectX 11.0
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 в Windows с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon RX 580 в Windows с помощью OpenGL

По итогам анализа различий в производительности между наилучшим и наихудшим результатом для каждой видеокарты выявлено, что разница составила всего лишь 16%. Интересно, что данная видеокарта проявила себя лучше с использованием OpenGL, чем с DirectX 11.

Тестирование AMD Radeon PRO Vega 7

Теперь проведем тестирование на ноутбуке ThinkPad P14s Gen.1 c процессором AMD Ryzen PRO 4750U и видеокарте AMD Radeon PRO Vega 7.

Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon Pro Vega 7 под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon Pro Vega 7 под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 в Windows с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 в Windows с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 в Windows с помощью DirectX 11.0
Бенчмарк Unigine Heaven запущенный на видеокарте AMD Radeon PRO Vega 7 в Windows с помощью DirectX 11.0

Результаты для данной видеокарты оказались впечатляющими! Прирост производительности на Windows с DirectX 11.0 по сравнению с Linux на Wayland с OpenGL составил целых 39,14%!

Для владельцев подобных видеокарт, на мой взгляд, стоит предпочесть Windows, если им важна производительность в 3D-приложениях. Это особенно удивительно, учитывая, что данный ноутбук относится к категории мобильных рабочих станций и в некоторых конфигурациях поставляется с предустановленной Red Hat Enterprise Linux.

Тестирование NVIDIA GeForce GTX 1080 Ti

Теперь проведем тестирование на видеокарте NVIDIA GeForce GTX 1080 Ti с использованием проприетарного драйвера.

Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti под Wayland в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti под X11 в Linux с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti в Windows с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti в Windows с помощью OpenGL
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti в Windows с помощью DirectX11
Бенчмарк Unigine Heaven запущенный на видеокарте NVIDIA GeForce GTX 1080 Ti в Windows с помощью DirectX11

В отличие от AMD, NVIDIA продемонстрировала лучший результат на Wayland, а не на X11. Тем не менее, этому факту я бы не уделяла много внимания, поскольку работать с NVIDIA под Wayland — это довольно неприятное занятие. Несмотря на то, что официальная поддержка Wayland началась с версии 515 драйвера, даже на последней доступной на момент написания этой статьи версии 537 ситуация не улучшилась. По-прежнему использовать NVIDIA под Wayland остается практически невозможным.

Сравнение в Counter-Strike

Заодно, сравним производительность Windows и Linux в реальной игре.

Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon RX 580 под Wayland в Linux с помощью Vulkan
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon RX 580 под Wayland в Linux с помощью Vulkan
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon RX 580 в Windows 11 с помощью DirectX 9.0
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon RX 580 в Windows 11 с помощью DirectX 9.0
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon PRO Vega 7 под Wayland в Linux с помощью Vulkan
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon PRO Vega 7 под Wayland в Linux с помощью Vulkan
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon PRO Vega 7 в Windows 10 с помощью DirectX 9.0
Игра Counter-Strike: Global Offensive запущенная на видеокарте AMD Radeon PRO Vega 7 в Windows 10 с помощью DirectX 9.0

Заметно, что в данной игре Windows демонстрирует определенное, хоть и не слишком значительное, преимущество в производительности. Даже использование современного API Vulkan не позволяет полностью компенсировать это преимущество.

Преимущество Windows на видеокарте RX 580 составляет 6,27%, а на Vega 7 — 14,49%.

Подведение итогов

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

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

Результаты в бенчмарке Unigine Heaven
Результаты в бенчмарке Unigine Heaven
Результаты в игре Counter-Strike: Global Offensive
Результаты в игре Counter-Strike: Global Offensive

Сведя все полученные результаты в единую диаграмму, можно сделать следующие выводы: