Mantle vs. ForceWare 337.50 - teoria2014-05-01 11:26:00 | Piotr Urbaniak (gtxxor) Tomasz Cugowski (tomcug)
Słowem wstępu
Jeśliby pieczołowicie przewertować listy zmian w nowych wersjach sterowników (obu wiodących producentów akceleratorów graficznych), to w oczy rzuci się jeden wspólny mianownik. Zarówno AMD, jak i NVIDIA regularnie obiecują spektakularny wzrost wydajności w grach. Niestety, odważne deklaracje są przeważnie hasłami marketingowymi, a kolejne "drajwery" wnoszą najwyżej szczątkową poprawę.
AMD Mantle - "dziecko" monopolu konsolowego
Jakiś czas temu, firma AMD ogłosiła, że przygotowują dla swoich klientów prawdziwą rewolucję. "Czerwoni", korzystając z monopolu na rynku konsolowym, postanowili zaimplementować w grach komputerowych API niskiego poziomu. To rozwiązanie miało nie tylko ułatwić przenoszenie produkcji pomiędzy platformami, ale również (a może przede wszystkim) korzystnie wpłynąć na wydajność akceleratorów z rodziny Radeon.
Wbrew pozorom, pomysł inżynierów AMD był dość trywialny. Idea zakładała stworzenie środowiska programistycznego, które wykorzysta instrukcje bliskie kodowi maszynowemu. Dzięki temu, procesor centralny (CPU) komputera nie będzie nadmiernie obciążony "tłumaczeniem" poleceń. Analogicznie rozwiązanie wykorzystuje się przy programowaniu na konsole, a także inne urządzenia o zamkniętej strukturze sprzętowej (np. tablety iPad).
Projekt "czerwonych" został wcielony w życie pod nazwą handlową Mantle. Trzeba przyznać, że nowe API zostało przyjęte dość entuzjastycznie, co niejako świadczy o zaletach ww. rozwiązania. Niemniej, instrukcje "low-level" trapione są dwoma bardzo poważnymi problemami.
Po pierwsze, takowe polecenia można zastosować tylko wobec wąskiej grupy urządzeń (w tym przypadku były to karty AMD Radeon, bazowane na architekturze Graphics Core Next (GCN)). Oczywiście, możliwe jest utworzenie pakietów kompatybilnych z innymi rozwiązaniami sprzętowymi (np. starsze akceleratory VLIW4 oraz VLIW5), jednak wymaga to sporych nakładów pracy i podmiotowego traktowania każdej platformy.
Po drugie, kompatybilność z Mantle jest "uzyskiwana" jeszcze na etapie produkcji gry (aplikacji). Oznacza to, że program musi zostać utworzony w oparciu o technologię AMD. Jako iż, wyłącznościowe wsparcie tego API znacznie ogranicza kompatybilność sprzętową aplikacji, to deweloperzy nie mogli postawić na taką opcję. Zawężyłoby to grono potencjalnych odbiorców, a co za tym idzie zmniejszyło zyski ze sprzedaży. Zamiast tego, twórcy priorytetowo korzystali z "uniwersalnych" bibliotek DirectX / OpenGL, a Mantle stało się swoistym "smaczkiem" dla posiadaczy odpowiednich GPU.
Testy wykazały, że zaprezentowana technologia faktycznie pozwala(ła) uzyskiwać przewagę nad konkurencją. API Mantle, zgodnie z oczekiwaniami zmniejszało wykorzystanie procesora w grach. Skutkowało to wzrostem liczby wyświetlanych klatek. Zwłaszcza na konfiguracjach ze słabszymi procesorami centralnymi. Więc w czym tkwi "haczyk"? Ano, w tym, że wśród wysokobudżetowych gier "supportujących" opisywanie środowisko, znalazły się jedynie dwie produkcje - Thief oraz Battlefield 4... Mało.