Wyższa wydajność Radeonów to nie przypadek. GeForce'y mogą nie wspierać DirectX 12
W pierwszym benchmarku wykorzystującym interfejs DirectX 12 wzrost wydajności wynikający z zastosowania nowego API był znacznie większy w przypadku Radeonów niż GeForce’ów. Teraz okazuje się, że sytuacja może wyglądać podobnie w przypadku innych tytułów wykorzystujących nowe API.
Jako pierwszy napisał o tym Eurogamer, który powołał się na publiczną, internetową wypowiedź przedstawiciela studia Oxide, który na łamach forum dyskusyjnego Overclock.net przyznał, że karty graficzne oparte na architekturze Nvidia Maxwell nie wspierają w pełni funkcji Async Compute. Co więcej została ona wyłączona w grze na prośbę Nvidii, ponieważ po wykorzystaniu jej GeForce’y traciły mnóstwo wydajności i sprawiały dużo problemów ze zgodnością.
Async Compute jest to jedna z najważniejszych funkcji bibliotek DirectX 12.
W bardzo dużym uproszczeniu można powiedzieć, że umożliwia ona przysyłanie danych w dwóch kanałach, co znacznie usprawnia ten proces. Okazuje się jednak, że karty Nvidia GeForce mają jeden pas przeznaczony dla “aut” (grafiki) i 32 pasy przeznaczone dla “ciężarówek” (obliczeń). Wspomniane “ciężarówki” mogą skorzystać z pasa dla “aut” tylko, gdy wszystkie “auta” znikną ze swojej drogi. Proces ten jest nazywany przełączeniem kontekstu i oznacza umożliwienie wielu procesom dzielenie zasobów jednego procesora.
Dla porównania, AMD ma jedną trasę dla obu rodzajów pojazdów oraz 8 dróg, po 8 pasów każda, przeznaczonych dla ciężarówek. Dzięki temu oba rodzaje danych mogą poruszać się jednocześnie i asynchronicznie. Podejście Nvidii było dopasowane do obecnego na rynku interfejsu DirectX 11, który pozwalał na wykorzystanie wyłącznie jednej “drogi”.
AMD zdecydowało się na zastosowanie bardziej przyszłościowego rozwiązania, ponieważ samo tworzyło API Mantle, które pod wieloma względami było podobne do DirectX 12. Rozwiązanie to podobno jest wyjątkowo istotne w konsolach, ale przedstawiciele Oxide zapewniają, że o Async Computer ma o wiele większy potencjał na pecetach.
Deweloperzy testujący te funkcje mają już teraz osiągać dzięki ich wykorzystaniu aż 30-procentowy wzrost wydajności. Oznacza to, że zapewne będzie szeroko wykorzystywane w przyszłych grach, bo każdy niezależny deweloper dąży do tego, by jego program mógł działać na jak największej liczbie komputerów, a co za tym idzie, miał jak najmniejsze wymagania sprzętowe.
Oczywiście sytuacja wygląda inaczej, jeśli jeden z producentów sprzętu wymusi zrezygnowanie niektórych funkcji.
Wtedy jednak nie mamy do czynienia z niezależnym deweloperem, a studiem robiącym wszystko pod dyktando jednego klienta, jednocześnie mającym w głębokim poważaniu użytkowników. Niestety na rynku nie brakuje takich firm, dlatego można podejrzewać, że w wiele głośnych tytułów albo nie będzie korzystać z wybranych funkcji DirectX 12, albo w ogóle nie będzie wspierać nowego API. Przynajmniej do czasu premiery przyszłorocznych układów Nvidia Pascal, które będą tworzone pod kątem nowego interfejsu.
Do całej sytuacji na Reddicie odniósł się też pracownik AMD, który stwierdził, że Nvidia nieszczerze zapewniała o swoim pełnym wsparciu dla DirectX 12. Co więcej, robiła to, mimo że dokładnie zdawałą sobie sprawę z tego, że “architektura Maxwell jest całkowicie niezdolna to wykonywania asynchronicznych obliczeń bez bazowania na wolnym zmienianiu kontekstu”.
Jeśli słowa AMD i inżynierów Oxide się potwierdzą, rzuci to kolejne podejrzenia na nie do końca czyste działania Nvidii. Sam poprosiłem przedstawiciela firmy o wypowiedź i zaktualizuję o nią tekst od razu, gdy ją otrzymam.
* Zdjęcie: facebook.com/NVIDIAGeForce