Tomasz Kurzak | 8 kwietnia 2015, 19:44

3DMark i API Overhead Test, czyli jaka jest różnica między DirectX 11, a DirectX 12 lub AMD Mantle

Niedawna aktualizacja 3DMark, programu testującego wydajność komputerów w czasie generowania zaawansowanej grafiki trójwymiarowej oprócz kilku usprawnień oraz naprawienia jednego błędu przyniosła także nową funkcjonalność. API Overhead Test to narzędzie, które pozwala na porównanie wydajności komputera wykorzystującego API DirectX 11, 12 oraz Mantle. Sprawdziliśmy API Overhead Test w praktyce, a nasze spostrzeżenia opisujemy w niniejszym artykule.

Lista zmian w najpopularniejszym benchmarku na świecie jest bardzo krótka, a wprowadzane poprawki są w większości kosmetyczne. Należą do nich usprawnienie formatowania wysokich wyników (co poprawia ich czytelność) oraz automatyczne wyświetlanie liczby FPS po zakończenia każdego testu. Naprawiono także błąd, który mógł powodować zawieszanie się demonstracji testu Sky Diver na scenie wejścia do jaskini. Jednak najciekawszą nowością jest pierwszy na świecie niezależny test API Overhead, który pozwala na porównanie efektywności  bibliotek i procedur DirectX 11, 12 oraz Mantle. Na początku lutego do benchmarku Star Swarm także została dodana obsługa DirectX12, jednak ta wersja nie została jeszcze publicznie udostępniona i znajduje się w fazie testów.

API Overhead Test został opracowany przy współpracy firm Futuremark, AMD, Intel, Microsoft, Nvidia oraz innych członków Benchmark Development Program. W przeciwieństwie do pozostałych testów dostępnych w 3DMarku, ten nie został stworzony z myślą o porównywaniu wydajności różnych komponentów od różnych producentów w ramach jednej platformy wykorzystującej DirectX 11, 12 i Mantle. Na takie narzędzia przyjdzie nam poczekać do oficjalnej premiery Windows 10 oraz stabilnej wersji DirectX 12. Zadaniem API Overhead Test jest sprawdzenie wydajności konkretnego komputera z wykorzystaniem różnych API i porównanie wyników. Jest to pierwsze tego typu niezależne narzędzie, niedostępne w konkurencyjnych do 3DMark aplikacjach. Niestety API Overhead Test nie jest dostępny w podstawowym wariancie 3DMark Basic, z nowego testu będą mogli skorzystać jedynie posiadacze licencji Advanced oraz Professional. Do uruchomienia wszystkich testów konieczne będzie także spełnienie minimalnych wymagań sprzętowych, które prezentują się następująco:

Test DirectX 12

  • 4 GB RAM;
  • Windows 10 Technical Preview 10041 lub nowszy;
  • karta graficzna z przynajmniej 1 GB pamięci vRAM oraz kompatybilna z DirectX 11.

Test Mantle

  • 4 GB RAM;
  • karta graficzna kompatybilna z API Mantle.

Test DirectX 11

  • 4 GB RAM;
  • karta graficzna kompatybilna z DirectX 11.

Zadaniem API Overhead Test jest zmierzenie efektywności bibliotek oraz instrukcji (API), które służą do bezpośredniej komunikacji aplikacji (w tym przypadku odpowiedzialnej za generowanie grafiki 3D) z komponentami komputera. Podstawową w tym teście jednostką służącą do porównania jest draw call - wydawane karcie graficznej i procesorowi przez program polecenie wyrenderowania obiektu na ekranie komputera. API Overhead Test sprawdza, ile takich rozkazów w ciągu sekundy mogą wykonać komponenty, zanim liczba generowanych na ekranie klatek spadnie do 30, co jest dolną granicą dla akceptowalnej (choć nie przez wszystkich) płynności obrazu w grach. W przeciwieństwie do innych programów testujących wydajność, jak np. Star Swarm, który próbuje zmierzyć ogólną wydajność w trakcie generowania złożonej grafiki trójwymiarowej z wykorzystaniem różnych API, 3DMark skupia się jedynie na określeniu narzutu (ang. overhead) powodowanego przez DirectX i Mantle.

