A nie pod DX12 albo Vulkan ? Przecież DX11 ma już 10 lat. A niskopoziomowe API miało przynieść poprawę wydajności w szczególności w przypadku mocna karta + słaby procesor. Ja nie tylko myślałem że gry będą robione pod nowe API to jeszcze łudziłem się że największe hiciory AAA sprzed kilku lat jak Skyrim SE, Witcher 3 doczekają się patchy pod nowe API jak np DOOM 2016 na Vulkan. W końcu myślałem że dosyć mocna karta* odciąży mój leciwy i3-3250… w końcu wkurzyłem się i kupiłem i7-3770 żeby mieć spokój z narzutem na procesor pod DX11.
*GTX 1060 6 Gb (GPU 2GHz, VRAM 8.8 GHz) OC daje radę bez problemu (temp i brak artefaktów po 10 minutach) w Furmarku na odpowiednio 2.1 GHZ i 9 GHz, ale nie chcę przeginać.
PS. Może Intel który by upadł bo upgrade procesorów spadłoby kilka razy daje w łapę za taki stan rzeczy ?
A propo Micor$oftu co miał być zniszczony za kompletny, chamski i perfidny monopol i podzielony na 3 firmy tj Mi, Cro i Soft przez USA… ktoś wie czemu Windows 7 nie ma DX12 i czemu broniąca kornika w puszczy komisja nie daje profilaktyczie 1 mld $ rocznie kary na tą firmę ? A w ogóle to chyba windows 7 obsługuje Vulkan a jego najnowsza wersja tj 1.1.100 kładzie na łopatki DX 12.1… nawet nVidia która olała kompletnie Mantle potraktowała na poważnie to API.
Nie sądzę że giganci branży komputerowej zatrudniający najlepszych programistów potrzebują poradnika jak zrobić grę pod kolejną wersję DirectX. Poza tym już na etapie projektowania pisakiem na tablicy MS konsultuje się najpierw z nVidią i AMD a potem, jeszcze wiele kwartałów przed wydaniem nowej wersji, wysyła swoich ekspertów to największych firm z branży komputerowej. No chyba że DX12 to taki sam szajs jakim był DX10 i nadal robiono gry pod DX9.0c (aka 9.3) dopóki nie pojawił się DX11.
PS. Zresztą Vulkan chodzi nawet na windowsie 7 a także Linuxie i jest wiele razy lepszy od Mantle a nawet sporo od DX12
A po co robić grę pod kolejny DX skoro te na DX 11 się bardzo dobrze sprzedają a przy okazji wymagania rosną? To napędza rynek który i tak ma tragiczny zastój.
DX 12 zazwyczaj nie jest wart zachodu przy znikomych zyskach kiedy do tego samego produktu możesz wykorzystać starą ekipę zamiast szkolić nowych ludzi obeznanych w nowej bibliotece.
Niektórzy twórcy gier mają świadomość że 60% to nie 40% straty I monopol MS się im nie opłaca. MS już próbował “posmarować” na kilka pierwszych gier z DX 12 i nadal nie przełamało to lodów więc równie dobrze mogą być problemy “pod stołem”.
66% to dużo, ale nadal zyski byłyby gigantycznie mniejsze przez pozostałe 33%.
Poza tym DX12 nie oferował niczego czego nie dałoby się zrobić w DX11, ostatnio to się zmieniło za sprawą ray tracingu, więc pewnie coś się ruszy w wkrótce.
Myśląc o DX12 wierzyłem w ogólnie rozumianą niskopoziomowść* (zwiększenie i przyśpieszenie wykorzystania zasobów CPU i GPU) tego API a nie kolejne wodotryski, Vulkan 1.1 np w DOOM 2016 6.66 graficznie wszystko na maksa i choć mam kartę od nVidii to mam stałe 75 FPS nawet w czasie największej zadymy i było już tak na i3-3250 czyli CPU co ma ~50% pkt w passmarku co teraz mój i7-3770
*w DX11 granica między CPU i GPU jest sztywna i ostra jak brzytwa a w niskopoziomowych API nie np karta może dopomóc swoją wolną mocą CPU jak ten niedomaga w do kiedyś rzeczach które mógł zrobić tylko procek i karta musiała “czekać” aż on to przeliczy.
Mam nadzieje że jak powstanie DX13 albo Vulkan 1.2 (albo 2.0) pójdą dalej i na odwrót wolne rdzenie/wątki CPU będą mogły dopomóc mocą kartę. Zresztą to już chciano zrobić w 1998 wprowadzając 3DNow! i kolejne jego ulepszenia, ale tak jak z Mantle pomysł się nie przyjął bo firma nie dawała w łapę producentom gier.
A na sam koniec tej historii marzy mi się np jeden tylko czip np (arbitralnie) 5 GHz i 256 rdzeniowy prawdziwy APU (bo teraz to sklejka czasem nawet litografie są inne) najlepiej z HT/SMT gdzie każdy rdzeń będzie mógł robić wszystko i wtedy skończy się płacz o bottlenecku CPU na GPU i na odwrót.
Najgorsze jest że że kiedy AMD za pożyczkę w czasie kryzysu przejmowało perłę GPU tj ATI* myślałem że do tego właśnie zmierzają a teraz ich APU to może kilka % zysków i nawet sterów nie robią na nie.
*Karty były lepsze (FPS) i tańsze jednocześnie od nVidii
Jest jeszcze Strange Brigade, które działa na DX12 i Vulkan. Wg testów implementacja tych dwóch API w tym przypadku jest bardzo dobra.
A dlaczego DX12 jeszcze jakiś czas będzie marginesem? Na rynku jest jeszcze masa kart, które nie wspierają pełnego DX 12 lub nie wspierają go w ogóle. Dalej popularne są np Geforcy z seri 7xx, które mają tylko DX 11. Sam Windows 10 to tylko połowa wymagań dla DX 12. Jest jeszcze sprzęt. Popularne dalej Maxwelle (wyjątkiem chyba jest GTX 980 Ti) czy Radosławy Rx 2xx pełnej obsługi DX 12 też nie mają. Jeszcze się nie opłaca.
Jak Nvidia dalej będzie wykorzystywać autorskie rozwiązania, zamiast korzystać ze standardów to potrwa to jeszcze dłużej - ich RayTracing opiera się o DX12, ale działa tylko na ich kartach jako autorskie rozwiązanie. Sam RT jest częścią DX 12. Nvidia już tak ma. Łaskawie zaczęli wspierać Adaptive Sync na swoich kartach, które zawsze to mogły robić, ale ograniczał je sterownik. Ważne, że ich moduły do monitorów z G-Sync przyniosły zyski.
Widzisz, rzecz w tym, że GPU i CPU służą do skrajnie odmiennych zadań. GPU to przede wszystkim obliczenia zmiennoprzecinkowe, na macierzach, wiele tych samych przekształceń na dużych danych; w CPU mamy do tego instrukcje SSE ale wydajnościowo te układy są optymalizowane do szybkiego wykonywania sekwencyjnych zadań, na pojedynczych wartościach. To, że można użyć GPU do tych właśnie obliczeń zmiennoprzecinkowych jest możliwe dla dość specyficznych danych, w drugą stronę to zwyczajnie nie zadziała.
Znaczna część pracy przeportowania gry na Vulkan czy DX12 nie spadnie na programistów gier, lecz na programistów silników do gier(zdarza się, że to jedne i te same osoby).
Osoba która tworzy gry, zwykle ma do wyboru kilka opcji silnika renderowania do wyboru(poniższe pochodzą z Godot Game Engine)
GLES 2 - oferuje uproszczone efekty graficzne, lecz obsługuje bardzo wiele sprzętu(zwłaszcza starszego)
GLES 3 - oferuje zaawansowane efekty graficzne, lecz nie jest poprawnie wspierany przez część sterowników(zwłaszcza mobilnych)
Vulkan(WIP) - sterowniki graficzny odstępuje silnikowi gier obsługę niektórych elementów, dlatego stworzenie jego bardziej pracochłonne lecz umożliwia stworzenie wydajniejszego programu.