Coraz więcej gier oferuje kilka API do wyboru w ustawieniach graficznych. Najczęściej jest to DirectX 12 i Vulkan, choć zdarza się też DirectX 11 czy OpenGL. Sprawdźmy więc jak wybór API wpływa na wydajność różnych kart graficznych.
Jak wykonywałem testy?
Do porównania różnych API wykorzystałem benchmark GFXBench 5.0. Dostępny jest on pod tym linkiem i każdy z Was może go pobrać i wykonać własne testy. Nie wykonywałem jednak wszystkich dostępnych testów, ponieważ nie każdy działa na wszystkich API. Zdecydowałem się na sprawdzenie kart graficznych w teście 1440p Aztec Ruins (High Tier) Offscreen.
Jest to test pozwalający zmierzyć wydajność takich API jak OpenGL, DirectX 11, DirectX 12 czy Vulkan. Wykorzystuje on zaawansowane efekty, takie jak rozmycie ruchu, okluzję otoczenia czy głębie ostrości. W opcji High Tier dochodzi też symulacja cząstek czy lepsza jakość oświetlenia. Test pozwala więc bardzo dobrze zmierzyć wydajność kart graficznych przy wykorzystaniu różnych API.
Jak zawsze wspomnę o sprawie z kartami AMD. W komentarzach pod tego typu artykułami często narzekacie na brak większej ilości kart AMD. To nie jest moja zła wola ani chęć promowania Nvidii. Nie mamy współpracy z AMD, ponieważ nie byli w stanie dostarczyć nam swoich produktów jak grafiki na testy, a producenci mają ich po prostu za mało, by móc zostawić na stałe w redakcji. Jeśli wejdziecie w dział testy to zobaczycie, że nie ma tam praktycznie kart czerwonych. Skoro nawet do recenzji nie mam jak otrzymać karty, to tym bardziej nie mogę do tego typu artykułu. Osoba pracująca w AMD też zwróciła nam na to uwagę i poinformowała, że omówi tę kwestię z osobą decyzyjną. Najwyraźniej góra nie była zainteresowana. Nie mam pojęcia skąd wynika taka postawa firmy – zrobiłem, co mogłem i niestety nie zmuszę AMD do współpracy. Jedynie Wy możecie nakłonić do tego firmę :)
Wykorzystane w testach sterowniki to Nvidia Game Ready 446.14 i AMD Adrenalin 20.5.1.
Testy
Karty układają się w rankingach zgodnie z oczekiwaniami i nie ma żadnych zaskoczeń. GTX 1650 GDDR6 jest minimalnie wydajniejszy od GTX 1650, a RX 5500 XT 8 GB jest pomiędzy GTX 1650 GDDR6 a GTX 1660 SUPER. Pozostałe karty układają się zgodnie z cenami i nazewnictwem.
OpenGL znacznie odstaje od pozostałych API. Wydajność kart graficznych jest zdecydowanie najsłabsza – wyjaśnia to, dlaczego tak mało gier ciągle opiera się o OpenGL. Niestety różnice są znaczące i wybór tego API może bardzo mocno wpłynąć na wydajność.
DirectX 12 jest zawsze wydajniejszy od DirectX 11. Różnice zależą jednak od danej karty graficznej. Na najmocniejszych grafikach różnica jest minimalna, podczas gdy na słabszych sięga ona nawet ponad 10 fps. Tutaj okazuje się, że DirectX 12 zapewnia lepszą wydajność w benchmarku.
Vulkan w przypadku kart Nvidi zapewnia największą wydajność. Różnice potrafią sięgać sporo ponad 10 fps nawet na najmocniejszych konstrukcjach. Nic więc dziwnego, że to API zyskuje na popularności i trafia do wielu gier. Co ciekawe w przypadku jedynego przedstawiciela AMD widoczny jest minimalny spadek fps – jest to zgodne z poprzednimi testami, gdzie Vulkan na AMD wypadał gorzej niż DirectX12.
Podsumowanie
Testy jasno pokazują kilka spraw. OpenGL zapewnia najmniejszą wydajność wśród testowanych kart graficznych. Różnice są znaczące i jeśli macie do wyboru inne API to warto je wybrać. DirectX 11 jest też zawsze słabszy od DirectX 12. W przypadku kart Nvidi najlepiej wypada Vulkan, zapewniając spory zysk w fps. W przypadku kart AMD Vulkan wypada minimalnie gorzej od DirectX 12.
Mam nadzieję, że takie porównanie pomoże Wam w wyborze odpowiedniego API w interesującym Was tytule. W przyszłości postaram się zrobić więcej tego typu porównań, które sprawdzą działanie różnych API w praktyce.