Articles

Valve: OpenGL jest szybszy niż DirectX – nawet w systemie Windows

ta strona może zarabiać prowizje partnerskie z linków na tej stronie. Warunki użytkowania.
L4D2, działający natywnie na Ubuntu 11.10

w przerażającym skręcie, który wzmacnia niesmak Valve do Windows 8, okazuje się, że silnik Source — silnik 3D, który napędza Half Life 2, Left 4 Dead I Dota 2 — działa szybciej na Ubuntu 12.04 i OpenGL niż Windows 7 i DirectX/Direct3D.

zespół Valve Linux łamie go na swoim błyszczącym nowym blogu: z Nvidia GTX 680, Intel i7-3930K i 32 GB PAMIĘCI RAM, Windows 7 i DirectX, Left 4 Dead 2 maxes out at 270.6 fps. Z tym samym sprzętem, ale innym oprogramowaniem — Ubuntu 12.04 i OpenGL — L4D2 osiąga 315 fps, prawie 20% szybciej niż Windows.

liczby te są niezwykłe, biorąc pod uwagę, że Valve udoskonala wydajność silnika Source pod Windows od prawie 10 lat, podczas gdy zespół Valve Linux pracuje nad Linuksowym portem Source dopiero od kilku miesięcy. Valve przypisuje speed-up do ” podstawowej wydajności jądra i OpenGL.”

Linuksowy port L4D2 nie zaczynał się oczywiście przy 315 fps — początkowa wersja faktycznie osiągała maksimum przy zaledwie 6 fps. Aby osiągnąć tak ogromny wzrost wydajności, przyjęto podejście trójstronne: gra jest ulepszona, aby dobrze grać z jądrem Linuksa, gra jest zoptymalizowana do pracy z OpenGL (zamiast DirectX), a błędy w sterownikach graficznych Linuksa są usuwane.

ten ostatni punkt jest ciekawy: Valve od dawna współpracuje z firmami AMD, Nvidia i Intel, gdzie Valve zgłasza błędy sterowników, a producent GPU naprawia je w odpowiednim czasie. Valve przenosi tę relację na Linuksa, co jest bardzo ważne dla dalszego rozwoju Linuksa jako platformy do gier. W tym przypadku Valve mówi, że sterownik NVIDIA Linux nie miał obsługi wielowątkowości — a gdy dodali go do późniejszej wersji sterownika, wydajność wzrosła.

ale oto najlepszy bit: korzystając z tych nowych optymalizacji OpenGL, wersja OpenGL L4D2 w systemie Windows jest teraz szybsza niż wersja DirectX. Z tym samym sprzętem, Windows 7/OpenGL/L4D2 zegary w 303.4 fps — w porównaniu do Windows 7/DirectX/L4D2 przy 270.6 fps. Krótko mówiąc: OpenGL jest szybszy niż DirectX.

logo DirectXjeśli chodzi o to, dlaczego OpenGL jest szybszy niż DirectX / Direct3D, prostą odpowiedzią jest to, że OpenGL wydaje się mieć płynniejszy, bardziej wydajny potok. Przy 303.4 fps, OpenGL renderuje klatkę co 3.29 milisekund; przy 270.6 fps, DirectX renderuje klatkę w 3.69 milisekund. Ta 0,4 milisekundy różnica polega na tym, jak szybko potok DirectX może przetwarzać i rysować dane 3D.

dlaczego nadal Używamy Direct3D?

skoro OpenGL jest szybszy, to dlaczego DirectX nadal jest dominującym API? To nie z powodu jakości obrazu lub funkcji: OpenGL 4.0 ma wszystkie shadery i tessellatory i widżety, które ma DX. Nie jest to spowodowane obsługą sprzętu: wszystkie karty graficzne Nvidia i AMD obsługują najnowszą wersję OpenGL wraz z DirectX.

tak naprawdę wszystko sprowadza się do tego, co nazywamy efektem sieciowym – i oczywiście monopolistycznym heft i marketingowym. DirectX, ponieważ ma czystsze API i lepszą dokumentację, jest łatwiejszy do nauczenia. Więcej programistów korzystających z DirectX = więcej gier DirectX = lepsza obsługa sterowników. Jest to błędna pętla, która ponownie prowadzi do większej liczby programistów DX, więcej gier DX i lepszych sterowników/narzędzi/dokumentacji DX. Microsoft bezlitośnie wprowadził też DirectX — a kto może zapomnieć o wydaniu Windows Vista i kampanii Microsoftu OpenGL smear? Dołączona do Visty wersja OpenGL była całkowicie sparaliżowana, zmuszając wielu programistów do przejścia na DirectX.

Steam Linux Microsoft ma dobry powód, aby hamować rozwój OpenGL, oczywiście: Chociaż DirectX jest zastrzeżony i działa tylko na Windows, Xbox i Windows Phone, OpenGL jest całkowicie wieloplatformowy. Istnieją solidne implementacje OpenGL dla komputerów Mac, Linux, PlayStation 3, Nintendo Wii i prawie każdego nowoczesnego smartfona (OpenGL ES). Oczywiście w najlepszym interesie Microsoftu jest zapewnienie, że najlepsze wrażenia z gier są wyłącznie dla jego platform.

z niesmakiem Gabe ’ a Newella do Windows 8 (i echem Blizzarda), zbliżającym się wydaniem Steam na Linuksa i ciągłym rozwojem gier na smartfony, możemy być u progu rewolucji OpenGL. Jeśli Korona gier Windows nadal się ślizga, OpenGL może wkrótce stać się domyślnym API, a nie myśleniem. Wkrótce może być standardem opracowanie gry, która działa dobrze na każdej platformie – zamiast skupiać się na Direct3D i zostawiać Linuksa i OS X na lodzie.

Valve będzie mówić o swoich postępach Linux/OpenGL na SIGGRAPH 2012 w przyszłym tygodniu. SIGGRAPH to miejsce, w którym zwykle słyszymy o najnowszych nowościach OpenGL i DirectX – więc bądźcie czujni!

Updated @ 2:40: Historia pierwotnie stwierdził, że OpenGL spec zwykle wyprzedza DirectX-ale to nie było prawdą od kilku lat.