Data publikacji:

Karty graficzne obsługujące DirectX 12 – mity i ograniczenia

Przy okazji wejścia na rynek Windowsa 10 powstała lekka panika: Microsoft wprowadzał bibliotekę DirectX 12 i wyglądało, że nie wszystkie karty graficzne mogą być z nią zgodne. Jak więc jest naprawdę?

Zacznijmy od możliwie najkrótszej (i niestety, tylko częściowo prawdziwej) odpowiedzi, która jest tak samo prawdziwa dziś, jak była w momencie wprowadzenia DirectX 12 – jeśli twoja karta graficzna nie jest starsza niż dziesięć lat, prawie na pewno obsługuje tę technologię. Całe zamieszanie, jakie powstało kilka lat temu wynika z jednego niezbyt dobrze odczytanego komunikatu, sugerującego, że nawet właściciele świeżo nabytych kart mogliby nie móc korzystać w pełni z dobrodziejstw DX12.

W praktyce karty graficzne od procesorów graficznych na architekturze Fermi dla Nvidii (linii zapoczątkowanej w 2010 roku), GCN dla AMD (Graphics Core Next – wprowadzonej w 2011 roku) i Haswell (z 2012 roku) dla Intela obsługują to, co ma do zaoferowania DirectX 12 – trudno więc trafić na produkt, który z biblioteką zgodny nie jest.

W CZYM TKWI PROBLEM?

Chociaż formalnie wszystkie karty graficzne na rynku (za wyłączeniem, jak napisaliśmy wyżej, tych naprawdę starych) obsługują DirectX 12, ilość gier, które stworzono korzystając z tych bibliotek (albo raczej: gier, które są zgodne z DirectX 11 i 12 i dają graczowi wybór między jednymi a drugimi) jest bardzo mała – choć rocznie widzimy tysiące nowych tytułów na samym PC, w 2017 zobaczyliśmy zaledwie DZIESIĘĆ które korzystały z DirectX 12.

Co to dokładnie znaczy? DirectX 12 jest biblioteką – zbiorem zasad i instrukcji, z których korzystać ma komputer, by jak najlepiej zrealizować wszystkie skomplikowane zadania, które „zleca” mu dana gra. Sama idea bibliotek DirectX powstała w lata ’90 by dać producentom sprzętu zestaw wspólnych instrukcji do których będą odwoływać się gry, eliminując konieczność programowania gier osobno pod każdy model procesora i karty graficznej.

Ten zestaw instrukcji z czasem rozrastał się, jednocześnie gwarantując relatywną stabilność działania wszystkich urządzeń na platformie Windows (relatywną, bo każde z nas miało chyba sytuację, gdzie gra powinna się uruchomić, ale z jakichś powodów nie chciała). Jednocześnie jednak pojawienie się nowej wersji DirectX zazwyczaj bardzo komplikowało pracę programistom i inżynierom odpowiedzialnym za korzystanie z instrukcji i kodu zmuszając ich do nauki nowych zasad, a potem wykorzystania ich w powstających tytułach. To z kolei generowało nowe błędy i wyzwania, sprawiając, że często najnowsza biblioteka osiągała pełnię swojego potencjału dłuższy czas po oficjalnym debiucie.

REWOLUCJA DIRECTX 12

DirectX 12 miało być jeszcze bardziej rewolucyjne od poprzednich wersji biblioteki, poza nowymi instrukcjami zmieniało bowiem język programowania z wysokopoziomowego na niskopoziomowy. W dużym uproszczeniu oznacza to, że kod dla DirectX 11 i wcześniejszych był łatwiejszy do napisania dla ludzi i trudniejszy do zinterpretowania przez maszyny, a teraz maszyny szybciej go rozumieją, ale ludziom trudniej go pisać, bo język programowania nie jest tak bardzo podobny do angielskiego jak te wysokopoziomowe. Nie trudno się domyślić, że taka komplikacja prowadzi też do większej ilości błędów.

Rozumowanie twórców DirectX 12 (jak i grupy Khronos, twórców drugiego zbioru instrukcji, Vulkan) sprowadzało się do jednego założenia: lepsza interpretacja kodu przez maszyny oznacza szybsze działanie. Póki co, wśród gier, które zdecydowały się zaimplementować DirectX 12 wydajność w porównaniu z DirectX 11 spadła, nie wzrosła, choć spodziewano się nawet 40% skoku. Nowa biblioteka miała jednak oferować także pewne nowe możliwości.

SKAZANI NA DIRECTX 12 – KARTY, KTÓRE NIE OBSŁUGUJĄ W PEŁNI DIRECTX 12

I tu przechodzimy do problemu związanego z DirectX 12 – o ile wszystko, co da się obecnie kupić jest, w teorii zgodne z tą biblioteką, zdecydowana większość kart graficznych na rynku nie jest w stanie w pełni wykorzystać jej potencjału. Wraz z wprowadzeniem technologii raytracing i kart RTX, Nvidia zmieniła bowiem zasady gry – część instrukcji w bibliotece Direct X 12 jest niemożliwa do wykonania dla kart innych, niż najnowsze modele Nvidii, w związku z czym formalnie nie obsługują DirectX 12. Co gorsza, ta sytuacja w teorii może dalej się pogorszyć, jeśli Nvidia, AMD lub Intel dodadzą kolejne elementy do biblioteki.

DXR – DirectX Raytracing to zespół definicji mających na celu lepszą, bardziej realistyczną obsługę światła i cienia w grach. W chwili obecnej większość kart graficznych nie posiada mocy obliczeniowej koniecznej, by w pełni wykorzystywać ten zestaw instrukcji. Jeśli chcemy wykorzystać pełny potencjał DirectX 12, musimy więc sięgnąć po karty Nvidii i to te najlepsze – GeForce RTX 2060, GeForce RTX 20t0 lub GeForce RTX 2080. Nawet świeżo wydane GTX 1660 TI, karta o mocy zauważalnie większej niż te z serii 10xx nie obsługuje w tym kontekście wszystkiego, co DirectX 12 ma do zaoferowania.

O CZYM WARTO PAMIĘTAĆ

Zanim jednak rzucimy się na najnowsze, najlepsze karty, by korzystać z absolutnie wszystkiego, co DirectX 12 ma do zaoferowania warto wiedzieć, że ani pozostali twórcy sprzętu – na czele z AMD – ani producenci gier nie śpieszą się, by zaczerpnąć z pełnych możliwości DirectX 12. Tytuły takie, jak Metro Exodus, które chcą oszołomić nas wizualnie owszem, bazują na tej bibliotece, ale dalej, nawet wśród największych i najgłośniejszych produkcji, są one wyjątkiem, a nie normą. Kompatybilność z pełnią oferty DirectX 12 nie powinna w związku z tym być motorem napędowym do zakupu nowej karty – lepiej robić to gdy gry przestaną wyglądać tak dobrze, jak byśmy chcieli.


Jeżeli macie własne, ciekawe spostrzeżenia na poruszony w powyższym tekście temat, bądź w ogóle nie zgadzacie się z moją publikację lub po prostu chcecie podzielić się swoją opinią, skontaktujcie się ze mną! Znajdziecie mnie na profilu facebookowym Ekspert Ceneo, gdzie czekam na wasze wiadomości oraz komentarze pod wpisami. Na większość staram się odpowiedzieć najszybciej jak to możliwe, jeśli oczywiście jest to konieczne.

 

Autor: Artur Cnotalski