Ashes of the Singularity jest bodajże pierwszym tytułem obsługującym biblioteki DirectX 12, pozwalającym na przeprowadzenie niezależnych testów wydajności, czyli zestawienie kart graficznych AMD Radeon i NVIDIA GeForce. Produkcja zdążyła wywołać lawinę komentarzy po ujawnieniu informacji, że architektura Maxwell w najnowszym API Microsoftu wypada zdecydowanie poniżej oczekiwań, rzekomo z powodów natury sprzętowej. Wówczas zaprezentowano tylko gromadę diagramów bez możliwości weryfikacji wyników, jednak ziarenko niepewności zaczęło szybko kiełkować i zaowocowało pojawieniem się licznych teorii spiskowych. Dzisiaj dysponując Ashes of the Singularity (Beta 0.85.17013) jestem w stanie sprawdzić, jak rzeczywiście wyglądają relacje między kartami graficznymi AMD Radeon i NVIDIA GeForce - zapraszam na porównanie DirectX 11 kontra DirectX 12.

Autor: Sebastian Oktaba

Jedną z najważniejszych funkcji DirectX 12 zaimplementowaną w Ashes of the Singularity jest Async Compute, którego zadanie polega na dostarczaniu układowi graficznemu danych w trybie asynchronicznym, mających bezpośredni wpływ na płynność animacji, czas renderowania sceny, opóźnienia itp. DirectX 11 obarczone masywnym interfejsem (tzw.: front-end) nie pozwalał na wykorzystanie tego rozwiązania, jednak DirectX 12 wzorem AMD Mantle wprowadza niskopoziomowy dostęp do zasobów sprzętowych, który otwiera przed kartami graficznymi nowe możliwości. Generalnie chodzi o równoległe wykonywanie rozkazów w odpowiedni (asynchroniczny) sposób za pomocą trzech potoków. Pierwszy jest przeznaczony do zadań, które muszą zostać wykonane we właściwej kolejności, natomiast drugi i trzeci pozwala na swobodne aranżowanie ich pracy w przypadku poleceń, jakie nie wymagają określonej chronologii np.: postprocessing lub obliczenia fizyki obiektów. Dzięki temu możliwe jest maksymalne wykorzystanie układu graficznego, odciążenie procesora, zredukowanie czasu oczekiwania na wykonanie poprzedniej operacji i poprawienie ogólnej wydajności.

Ashes of the Singularity jest bodajże pierwszym tytułem wspierającym biblioteki DirectX 12, pozwalającym na przeprowadzenie niezależnych testów wydajności, czyli zestawienie kart graficznych AMD Radeon i NVIDIA GeForce.

Architektura GCN otrzymała sprzętowe jednostki obliczeń asynchronicznych (ACE - Asynchronous Compute Engine), których w rdzeniach Hawaii, Tonga i Fiji znajdziemy 8 (wcześniejsze wersje posiadają ich czterokrotnie mniej), podczas gdy Maxwell takich niezależnych silników nie posiada. Warto teraz nakreślić pewną newralgiczną kwestię, bowiem w układach AMD oraz NVIDIA przewidziano jedno wspólne pasmo do renderowania grafiki, aczkolwiek GCN dysponuje jeszcze 8 torami przeznaczonymi dla dodatkowych 8 obliczeń co daje sumarycznie 64 operacje, natomiast Maxwell może ich wykonać 32. Teoretycznie NVIDIA nie powinna więc mocno odstawać od konkurenta, jednak różnica polega na sposobie realizacji zleconych poleceń. Architektura GCN potrafi to zrobić równolegle, bez przestojów czyli zmiany kontekstu pracy układu graficznego, zaś Maxwell zmuszony jest przyznawać operacjom priorytety. Powoduje to efekt odwrotny od zamierzonego, czyli w skrajnym przypadku niewielki spadek wydajności w DirectX 12 względem DirectX 11 zamiast spodziewanego wzrostu. Dzisiaj trudno przewidzieć rozwój wydarzeń, jak NVIDIA rozwiąże ten problem, zwłaszcza iż dopiero czekamy na premiery gier komputerowych wspierających nowe API.

Minimalna konfiguracja do Ashes of the Singularity:

Dowolny czterordzeniowy procesor Intel / AMD

GeForce GTX 660 / Radeon R7 360 2GB GDDR5

6 GB pamięci operacyjnej

Windows 10 / 8.1 / 7 64-bit

Rekomendowana konfiguracja do Ashes of the Singularity:

Intel Core i5 lub odpowiednik AMD

GeForce GTX 970 / Radeon R9 390

16 GB pamięci operacyjnej

Windows 10 64-bit

Testowana wersja Ashes of the Singularity była wprawdzie jeszcze zaawansowaną betą (0.85.17013), aczkolwiek programiści na łamach oficjalnego „Poradnika Użytkownika” deklarowali całkowitą integrację kluczowych funkcji DirectX 12, które pozwalają na wykorzystanie opisanego wyżej rozwiązania. Async Compute zostało już domyślnie włączone, wszystkie testy to uwzględniają, aczkolwiek pozwoliłem sobie przeprowadzić eksperyment również bez asynchronicznych obliczeń. Wymagało to zmiany parametru AsyncComputeOff=0 na AsyncComputeOff=1 w plikach konfiguracyjnych Ashes of the Singularity. Podobno przynosi to korzyści kartom graficznym NVIDII, zatem właściciele takiego sprzętu powinni wiedzieć, co mogą zyskać bądź stracić. Poza tym, kwestia kompatybilności DirectX 12 jednego czy drugiego układu graficznego jest bardziej skomplikowana, niż pozornie mogłoby się wydawać. NVIDIA określiła dla obecnej generacji GPU support feature-level 12_1 (Tier 2), chwaląc się dodatkowymi funkcjami obsługiwanymi przez Maxwelle, podczas gdy AMD pozostawało przy feature-level 12_0 (Tier 3). Jak widać same cyferki niewiele znaczą, a wszystko wyjdzie w praktyce.

PS: Ashes of the Singularity jest najnudniejszym RTS-em jaki kiedykolwiek widziałem, nie stanowi także jakiegokolwiek wyznacznika w jakości oprawy graficznej, mechaniki czy scenariusza. Jedyne czym testowana produkcja się wyróżnia, to wsparcie interfejsu DirectX 12, zatem nie traktujcie tego tytułu w kategorii wielkiego branżowego wydarzenia. Ot, pierwsze koty za płoty...