Opracowany przez firmę Futuremark test jest względnie prosty i ogranicza się do wydawania poleceń do rysowania na górze i dole ekranu obiektów (budynków), których liczba jest cały czas zwiększana aż do osiągnięcia limitu płynności wyświetlanego obrazu (30 kl/s). Dzięki takiemu rozwiązaniu prezentowany po zakończeniu testu wynik doskonale obrazuje narzut powodowany przez API, a w mniejszym stopniu zależy od ogólnej wydajności karty graficznej i procesora.

Za platformę testową posłużył nam komputer wyposażony w:

  • procesor Intel i5-2500K pracujący z częstotliwością 4,5GHz
  • karta graficzna Sapphire Radeon HD7950 3 GB Vapor-X, której rdzeń graficzny podkręciliśmy do 1100 MHz (domyślnie 850 MHz i 950 MHz w trybie Boost), a pamięć vRAM ustawiliśmy na częstotliwości 1575 MHz (domyślnie 1250 MHz).

Reszta zastosowanych przez nas komponentów to:

  • płyta główna Asrock P67 Extreme4
  • 2x4 GB DDR3 G. SKill RipjawsX 1333 MHz CL7 @ 1600 MHz CL9
  • nośnik SSD Plextor M5S 128 GB

jednak te miały marginalny wpływ na końcowy wynik testów. Na komputerze zainstalowaliśmy najnowszy poglądową wariant Windows 10 build 10041. Jedyna wersja sterowników pozwalająca na przeprowadzenie testów wykorzystujących DirectX 12 to dostępne za pomocą Windows Update testowe WDDM 2.0 z 11.03.2015. Nie udało nam się przetestować efektywności DirectX 12 za pomocą Catalyst 14.12 Omega oraz 15.3 Beta. 

API Overhead Test dostępny jest w zakładce Feature Tests w wersjach Advanced i Professional 3DMark v1.5.884. Rozwijając wyświetlający się panel przedstawiający podstawowe informacje o teście otrzymujemy dostęp do jego ustawień. Nie są one zbyt rozbudowane i pozwalają jedynie na zmianę rozdzielczości w jakiej będą przeprowadzane próby, wybranie API, które będą do nich wykorzystane i włączenie lub wyłączenie trybu pełnoekranowego.

Pomarańczowy przycisk RUN pozwala na uruchomienie wybranych przez użytkownika testów, a każdy z nich trwać będzie maksymalnie kilka sekund. W tym czasie na ekranie będzie prezentowana scena, w której rysowana będzie zwiększająca się liczba obiektów (budynków).

Wynik testów nie powinien być dla nikogo zaskoczeniem, bo pierwsze testy porównujące efektywność API prezentowane były przy okazji publikacji testowych wersji benchmarka Star Swarm z obsługą DirectX 12 na początku lutego tego roku. Jednak ze względu na to, że test opracowany przez firmę Fututremark skupia się jedynie na mierzeniu draw calls, jego wyniki jeszcze bardziej uwydatniają różnicę pomiędzy DirectX 11 i nowymi API (Mantle, DirectX 12). 

 
Z przeprowadzonych przez nas testów wynika, że wykorzystana platforma testowa zyskała na wydajności 14-krotnie w przypadku DirectX 12 i 13-krotnie w przypadku Mantle. Różnica efektywności między DirectX 11 oraz nowymi API jest miażdżąca i doskonale obrazuje fakt, że przez ostatnie lata w parze ze zwiększaniem wydajności sprzętu nie szedł rozwój oprogramowania, które ten stale rosnący potencjał potrafiło wykorzystać. Mimo ogromnego wzrostu wydajności, który oferuje DirectX 12 jest jeszcze zdecydowanie za wcześnie na hura-optymizm. Musimy pamiętać, że API Overhead Test jest testem syntetycznym i osiągane w nim wyniki nie będą miały takiego samego przełożenia na wzrosty wydajności komputerów w czasie grania. W rzeczywistości różnicę pomiędzy starym i nowym API będą mniejsze, bo nowe biblioteki oraz instrukcje to jedna strona medalu. Druga to programiści i sposoby w jaki będą wykorzystywać nowe możliwości. Miną za pewne kilka lat zanim twórcy gier nauczą się w pełni wykorzystywać potencjał drzemiący w DirectX 12. Pocieszający jest jednak fakt, że w końcu oprogramowanie zaczyna nadganiać.

Komentarze
irondick
11 maja 2015, 10:15
To oznacza, że dzisiejsze topowe karty w naszych komputerach w zasadzie nie wymagają wymiany...
0
Zaloguj się, by móc komentować