Некоторое время назад я написал статью Linux: все, что я хотел знать про гибридную графику и производительность игр, в которой я сравнивал производительность с помощью бенчмарка Unigine Valley 2013, запуская его на одном и том же железе, под Windows, под Linux нативно и под Wine.
Если говорить коротко, ты результат был такой — производительность в OpenGL, как нативно, так и под Wine, практически такая же, как в Windows. С DirectX 9 ситуация оказалась не столь красочной, и лучший результат, который удалось получить, используя Wine Staging 2.20, оказался немногим более чем на 25% медленнее, нежели в Windows. DirectX 11 оказался вообще не у дел — бенчмарк запускался, но изображение выводилось неверно, с артефактами и т.п., поэтому от тестирования DirectX 11 я отказался.
И вот, некоторое время назад вышла версия Wine 3.0. В качестве нововведений в этом релизе, среди прочего, значится:
- Direct3D 10 and 11 support;
- The Direct3D command stream.
Что наводит на мысль, что в плане производительности могло что-то изменится.
В общем, переходим от размышлений к делу. Напомню условия:
Ноутбук Acer V3-772G:
Процессор: Core i7 4702MQ
Видеокарта: Intel HD 4600 \ NVIDIA GeForce GTX 760M, Nvidia Optimus.
Windows 10, драйвер Nvidia 388.31;
Ubuntu 16.04.3, драйвер Nvidia 384.90.
Бенчмарк запускался со следующими настройками: качество — высокое, сглаживание — x2, разрешение 1920×1080.
Вспомним, что под Windows 10 удалось получить 817 «попугаев».
Лучшее, что удалось выжать из связки Linux + Wine Staging 2.20 (с включенным CSMT) + Bumblebee + Primus — 603 «попугая».
Wine 3.0 удивил очень приятно, выдав на том же железе в тех же условиях 708!
Если взять производительность в Windows за 100%, то играя под Wine Staging 2.20, мы могли рассчитывать на 73,8% от номинальной производительность, а с выходом Wine 3.0 эта цифра увеличилась до гораздо более приятного значения — 86,6%.
Для наглядности:
Теперь к ситуации с DirectX 11. Откровенно говоря, полученный для него результат в 275 не впечатляет, однако тут есть два момента — во-первых, возможно это некоторые проблемы связанные именно с этим бенчмарком. Если судить по форумам — какие-то игры в DX11 не работают вообще, другие работают вполне внятно. Во-вторых, учитывая, что на прошлых версиях этот API вообще работал некорректно, а сейчас картинка отличная, несмотря на низкую производительность — это уже шаг вперед. В общем, «спасибо, что живой».