DirectX jest najważniejszym interfejsem programowania aplikacji, jest wykorzystywany w większości gier. Nie ma w tym nic dziwnego, bo API Microsoftu pracuje na swoją pozycję od niemal dwóch dekad.
Odrobina historii
Pierwsza wersja DirectX została zaprezentowana w sierpniu 1995 roku, wraz z premierą systemu Windows 95. Porządkowała ona sposób rysowania grafiki w aplikacjach graficznych. Dzięki temu programista odwoływał się do odpowiednich poleceń interfejsu DirectX, a nie bezpośrednio do sprzętu, przez co miał pewność, że jego program będzie działał poprawnie na różnych konfiguracjach.
Kolejnymi ważnymi wersjami DirectX były 6.1 oraz 7.0 (1999 r.). Wprowadziły obsługę potoków renderujących oraz sprzętowe wspomaganie tzw. operacji Transform and Lighting.
DirectX 8.0 (2000 r.) wprowadził model przetwarzania grafiki oparty na shaderach, czyli bardzo krótkich, prostych programach umożliwiających stworzenie własnych efektów graficznych. Karty zgodne z tą wersją interfejsu były wyposażone w programowalne jednostki Pixel i Vertex Shader.
Wraz z Windows Vista pojawił się DX10 i wprowadził możliwość używania zunifikowanych jednostek Pixel i Vertex Shader, które są używane do dziś. Natomiast razem z Windows 7 zadebiutował DX11 i wprowadził obsługę teselacji, czyli dzielenia obrazu 3D na mniejsze wielokąty, przez co wyświetlany obiekt może być narysowany o wiele dokładniej. Każda z tych wersji dodawała nie tylko nowe funkcje, ale wymagała kolejnych generacji kart graficznych, z nowymi jednostkami obliczeniowymi.
Inne podejście AMD
Kilka miesięcy temu firma AMD zaproponowała zupełnie coś nowego – interfejs programistyczny Mantle. Jest to rozwiązanie niskopoziomowe, czyli – w uproszczeniu mówiąc – odwołujące się bezpośrednio do sprzętu. Jego zastosowanie umożliwia uzyskanie znacznie większej niż za pomocą pośrednika (DirectX) kontroli nad kartą graficzną, lepsze wykorzystanie mocy podzespołów, a co za tym idzie, osiągnięcie wyższej wydajności. Wadą takiego rozwiązania jest pełna zgodność tylko z jednym rodzajem sprzętu, w tym wypadku z kartami AMD opartymi na architekturze Graphic Core Next.
Microsoft uważa, że DirectX 12 będzie miał wszystkie zalety Mantle, przy zachowaniu jednocześnie uniwersalności i zgodności ze wszystkimi najważniejszymi kartami graficznymi.
Gdzie tkwią rezerwy?
Mimo że niskopoziomowe API musi być kompatybilne z kartą graficzną, to nie zwiększa bezpośrednio jej wydajności. Powoduje tylko, że mniejsza część mocy procesora jest potrzebna do komunikacji z nią, przez co więcej zasobów może zostać wykorzystanych w samej grze. Nazywa się to zmniejszeniem narzutu sterownika karty graficznej na procesor.
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, dzięki czemu karta graficzna rozwija skrzydła, a wydajność całego komputera wzrasta.