Linux E X P R E S

Facebook

Jak dopadla optimalizace Wine?

linvswin.png

V prvním díle jsem teoreticky popsal tři způsoby, jak je možné dosáhnout vyšších FPS. Nyní se dostávám přímo k porovnání výkonu několika konfigurací Wine na svobodném ovladači RadeonSI, proprietárním fglrx a pak také běhu na Windows 8.1. Jak to celé dopadlo?


Co a jak se testovalo

Na úvod popíši testovací sadu aplikací a také metodiku testů. Nejedná se o nic složitého a porovnával jsem jen výsledky průměrných FPS, nikoliv jejich průběh či minimální a maximální hodnoty. Každý test běžel pětkrát a do grafů je zanesena průměrná hodnota. Testování probíhalo na této sestavě:

  • Operační systém: Ubuntu 14.10 64bit; Windows 8.1 64bit
  • Ovladače GPU: Mesa 10.4 DRI3, fglrx 14.201 (Ubuntu), AMD Catalyst 14.11 (Windows)
  • Verze Wine: 1.7.10 (Výchozí/CSMT), 1.7.30 (Gallium Nine)
  • RAM: 8 GB (2*4 GB) DDR3
  • CPU: AMD Phenom II X4 955 BE
  • GPU: AMD Radeon HD 7770 GHZ Edition

Vykreslování probíhalo na rozlišení 1280 * 1024 px s obnovovací frekvencí 75 Hz. Test 3DMark pak běžel na rozlišení 1024 * 768 px, protože jeho zdarma dostupná verze neumožňuje rozlišení a další parametry měnit. Kvůli několika problémům s DRI2 verzí svobodného ovladače a Gallium Nine jsem se rozhodl pro použití DRI3 verze ovladače ve všech testech. Rozdíly mezi Wine 1.7.10 a 1.7.30 byly minimální, tak, že vliv na FPS je zanedbatelný (v rámci odchylky měření).

Testované aplikace byly následující: Unigine Valley, 3DMark 2005 a Mafia II. Benchmark Unigine Valley je k dispozici i v nativním provedení pro Linux. Unigine Valley jsem testoval ve dvou různých nastaveních – Low a Ultra. Ani v jednom jsem nepoužil vyhlazování hran kvůli komplikacím na svobodném ovladači.

Dále byl součástí testovací sady aplikací 3DMark 2005. Verze 2003 a 2006 ve Wine nešly spustit. Nastavení bylo výchozí,  protože jej v neplacené „demo“ verzi nelze upravovat. A jako poslední testovací aplikaci jsem využil hru Mafia II, která poskytuje oficiální testovací nástroj přímo ve hře. Testování jsem prováděl na maximální detaily grafiky bez PhysX a bez vyhlazování hran. Anizotropní filtrování jsem nastavil na 16x.



Výsledky testů

1.png

2.png

V prvním a druhém grafu jsem porovnával výkon v benchmarku Unigine Valley na nejvyšší a nejnižší detaily. Jak můžete vidět, tak rozdíly mezi nastavením Ultra/Low nebyly příliš velké a je to dáno hlavně tím, že testovací grafika má dostatečně velkou paměť vzhledem ke dnes již nízkému rozlišení 1280 * 1024 px. Zajímavé však je, že na nízké detaily byl při nativním běhu rychlejší svobodný ovladač v porovnání s fglrx.

3.png

V 3DMarku 05 fglrx běželo ve výchozí instalaci Wine velice pomalu, ve srovnání se svobodným ovladačem a CSMT byl výsledek téměř poloviční. Tento test byl jediný, ve kterém nefungovalo vykreslování pomocí Gallium Nine.

4.png

Poslední testovanou aplikací byla Mafia II. Na testovací sekvenci je pravděpodobně jedna z nejnáročnějších scén ve hře – přestřelka v lihovaru. Na rozdíl od předchozího testu aktivace Gallium Nine odstranila grafické artefakty, které se objevovaly ve svobodném ovladači.

5.png

V posledním grafu jsem dal do kontrastu Gallium Nine, fglrx (Linux) a Windows. Z tohoto grafu je na první pohled jasné, že na hraní her ve Wine je výhodnější použít svobodný ovladač než proprietární.

Shrnutí aneb jak to tedy dopadlo?

Po prohlédnutí grafů je jasné, že ani Gallium Nine není pro hry ve Wine spásou a pod Windows si zahrajete lépe. Každopádně bych určitě doporučil použít verzi Wine podporující CSMT, resp. Gallium Nine. A když se náhodou vyskytnou nějaké komplikace, tak jednoduše nainstalujete přes PlayOnLinux klasické Wine.

Vývojáři Wine bohužel nejeví zájem o implementaci ani jednoho z popisovaných způsobů na zlepšení výkonu. Jejich důvody chápu – CSMT by mohl působit potíže při přidávání podpory novějších verzí DirectX a Gallium Nine je zase podporován jen na poměrně malém množství grafických ovladačů v Linuxu. Cílí však také na Mac OS X, kde ovladače Gallium3D nejsou vůbec.

Udržování dalšího vykreslovacího backendu by znamenalo poměrně velké nároky na vývoj a dokud nebude množina podporovaného HW větší, tak se asi začlenění Gallium Nine do Wine nedočkáme. Nedávno se na toto téma diskutovalo na Mesa mailing listu. Do Mesa 10.4 RC1 se však už Gallium Nine dostal, takže zprovoznění bude po začlenění nové verze do distribučních repozitářů mnohem snadnější.

Diskuze (3) Nahoru