Kilka dni temu opisywaliśmy różnicę w wydajności między system Archlinux, a Ubuntu. W obu przypadkach zastosowano tą samą konfigurację sprzętową, te same pakiety i domyślnie włączonego Compiza w drugim systemie, czego pierwszy nie posiadał. W jednym teście dało to zdumiewające wyniki. Serwis phoronix.com postanowił zrobić kolejne testy na sprawdzenie, dlaczego tak się dzieje.
Okazuje się, że nawet jeżeli gry i testy OpenGL są uruchomione w pełnym ekranie, w pewnych konfiguracjach sam Compiz ma wpływ na wydajność. Compiz sam w sobie nie zatrzymuje się w momencie uruchomienia gry albo aplikacji w pełnym ekranie, on dalej działa w tle, wykorzystując pośrednie renderowanie (komunikacja z kartą graficzną po przez X Serwer). Tymczasem używając upiększającego menedżera okien, możemy zyskać, w czasie uruchamiania programów na pełnym ekranie z wykorzystaniem OpenGL, jak szybsze przełączanie i klika innych ulepszeń. Ale dla większości użytkowników Compiz nie jest potrzebny i może powodować spadki wydajności w postaci pośredniego renderowania i kilku innych czynników związanych z menedżerem kompozycji okien na Linuksie.
Testy wykonano z wykorzystaniem:
- Procesor Intel Core i3 530 taktowanym 3.32 GHz
- Płyta główna ECS H55H-M
- Pamięć RAM 2GB
- Dysk SSD 65GB OCZ Vertex
- Grafika: zintegrowana grafika Clarkdale, ATI Radeon HD 4830, NVIDIA GeForce 9800GT
Wszystkie testy wykonano na zainstalowanym Ubuntu 10.04 z:
- jądrem Linux 2.6.32-21-generic x86_64
- Gnome 2.30.0
- X.Org Server 1.7.6
- Mesa 7.7
- sterownik xf86-video-intel 2.9.1
- sterownik xf86-video-ati 6.13.0
- sterownik Catalyst 10.4
- sterownik Nvidia 195.36.15
Każdą konfigurację z innym sterownikiem wykonano w rozdzielczości 1920×1080, podczas włączonego Compiza z „Normalnymi” efektami pulpitu, oraz kiedy używano Metacity, w opcją „Wyłączonych” efektów pulpitu.
Testowano wbudowaną grafikę Intel Clarkdale ze sterownikami Intela, grafikę ATI z własnościowymi sterownikami Catalyst, grafikę Nvidia z własnościowymi sterownikami NVIDIA Linux, i otwarty sterownik graficzny ATI Radeon, kiedy używano kernel-mode-setting z DRI2 oraz kiedy używano user-space-mode-setting razem z poprawkami kodu DRI1. W przeciwieństwie do sterownika Intel, programiści otwartych sterowników AMD nie porzucili jeszcze wsparcia dla ich wspieranego user-space-mode-setting. Sterownik AMD posiada wsparcie DRI2, kiedy używa nowszej poprawki kodu KMS.
Gry, które zostały użyte do testów:
- Warsow
- OpenArena
- World of Padman
- Tremulous
- Urban Terror
- Nexuiz
- VDrift
- Unigine Sanctuary
- Unigine Tropics
- Unigine Heaven
- Lightsmark
Kilka gier mogło być uruchomionych z własnościowymi sterownikami ATI/NVIDIA, jako że najnowsze otwarte sterowniki Mesa nie wspierają ich.
Legenda [Compiz / Metacity ]
Warsow 0.5
Intel: 20.93 / 24.07
Mesa: 3 / 4
Catalyst: 223.30 / 225.67
Nvidia: 210.50 / 252.67
OpenArena 0.8.5
Intel: około 30 / 37.33
Radeon+KMS: 47.70 / 54.80
Radeon+UMS: 62.70 / 62.67
Catalyst: 302.83 / 305.37
Nvidia: 411.87 / 512.67
World of Padman 1.2
Intel: 20 / 42
Radeon+KMS: 36.63 / 44.30
Radeon+UMS: 59.90 / 59.90
Catalyst: 254.67 / 258.58
Nvidia: 400.13 / 444.27
Tremulous 1.1.0
Intel: 48.03 / 56.60
Radeon+KMS: 92.37 / 60.10
Radeon+UMS: 106.90 / 106.67
Catalyst: 174.07 / 171.40
Nvidia: 176.63 / 180.00
Urban Terror 4.1
Intel: 31.00 / 38.10
Radeon+KMS: 37.50 / 43.70
Radeon+UMS: 54.40 / 54.40
Catalyst: 128.55 / 129.95
Nvidia: 175.15 / 179.60
Powyższe wyniki testów jasno pokazują, jak uruchomiony Compiz wpływa na wydajność w grach, w stosunku do Metacity. Na sterownikach Intel wydajność zwiększała się około 15%, sterowniki Radeon wykazywały niewielkie zmiany, tak samo sprawa się tyczy sterowników Catalyst. Natomiast sterowniki Nvidia wykazywały od 11% do prawie 30% w zależności od gry. Jednakże gra Tremulous zaskoczyła przy sterownikach Radeon+KMS, gdzie włączony Compiz zwiększał wydajność 0 54%, w przeciwieństwie do Metacity. Tymczasem na innych sterownikach nie było widać żadnej różnicy wydajności.
Nexuiz 2.5.2
Catalyst: 141.04 / 126.37
Nvidia: 102.97 / 118.02
VDrift 2009-06-15
Catalyst: 85.61 / 85.60
Nvidia: 64.00 / 69.02
Unigine Sanctuary 2.2
Catalyst:35.74 / 35.69
Nvidia: 33.65 / 36.97
Unigine Tropics 1.2
Catalyst: 31.90 / 31.91
Nvidia: 28.45 / 32.47
Unigine Heaven 2.0
Catalyst: 20.95 / 22.00
Nvidia: 14.56 / 25.34
Lightsmark 2008
Catalyst: 290.30 / 297.98
Nvidia: 315.25 / 418.29
Kolejna garść testów jasno pokazuje, że na sterowniki Catalyst nie ma wpływu menedżer okien, natomiast sterowniki Nvidia mają przyrost wydajności od 10% do 63%. Sterowniki Intel, Mesa oraz Radeon nie obsługiwały nowości programowych OpenGL.
Podsumowując można stwierdzić, że otwarte sterowniki do gier po prostu się nie nadają. Ich wydajność jest po prostu kiepska w porównaniu do sterowników własnościowych Nvidia, czy ATI. Jednakże mogą one w niektórych przypadkach uruchamiać Compiza i korzystać z części jego funkcji. Najlepiej dopracowanymi i najwydajniejszymi okazały się sterowniki Nvidia, których przyrost wydajności w prawie każdym teście był ogromny.
Czy ja dobrze kumam… Włączenie Compiza przyśpiesza grę?
Źle, wyłączenie.
Początek artykułu mnie zmylił. Wydaje się jakby Compiz pomagał. No i nie podobają mi się testy. W pierwszej części testów jest wykazane, że Compiz spowalnia gry.
W drugiej części mamy napisane:
to ja nie kumam już… :/
No i drugi wynik testów prawie wynikami się nie różni od poprzedniego.
Tylko @Greg, zauważ, że w drugiej części testów nie ma innych sterowników, niż własnościowe, o czym wspomniałem. Dlatego podzieliłem to na dwa.
Jak to nic nie kumacie? We wszystkich testach widać wyraźne, gdzie Compiz wpływa na wydajność, a gdzie nie.
Czyli jak się gra na Linuxie to lepiej wyłączyć Compiza?
@Pablo
Dokładnie.
Właśnie to miały pokazać owe testy. Że używanie Compiza i granie, to raczej nie jest dobre połączenie. Aczkolwiek spójrzcie na rozdzielczość podczas testów. Było to Full HD, czyli jakby mieć 1280×1024, to raczej różnicy wydajnościowej by się tak nie odczuwało.
Czyli jak gram przez wine to będę gasił compiza.