Gry na PC będą działać lepiej. Nowa funkcja DirectX 12 usprawni współpracę CPU i GPU

API DirectX 12 doczekało się właśnie nowej funkcji – GPU Upload Heaps, która sprawi, że gry na PC będą działać lepiej, rozwiązując problem, który dręczy proces współpracy procesora centralnego i karty graficznej od niepamiętnych czasów.
Gry na PC będą działać lepiej. Nowa funkcja DirectX 12 usprawni współpracę CPU i GPU

Co zyskają gry wideo na tym, że procesor dostanie bezpośredni dostęp pamięci VRAM?

W komputerach największą rolę w kwestii wydajności odgrywają dwa powiązane ze sobą duety – procesor centralny i pamięć operacyjna (RAM) oraz karta graficzna i jej pamięć graficzna (Video-RAM). Chociaż w dużej mierze są one niezależne od siebie, to od zawsze system wymusza kopiowanie danych z pamięci systemowej do pamięci karty graficznej poprzez magistralę PCI, co powoduje opóźnienia i zwiększone użycie prądu. W tym wszystkim procesor nie ma bezpośredniego dostępu do pamięci GPU, a GPU nie ma bezpośredniego dostępu do pamięci systemowej, co oznacza, że komputer musi przechowywać duplikaty niektórych danych w obu pamięciach. To z kolei doprowadza do ogólnego marnowania obu zasobów pamięci i sprawia, że procesor nie może skorzystać z szybszej pamięci karty graficznej.

Czytaj też: Jeden zły ruch i Ryzen robi bum. Procesory AMD zaskakująco łatwo popsuć

Rozwiązaniem tego jest wspomniana nowa funkcja GPU Upload Heaps w Direct X12, która rozwiązuje ten problem w prosty sposób – pozwala procesorowi centralnemu na bezpośredni dostęp do pamięci GPU w tym samym czasie, w którym korzysta z niej procesor graficzny. Funkcja ta ma zwiększyć wydajność w grach wykorzystujących API DirectX 12, zmniejszając jednocześnie wykorzystanie pamięci RAM, ponieważ eliminuje potrzebę wspomnianego kopiowania danych z pamięci VRAM do RAM.

Czytaj też: AMD kopiuje najlepszą funkcję od Nvidii. Radeony dostaną turbodoładowanie w grach

Wchodząc w szczegóły, opis podobnej funkcji ze strony Nvidii sugeruje, że działanie tej nowości DirectX 12 może polegać na utworzeniu specjalnej sterty DX12 UPLOAD, która jest alokowana w pamięci systemowej ze stronami WRITE_COMBINE zoptymalizowanymi pod kątem zapisów w procesorze. Następnie, aplikacja wiąże stertę z poleceniem renderowania przez GPU, umożliwiając tym samym procesorowi centralnemu i graficznemu jednoczesny dostęp do tej samej pamięci. W pewnych scenariuszach może to zmniejszyć opóźnienia i poprawić wydajność. Konkrety? Oto one/

GPU Upload Heaps może przyspieszyć działanie gry i obniżyć jej obciążenie na komputer w momentach, kiedy procesor musi często zapisywać dane, takie jak dynamiczne bufory wierzchołków lub bufory stałe dla GPU. Usprawni też proces, kiedy procesor centralny musi sporadycznie odczytywać dane bezpośrednio z pamięci GPU, uniemożliwiając zatrzymanie potoku renderowania, którą generuje blokada spowodowana odczytem z pamięci VRAM. Ta funkcja może też być zbawienna dla niektórych konfiguracji oraz obciążeń, pozwalając zaoszczędzić miejsce w pamięci systemowej dzięki przechowywaniu zasobów wyłącznie w pamięci VRAM lub z drugiej strony, zwiększyć wydajność procesora poprzez dostęp do pamięci VRAM, która jest zwykle szybsza.

Czytaj też: Koniec ery taniego Game Passa. Microsoft wydaje oświadczenie

Na papierze zapowiada się to obiecująco, ale w gruncie rzeczy nie znamy jeszcze faktycznych konsekwencji tej funkcji, bo zwyczajnie żadna gra z niej nie korzysta. Zważywszy na to, że dopiero co Microsoft ją udostępnił, na pierwszy tytuł wspierający GPU Upload Heaps poczekamy zapewne kilka lat. Czy będzie warto? Zdecydowanie tak, bo z roku na rok gry zajmują coraz więcej pamięci VRAM, przez co transfery stają się coraz bardziej problematyczne, więc całkowite ich wyeliminowanie będzie na wagę złota. Do tego czasu większość graczy wyposaży się również w nowsze karty graficzne, które obsługują wymaganą do działania tej funkcji technologie Resizable-Bar lub Smart Access Memory, które t pozwala systemowi Windows na bezpośrednie zarządzanie pamięcią VRAM układu GPU.