Optymalizacje DirectX 12

  • Autor: PoznanskaPyra
  • Opublikowano: 14 Sierpień 2015
  • Komentuj 3
850px-Microsoft-DirectX-Logo-wordmark.svg 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. afr 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). sfr 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. r9295x2API 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.   GPU-Coprocessor-640x353 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. mem[źródło: AMD blog]  

Pod tym wpisem można się reklamować. Jeżeli uważasz, że stworzyłeś bardzo dobry film związany z tematem wpisu, wklej do niego link w komentarzu. Najlepsze filmy zostaną tutaj na zawsze. Zapraszamy do komentarzy. Czekamy na Wasze opinie. Do dyspozycji naszych czytelników oddajemy również forum dyskusyjne... serdecznie zapraszamy tam do rozbudowanych dyskusji i kooperacji spoleczności brodaczy!

Komentarze