TechnologieDirectX 12 - co potrafi nowy interfejs API?

    DirectX 12 - co potrafi nowy interfejs API?

    Na wydajność komputera w grach wpływają nie tylko zainstalowane w nim podzespoły, ale również użyty interfejs programowania, czyli API, jakim jest np. DirectX. Sprawdziliśmy potencjał jego najnowszej wersji, DirectX 12. Oto, co nowego dwunastka wnosi w porównaniu ze starszymi rozwiązaniami.

    DirectX 12 - co potrafi nowy interfejs API?

    Przez ostatnie kilka lat jedynymi powszechnie używanymi API (ang. Application Programming Interface – interfejs programowania aplikacji) były kolejne wersje pakietu autorstwa Microsoftu – DirectX. Zmieniło się to po opracowaniu przez AMD nowego interfejsu o nazwie Mantle, który poprawił wydajność kart graficznych Radeon w grach. Było to możliwe, ponieważ Mantle to interfejs niskopoziomowy – zastosowanie go umożliwia uzyskanie znacznie większej kontroli nad sprzętem oraz lepszego wykorzystania mocy podzespołów, a co za tym idzie – większej wydajności. Wadą takiego rozwiązania jest pełna zgodność tylko z jednym rodzajem sprzętu, w tym wypadku z kartami graficznymi opartymi na architekturze Graphics Core Next.

    DirectX 12

    Bezpośrednią odpowiedzią na pojawienie się Mantle było przedstawienie przez Microsoft własnego niskopoziomowego API – DirectX 12. Nowa wersja ma oferować rozwiązania stosowane przez AMD, zachowując kompatybilność ze wszystkimi rodzajami kart graficznych dostępnych na rynku. Jeszcze kilka lat temu stworzenie niskopoziomowego API działającego na większości kart graficznych dostępnych na rynku było uważane za niemożliwe. Microsoft i producenci sprzętu potwierdzają jednak zgodnie, że udało się to zrobić, ponieważ architektury układów graficznych stosowane przez Intela, Nvidię oraz AMD w ciągu ostatnich lat stały się do siebie bardzo podobne.

    Najważniejsze jest jednak to, że do skorzystania z pełni możliwości DirectX 12 nie będzie potrzebna wymiana karty graficznej na nową. Interfejs ten zadziała na niemal wszystkich kartach graficznych, które pojawiły się na rynku w ciągu ostatnich kilku lat. DirectX 12 będzie działać na kartach AMD, Nvidii oraz Intela opartych na architekturach Graphics Core Next, Gen 7.5 oraz Fermi, Kepler i Maxwell.

    Jak działaja niskopoziomowe API

    Mimo że taki interfejs programistyczny musi być kompatybilny z kartą graficzną, to nie zwiększa bezpośrednio jej wydajności. Powoduje tylko, że do komunikacji z nią potrzebna jest mniejsza część mocy procesora. Dzięki temu więcej zasobów może zostać wykorzystanych w samej grze. Zjawisko to nazywa się zmniejszeniem narzutu sterownika karty graficznej na procesor.

    Obraz

    Korzyści z zastosowania niskopoziomowego interfejsu są najbardziej widoczne na konfiguracjach wyposażonych w niezbyt wydajny, ograniczający kartę graficzną procesor. Dzięki niskopoziomowemu API udaje się odzyskać odrobinę jego mocy, karta graficzna rozwija skrzydła, a wydajność całego komputera w grach wzrasta.

    Pierwszy benchmark

    Jeszcze do niedawna nie był dostępny żaden niezależny i ogólnodostęny test umożliwiający bezpośrednie porównanie dostępnych na rynku API. Co prawda kilka redakcji na świecie mogło wykonać testy, wykorzystując benchmark Star Swarm, jednak jego wersja obsługująca DirectX 12 nie została jeszcze publicznie udostępniona i cały czas znajduje się w fazie testów.

    Na początku kwietnia najpopularniejszy benchmark dla graczy, czyli 3DMark, został zaktualizowany o nowy test. API Overhead Test został stworzony przy współpracy Futuremarka z AMD, Intelem, Microsoftem i Nvidią oraz innymi członkami Benchmark Development Program. Test ten porównuje wydajność jednego komputera przy wykorzystaniu różnego rodzaju API.

    API Overhead Test nie jest dostępny w darmowym wariancie 3DMark Basic – skorzystać z niego mogą tylko posiadacze licencji 3DMark Advanced oraz 3DMark Professional. Do uruchomienia wszystkich składowych testu potrzebny jest komputer wyposażony w 4 GB pamięci RAM, kartę graficzną kompatybilną z DirectX 11, wyposażoną w co najmniej 1 GB pamięci RAM (to wymóg DirectX 12) i działającą w oparciu o architekturę Graphics Core Next (wymóg Mantle). Komputer musi mieć zainstalowanego Windowsa 10 Technical Preview w wersji Build 10 041 lub nowszej, bo tylko ona umożliwia uruchomienie DirectX 12.

    Co i jak testowaliśmy

    Obraz

    API Overhead Test to syntetyczny benchmark, którego zadaniem jest sprawdzenie wydajności bibliotek oraz instrukcji odpowiedzialnych za komunikację aplikacji oraz komponentów komputera. Podstawową jednostką użytą w tym teście jest draw call – polecenie wyrenderowania obiektu wydawane karcie graficznej oraz procesorowi. API Overhead Test sprawdza, jak wiele takich rozkazów jest w stanie wykonać komputer, zanim płynność animacji spadnie do 30 klatek na sekundę. Dzięki temu 3DMark jest w stanie dokładnie określić narzut (ang. overhead) na procesor powodowany przez różnego rodzaju API.

    Testy przeprowadziliśmy na dwóch komputerach. Pierwszy z nich został wyposażony w APU AMD A10–7850 K ze zintegrowaną grafiką AMD Radeon R7 oraz 4 GB pamięci RAM. W pececie znajdują się oczywiście też inne elementy, ale nie mają one wpływu na wydajność zestawu w teście. Oprócz tego przeprowadziliśmy testy na wydajniejszej konfiguracji wyposażonej w procesor Core i7–3960X, 32 GB pamięci RAM oraz kartę Radeon R9 290X. Jeśli API Overhead Test działa prawidłowo, w drugim przypadku różnica między interfejsami będzie większa, bo wtedy będzie miał do odzyskania więcej mocy procesora.

    Wyniki testu

    Trzeba przyznać, że wyniki robią wrażenie. Jak widać, wydajność w benchmarku przeprowadzonym na niskopoziomowych API jest znacznie większa przy użyciu Mantle i DirectX 12 niż w przypadku DirectX 11. Co więcej, API Overhead Test potrafi wykorzystać pełen potencjał procesora. W przypadku słabszej konfiguracji wzrost wydajności był ponad ośmiokrotny, zaś w przypadku mocniejszej konfiguracji – dwudziestokrotny. Wyniki te doskonale obrazują potencjał, jaki tkwi w niskopoziomowych API.

    Obraz

    Warto jednak pamiętać, że test nie próbuje nawet mierzyć ogólnej wydajności komputera w grach. Dlatego nie można się spodziewać, że uzyskane w nim wyniki bezpośrednio przełożą się na wydajność maszyny. Tam wzrost wydajności wynikający z zastosowania niskopoziomowego API będzie wyraźny, ale nie tak bardzo jak w przypadku użytego przez nas testu syntetycznego, bo renderowanie to tylko jedno z zadań wykonywanych przez komputer podczas działania gry.

    Rzeczywista wydajność

    Choć DirectX 12 nie ma jeszcze oficjalnie na rynku, można przekonać się, jaki wzrost wydajności spowoduje wprowadzenie tego interfejsu. By to zrobić, trzeba mieć komputer z kartą Radeon i porównać wydajność gier w trybie DirectX 11 i Mantle. Jak można zauważyć dzięki naszym testom, DirectX 12 jest tylko niewiele wydajniejszy od Mantle, więc gra w trybie Mantle dobrze pokazuje, czego można oczekiwać.

    Dodajmy, że gry obsługujące Mantle to Battlefield 4, Battlefield Hardline, Civilization: Beyond Earth, Dragon Age: Inquisition, Need for Speed Rivals, Plants vs. Zombies: Garden Warfare, Sniper Elite III, Star Citizen oraz Thief. Jeżeli nie masz karty graficznej AMD, moc niskopoziomowego API będziesz mógł sprawdzić już za kilka tygodni, gdy pojawi się finalna wersja systemu Windows 10, a wraz z nią DirectX 12. Chwilę potem pojawią się pierwsze tytuły, które będą korzystać z nowych rozwiązań.

    Wybrane dla Ciebie