Nowe API - tej siły już nie powstrzymacie
Mijający rok, jeżeli chodzi o branżę gier komputerowych, niewątpliwie upłynął pod znakiem nowych, niskopoziomowych interfejsów programowania (API) – na szczególną uwagę zasługują tutaj dwa najbardziej obiecujące: DirectX 12 i Vulkan, aczkolwiek w ramach kronikarskiego obowiązku musimy tutaj jeszcze wymienić Metal API (niszowe rozwiązanie przygotowane przez programistów firmy Apple).
Co prawda nowe interfejsy nie wpłynęły aż tak bardzo na poprawę oprawy wizualnej nowych tytułów, ale za to pozwoliły lepiej wykorzystać potencjał nowych podzespołów, zoptymalizować proces generowanego obrazu i tym samym poprawić płynność wyświetlanej animacji. Nowe API, w dobie coraz większych wymagań co do sprzętu, mogą mieć zbawienny wpływ nie tylko na wrażenia z rozrywki, ale też na nasze portfele.
DirectX 12
DirectX 12 został opracowany przez Microsoft, ale przy jego projektowaniu brały udział także inni kluczowi gracze na rynku podzespołów: AMD, Intel, Nvidia i Qualcomm. Nie powinno więc nas dziwić, że to właśnie ten standard obecnie cieszy się największym zainteresowaniem wśród nowych, niskopoziomowych interfejsów programowania. Oprócz komputerów, korzysta z niego również konsola Xbox One.
Wśród najważniejszych funkcji nowego DirectX znajduje się obsługa asynchronicznych jednostek cieniujących (Async Shaders) - pozwalają one znacząco skrócić czas renderingu i reakcji, co z kolei zwiększa płynność animacji i minimalizuje opóźnienia. Rozwiązanie to odgrywa duże znaczenie również w systemach wirtualnej rzeczywistości (np. goglach VR).
Wartym odnotowania jest także wielowątkowy bufor rozkazów (Multi-Threaded Command Buffer Recording), który pozwala wykorzystać dotychczas nieobciążane rdzenie procesora, zmniejszyć narzut sterownika na procesor, rozłożyć na wiele rdzeni złożone obliczenia poprzedzające przekazanie zadania do karty graficznej, zwiększyć szczegółowość scen, a także po prostu umożliwia bezpośrednią komunikację każdego z rdzeni z kartą graficzną.
Wymagania DirectX 12:
- system operacyjny Windows 10
- układ graficzny:
- AMD: Radeon HD 7000 (od HD 7730), R5 240, R7, R9 lub RX
- Nvidia: GeForce 400, 500, 600, 700, 900 i 1000
- Intel: Haswell, Broadwell, Skylake, Kaby Lake
Vulkan
Vulkan jest dziełem zespołu Khronos Group, który współpracuje z wszystkimi największymi producentami i deweloperami. Nowy interfejs można nazwać następcą OpenGL, aczkolwiek ma on również wiele wspólnego z Mantle API (otwartym standardem opracowanym przez AMD - obecnie już nierozwijanym).
Podobnie jak DirectX 12, standard ten charakteryzuje mniejszy narzut na procesor i możliwość bezpośredniego odwoływania się do układu graficznego.
Głównym atutem jest jednak możliwość wykorzystania go na różnych platformach, niezależnie od systemu operacyjnego. Warto jednak zauważyć, iż Vulkan, w odróżnieniu od DirectX 12, nie jest wspierany przez karty Nvidia GeForce 400 i 500 z generacji Fermi
Wymagania Vulkan API:
- system operacyjny Windows, Linux, Android, Tizen
- układ graficzny:
- AMD: Radeon HD 7000 (od HD 7730), R5 240, R7, R9 lub RX
- Nvidia: GeForce 600, 700, 900 i 1000
- Intel: Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake
Nie ma co ukrywać, nowe interfejsy z pewnością są przyszłością gier i przez to mogą nieźle namieszać również na rynku podzespołów komputerowych. W związku z tym postanowiliśmy sprawdzić, na jaki wzrost wydajności możemy liczyć po przełączeniu się na DirectX 12 lub Vulkana - za przykład posłużyło nam siedem popularnych gier.
OCAT - nowe narzędzie do pomiaru wydajności
Po premierze pierwszych gier wykorzystujących nowe interfejsy programowania, pojawił się problem, czym zmierzyć płynność wyświetlanej animacji i tym samym np. wzrost osiągów po zmianie API. Dotychczasowe aplikacje nie chciały współpracować, więc rozpoczęto prace nad nowymi narzędziami.
Jednym z pierwszych, powszechnie wykorzystywanych narzędzi był PresentMon, który radził sobie z wszystkimi najczęściej wykorzystywanymi API (DirectX 11, DirectX 12, OpenGL i Vulkan), a także platformą UWP (Universal Windows Platform). Dodatkowym atutem były spore możliwości aplikacji, bo na podstawie generowanych danych można było nie tylko obliczyć minimalne, średnie i maksymalne fps-y, ale też np. ilość odrzuconych klatek czy też takich niewygenerowanych w całości (funkcja ta sprawdzała się np. w wykrywaniu mikroprzycięć).
Problem jednak w tym, że PresentMon nie należał do zbyt intuicyjnych aplikacji - działał w konsoli, był aktywowany w tle, gdy dana gra została już uruchomiona, a na dodatek wymagał wskazania konkretnego procesu do monitorowania. Ponadto konieczne było wykorzystanie kolejnej aplikacji do interpretacji wygenerowanych wyników (np. FLA Calculator). Czasami też aplikacja ni stąd, ni zowąd potrafiła się „wykrzaczyć”. Mówiąc w skrócie, niby wszystko działało, ale narzędzie było toporne w obsłudze.
OCAT
Firma AMD postanowiła jednak wyjść naprzeciw entuzjastom i wraz z wprowadzeniem nowych sterowników Radeon Software Crimson ReLive Edition, udostępniła również aplikację OCAT (Open Capture and Analytics Tool). Warto jednak podkreślić, iż nie jest ona integralną częścią sterowników, a zatem działa również na sprzęcie Intel czy Nvidii. Zainteresowani mogą ją ściągnąć oddzielnie (tutaj).
OCAT to darmowe narzędzie, które bazuje na aplikacji PresentMon – można więc powiedzieć, że jest nakładką graficzną, która znacznie ułatwia korzystanie z tego narzędzia. Całość jest bardzo łatwa w obsłudze, a wszystkie najważniejsze opcje mieszczą się w małym okienku – możemy zdecydować, którym klawiszem uruchamiamy pomiar, po jakim czasie zostanie on automatycznie wyłączony (jeżeli wpiszemy 0 będzie on trwał aż do zatrzymania), a także czy monitorujemy wszystkie czy też jakąś konkretną aplikację.
Wystarczy więc, że włączymy aplikację OCAT, aktywujemy ją przyciskiem START, a następnie włączymy interesującą nas grę…
...w takiej sytuacji powinniśmy zobaczyć w prawym górnym rogu licznik klatek na sekundę (FPS) i czas generowania poszczególnych klatek (ms). Gdy włączymy/wyłączymy pomiar, aplikacja poinformuje nas stosownym komunikatem na ekranie.
Pliki wynikowe (CSV) są przechowywane w folderze „C:\Users\[nazwa_użytkownika]\Documents\OCAT\Recordings”. Niestety OCAT nie zawiera narzędzia do interpretowania wyników, więc konieczne jest tutaj wykorzystanie dodatkowej aplikacji (np. wspomnianego już przez nas FLA Calculator).
Platforma testowa
[kontrolka produkt=amd-fx-8350 typ=top10new tytul="AMD FX-8350 " opis="AMD FX-8350 to obecnie jeden z najwydajniejszych modeli z ofercie AMD - z założenia jest on kierowany do graczy i entuzjastów. Procesor bazuje na starszej architekturze modułowej, został wyposażony w cztery moduły/osiem wątków o taktowaniu 4,0/4,2 GHz."]
[kontrolka produkt=be-quiet-dark-rock-pro-3 typ=top10new tytul="be quiet! Dark Rock Pro 3" opis="Do chłodzenia procesorów wykorzystaliśmy be quiet! Dark Rock Pro 3, a więc jeden z najwydajniejszych coolerów dostępnych na rynku."]
[kontrolka produkt=gigabyte-ga-990fx-gaming typ=top10new tytul="Gigabyte GA-990FX-Gaming" opis="Płyta główna Gigabyte GA-990FX-Gaming posłużyła nam do przetestowania procesora AMD FX-8350. Model ten zalicza się do jednych z najlepiej wyposażonych konstrukcji z podstawką AM3+."]
[kontrolka produkt=amd-radeon-rx-480 typ=top10new tytul="AMD Radeon RX 480" opis="Testy przeprowadziliśmy na platformie z referencyjną kartą graficzną Radeon RX 480 8 GB z najnowszej generacji AMD Polaris. Model ten reprezentuje średnią półkę wśród graczy."]
[kontrolka produkt=kingston-hyperx-genesis-2x-4-gb-2400-mhz typ=top10new tytul="Kingston HyperX Genesis 2x 4 GB 2400 MHz CL11" opis="Do przetestowania procesorów AMD wykorzystaliśmy starsze pamięci DDR3 - 2-kanałowy zestaw 2x 4 GB o taktowaniu 2400 MHz."]
[kontrolka produkt=samsung-ssd-960-evo-1-tb typ=top10new tytul="Samsung SSD 960 EVO 1 TB " opis="Za dysk dystemowy posłużył nam Samsung SSD 960 EVO w wersji o pojemności 1 TB. Nośnik korzysta z interfejsu M.2 32 Gb/s i protokołu NVMe - mówiąc w skrócie, jedna z topowych konstrukcji dostępnych na rynku."]
[kontrolka produkt=be-quiet-dark-power-pro-10-850-w typ=top10new tytul="be quiet! Dark Power Pro 10 850 W" opis="Za zasilanie platformy odpowiadała jednostka be quiet! Dark Power Pro 10 850 W, która wyróżnia się wysoką jakością wykonania, cichą pracą i cześciowo modularnym okablowaniem."]
[kontrolka produkt=microsoft-windows-pro-10-64-bit-oem-dvd typ=top10new tytul="Windows 10 Pro 64 bit" opis="Nasza konfiguracja sprzętowa działa pod obsługą systemu operacyjnego Windows 10 Pro 64-bit - jest on niezbędny do wykorzystania potencjału DirectX 12."]
Dodatkowe oprogramowanie:
- Sterowniki: AMD Radeon Software Crimson ReLive Edition 16.12.1
- Pomiar płynności animacji: Open Capture and Analytics Tool 0.9.9 Beta
Ashes of the Singularity to pierwsza gra, która pozwalała wykorzystać potencjał DirectX 12 (w tym także asynchronicznych jednostek cieniujących - domyślnie włączonych). Tytuł ten nie cieszy się zbyt dużą popularnością i częściej jest wykorzystywany jako benchmark niż typowa gra.
Jak widać, wzrost wydajności jest tutaj zauważalny – szczególnie w przypadku minimalnych klatek na sekundę, które podskoczyły o ponad drugie tyle . Włączenie asynchronicznych jednostek cieniujących przełożyło się jeszcze na minimalnie lepsze wyniki.
Hitman nie należy do najnowszych tytułów, ale producent co jakiś czas udostępnia nowe epizody, które spowalniają starzenie tego tytułu. Co ważne, wsparcie dla DirectX 12 było dostępne podczas premiery gry.
Przełączenie się na nowe API przełożyło się na potężny wzrost wydajności. Z czystym sumieniem można powiedzieć, że w trybie DirectX 12 gra była w pełni płynna.
Najnowsza odsłona Tomb Raidera oferuje niezłą oprawę wizualną, ale też charakteryzuje się sporymi wymaganiami sprzętowymi. Gra otrzymała wsparcie dla DX12 kilka miesięcy po premierze.
Wzrost wydajności jest zbliżony do tego z Hitmana. Na szczególną pochwałę zasługują dużo mniejsze spadki płynności animacji.
DOOM to jeden z flagowych tytułów, który oferuje wsparcie dla interfejsu Vulkan (zostało ono dodane już po premierze gry). Tytuł ten został bardziej nastawiony na szybką akcję w rozgrywce jednoosobowej, więc można mówić o powrocie do korzeni z dwóch pierwszych części gry.
Zmiana OpenGL na Vulkana przełożyło się na ogromny wzrost wydajności – płynność animacji podskoczyła dwukrotnie, co jest naprawdę imponującym wynikiem. Szkoda, że w innych tytułach nie osiągnęliśmy aż takiego przyspieszenia :)
Battlefield 1 to bezapelacyjnie jedna z najlepszych gier mijającego roku. Nowy Battlefield wyróżnia się grywalnością, świetną oprawą graficzną i na dodatek bardzo dobrą optymalizacją. Wsparcie dla DirectX 12 było dostępne już podczas premiery.
DirectX 12 pozwala nieco zwiększyć płynność animacji, ale różnica względem starszego DirectX 11 nie jest aż tak imponująca (w zasadzie dotyczy ona średniego poziomu fps). Chyba spodziewaliśmy się czegoś więcej.
Tom Clancy's The Division to najnowsza gra, która oferuje wsparcie dla DirectX 12 – zostało ono jednak dodane dopiero kilka miesięcy po premierze, więc zainteresowani musieli się sporo naczekać. The Division to tytuł ukierunkowany na rozgrywkę wieloosobową, który nadal cieszy się całkiem sporą popularnością.
Podobnie jak w Battlefieldzie, wzrost wydajności jest zauważalny, ale aż tak nie imponuje.
Civilization VI to jedna z najpopularniejszych gier wg statystyk platformy Steam – rzecz jasna nie mogło więc jej zabraknąć w naszym zestawieniu. Wsparcie dla DirectX 12 dodano jednak dopiero kilka tygodni po oficjalnej premierze owego tytułu.
Nowy interfejs przyniósł odczuwalny wzrost płynności animacji, co ma szczególne znaczenie w sytuacji, gdy nasza cywilizacja jest już solidnie rozbudowana i licznik fps-ów potrafi mocno spaść w dół.
Można wiele zyskać
Początki nowych interfejsów nie były kolorowe i jeszcze niedawno tytuły wykorzystujące ich potencjał mogliśmy wymienić na palcach jednej ręki. Całe szczęście sytuacja ta zaczyna się zmieniać. Ba! Nabiera coraz większego rozpędu, bo praktycznie z miesiąca na miesiąc na rynku pojawiają się kolejne produkcje obsługujące nowe API – czy to w wydaniu premierowym czy też po wprowadzeniu odpowiedniej poprawki. Prognozuje się, że do końca 2017 roku na rynku powinno zostać wydanych ponad 50 tytułów (i to licząc tylko te zgodne z DirectX 12).
Nasze testy pokazują, że nawet użytkownicy starszych konfiguracji mogą wiele zyskać na przesiadce na nowe API. Procesory AMD FX są obecne na rynku już od 5 lat i jakkolwiek do dziś oferują niezłą wydajność w półprofesjonalnych, wielowątkowych zastosowaniach, tak w grach ich możliwości były mocno ograniczone przez API, które wciąż pomimo rozmaitych zabiegów, polegało w głównej mierze na wydajności pojedynczego rdzenia.
Wraz z wkroczeniem na rynek interfejsów DirectX 12 i Vulkan sytuacja się zmienia, bo gry wreszcie zaczynają wchodzić w erę prawdziwej wielowątkowości (czemu to tyle trwało?) i jak się okazuje w zdecydowanej większości wypadków połączenie procesora FX-8350 i karty Radeon RX 480 pozwala na zupełnie płynną grę w rozdzielczości 1080p bez spowolnień i zacięć. W zależności od tytułu możemy liczyć na wzrost płynności od 7% do nawet 98%.
| Gra | Stare API (średnie fps) | Nowe API (średnie fps) | Różnica |
| Ashes of the Singularity | 31 fps | 41 fps | 32% |
| Hitman | 57 fps | 74 fps | 30% |
| Rise of the Tomb Raider | 41 fps | 54 fps | 32% |
| DOOM | 66 fps | 131 fps | 98% |
| Battlefield 1 | 74 fps | 81 fps | 9% |
| Tom Clancy's The Division | 59 fps | 63 fps | 7% |
| Sid Meier's Civilization VI | 33 fps | 52 fps | 58% |
Jakie z tego wnioski? Tytułów obsługujących DX12/Vulkan tylko w tym roku pojawiło się 15, więc jeśli ten trend się utrzyma (a wszystko na to wskazuje), to użytkownicy procesorów AMD FX powinni się móc jeszcze długo cieszyć dobrą wydajnością w grach.
Dzięki DirectX 12 i Vulkan gry zaczynają wchodzić w erę prawdziwej wielowątkowości
Z drugiej strony warto pamiętać, że nowe interfejsy największy potencjał pokazują w przypadku komputerów z wielowątkowymi procesorami i kartami graficznymi AMD – to właśnie ten sprzęt był najbardziej ograniczany w starych API, a w nowych najbardziej rozwija skrzydła. W innych konfiguracjach zastosowanie DirectX 12 i Vulkana może przynieść mniejszy wzrost osiągów.