Jak będzie funkcjonowało DirectX 12? Na to pytanie zapewne szuka odpowiedzi wiele osób. Wpis na blogu AMD rozjaśnił funkcjonowanie konfiguracji z kilkoma układami GPU.
Mimo, że posłużę się tutaj
blogiem AMD jako źródłem, pamiętajcie że na 90% przytoczone tutaj przykłady będą tyczyć się również firmy
Nvidia.
Nowe API Microsoftu ma wreszcie zacząć wspierać konfiguracje multi-GPU co ma się odbić na lepszym działaniu takich zestawień. Do tej pory uruchamianie SLI czy Crossfire wiązało się z wieloma problemami i ciągłym oczekiwaniem na nowe sterowniki, które dodadzą profil dla naszej ulubionej gry. DirectX 12 ma to zmienić. Jak? Żeby to wytłumaczyć muszę na chwile wrócić do obecnej wersji czyli DirectX 11.
Jak w multi-GPU działało z DX11? Otóż obie karty renderowały klatki (karta A i B), potem klatki były kolejkowane i trafiały do karty A, która między swoje renderowane klatki wpychała klatki od drugiej karty. Jak się domyślacie przy takim systemie łatwo o opóźnienia i dropy. Nazwano ten sposób AFR (Alternate-Frame Rendering). Dlaczego go stosowano jeżeli jego wyniki były dalekie od ideału? Wymuszają to ograniczenia obecnego API.
DirectX 12 ma zmienić system wyświetlania klatek na zupełnie inny. Każda generowana klatka, w konfiguracji multiGPU, będzie składać się z kafelków, a ich ilość będzie uzależniona od ilości kart graficznych. Czyli każda z kart graficznych będzie miała swój fragment klatki do generowania. System ten nazywa się SFR (Split-Frame Rendering).
Moje pytanie, na które nie ma odpowiedzi w tekście, to co z synchronizacją tych wszystkich kafelków? Czy czasem nie będą widoczne linie podziału obrazu w razie jakiś błędów w synchronizacji?
Znalazłem jednak inny trop... Mantle, które już wykorzystuje taki system i sprawia się on bardzo dobrze. Nie ma dropów ani opóźnień, które widać przy użyciu FCAT-a. Czyli specjalistycznego sprzętu do pomiaru ilości klatek w grach.
API ma też wspierać asymetryczne multiGPU. Czyli sam DirectX 12 powinien potrafić rozdzielić zadania pomiędzy dwie różne karty. Jako, że korzystam z blogu AMD jako źródła, to oczywiście za przykład podali APU + wydajna karta graficzna. Gdzie procesor graficzny w APU wspiera kartę graficzną w renderowaniu części efektów np. oświetlenia czy fizyki.
Nie, to nie przejaw fanboy-stwa, po prostu nikt inny nic o tym nie napisał
Dodatkowo przy użyciu DirectX 12 pamięć kart będzie się sumować, a jak wiadomo w DirectX 11 liczy się tylko wielkość pamięci jednej karty i to tej mniej pojemnej. Czyli jak miałem Crossfire R9-290 i R9-390 to R9-390 mimo posiadania 8GB pamięci mógł używać tylko 4GB, bo tak narzucał R9-290. Wynika to z możliwości dzielenia zadań pomiędzy karty graficzne.
[źródło:
AMD blog]
Komentarze