Poradniki

▷ Directx 12 vs vulkan: walka o najlepszy silnik graficzny?

Spisu treści:

Anonim

Obecnie w świecie PC istnieją dwa najwyższej klasy graficzne interfejsy API, które zarządzają rynkiem z autorytetem. Z tego powodu przedstawiamy porównanie DirectX 12 Vs Vulkan.

Obaj mają za sobą długą historię i całą hordę obrońców i krytyków. Dzisiaj zobaczymy różnice, klucze każdego z nich i postaramy się o nich trochę rzucić światło.

Indeks treści

Niski poziom graficzny interfejs API i „Narzut sterownika”

API oznacza „interfejs programowania aplikacji” i jest zestawem podprogramów, z których programista może korzystać, który obejmuje również protokoły komunikacyjne i narzędzia ułatwiające tworzenie oprogramowania. Możemy je znaleźć na prawie wszystko i każdy usługodawca ma taką pomoc w celu wdrożenia swoich systemów w prosty i przystępny sposób.

Niskopoziomowe interfejsy API lepiej wykorzystują zasoby GPU, odciążając procesor, ale są również w stanie lepiej wykorzystać wielordzeniowe procesory, które mamy dzisiaj.

Zarówno DirectX 12, jak i Vulkan 1.1 to interfejsy API ukierunkowane na rozwój gier i aplikacji wymagających pomocy nowoczesnych silników graficznych. Jednocześnie są to interfejsy API obsługiwane przez sterowniki najważniejszych projektantów mikroukładów graficznych, a zatem szybki i ekonomiczny sposób uzyskiwania dostępu do ich funkcji bez konieczności znajomości ich projektu na bardzo niskim poziomie.

API niskiego poziomu, takie jak te, pozwala na pracę ze sprzętem z bardzo lekką warstwą interpretacyjną, co pozwala deweloperowi lepiej wykorzystać sprzęt, osiągając lepsze wyniki pod względem wydajności i wydajności, a także pozwalając zwolnić inne podsystemy z dodatkowego obciążenia. W świecie komputerów lub telefonów komórkowych jest mniej zależny od ogólnego procesora systemu.

Dwa interfejsy API, o których dziś porozmawiamy, można uznać za interfejsy API niskiego poziomu, a oba opracowania spowodowały coraz mniejszą zależność od procesora systemu, jednocześnie osiągając lepsze wyniki na poziomie wydajności i dostęp do bardziej graficznych funkcji. zaawansowane. Są to dwa aktywne interfejsy API, które co roku otrzymują aktualizacje, aby były zgodne z oczekiwaniami ogółu społeczeństwa i programistów.

Niskopoziomowe interfejsy API mają bezpośredni wpływ na inną koncepcję obliczeniową, którą znamy jako „narzut sterownika”, czyli w skrócie wtórne zasoby, których potrzebujemy do wykonywania określonych rodzajów operacji na komputerze. W przypadku grafiki odnosi się do dodatkowych zasobów, które karta graficzna potrzebuje do wykonania swojej pracy, i w tym przypadku jest to zasadniczo centralny czas procesora. Interfejsy API niskiego poziomu, które opiszemy tutaj, zmniejszają tę zależność, aw rzeczywistości zależność ma tendencję do 0.

Microsoft DirectX

DirectX powstaje jako konieczność ujednolicenia różnych podsystemów multimedialnych Windows i zastępuje WinG dla Windows 3.1. Został przyjęty w Windows 95 jako pakiet dodatkowy, a jego druga wersja, DirectX 2.0, staje się podstawowym składnikiem systemu Windows 95 OSR2.

W ramach DirectX znajdujemy wiele niezależnych interfejsów API, takich jak Direct3D, który jest tym, o którym mowa, DirectDraw, DirectMusic, DirectPlay i DirectSound. DirectX był sposobem na nazwanie wspólnych postępów we wszystkich tych pod-API. Jest to interfejs API dla systemu Windows, ale służy również do opracowywania gier na konsolach Xbox, więc możemy uznać go za interfejs API wieloplatformowy, ale nie darmowy, jak w przypadku Vulkan.

Najnowsza wersja DirectX 12 jest z nami od 2014 roku i nie stała w miejscu, a kilka miesięcy temu otrzymała ważne ulepszenia, takie jak procedura Direct Ray Tracing (DXR), która została uwzględniona w aktualizacji Windows 10 z października 1809 roku.

Niskopoziomowe interfejsy API, takie jak DirectX 12, mają podstawową zaletę, jaką jest zmniejszenie narzutu sterownika. Programiści są teraz uprawnieni do projektowania zachowania GPU w swoich programach i mogą lepiej zarządzać zasobami GPU, zwłaszcza dzięki wykorzystaniu równoległości procesów. Obejmuje to lepszą obsługę wielu układów GPU w jednym systemie, a nawet jeśli nie pochodzą one od tego samego producenta.

Mogą wykonywać różnego rodzaju operacje, zwykle „liczby całkowite” lub „zmiennoprzecinkowe”, wykorzystując możliwości kompatybilnej grafiki, a także dzieląc złożone operacje na prostsze, przetwarzając je równolegle na tych większych magistralach. Dobrym przykładem jest to, w jaki sposób AMD lub Nvidia mogą teraz przetwarzać operacje 16-bitowe na swoich 32-bitowych szynach, znacznie poprawiając wydajność grafiki.

Ten interfejs API podniósł efektywność wykorzystania GPU konsoli, gdzie programiści doskonale znają dostępny sprzęt, aż do heterogenicznego ekosystemu, który tworzy komputer z nieskończonymi różnymi możliwościami sprzętowymi.

Obecnie DirectX 12 jest dostępny, z zaskoczenia, na Windows 7 i Windows 10 i chociaż nie jest bezpośrednio kompatybilny z Xbox One, prawda jest taka, że ​​praktycznie 90% jego funkcjonalności jest wykorzystywane na PC, różnice są minimalne i to pozwoliło programiści szybko dostosowują swoje gry na PC do Xbox One i odwrotnie.

Vulkan z Khronos

Vulkan jest ewolucją niskiego poziomu API OpenGL i jest obsługiwany przez Khronos Corporation. W świecie komputerów PC odgrywają one drugorzędną rolę w stosunku do DirectX 12, ale różne adaptacje do różnych platform, takich jak Android, sprawiły, że jest to punkt odniesienia w dziedzinie grafiki pod względem mobilności. Jest także kompatybilny z Linuksem, który jest świetną alternatywą dla gier w wolnych systemach.

Jego wielką zaletą jest duża zdolność przetwarzania równoległego, która jest niezwykle wydajna w nowoczesnych procesorach i procesorach graficznych, osiągając niskie wykorzystanie tego pierwszego i świetne wykorzystanie sprzętu drugiego. Jest specjalnie zaprojektowany, aby wykorzystać procesory wielordzeniowe, osiągając doskonały rozkład obciążenia w tego typu procesorach, w rzeczywistości jest o wiele bardziej wydajny dla większej liczby rdzeni, które możemy zapewnić.

Historia Vulkan sięga roku po tym, jak DirectX 12 i Khronos, która jest organizacją non-profit, utrzymuje ją tak często lub częściej niż Microsoft z własnym API. Opiera się on na API Mantle, który AMD opracował dla swojej architektury GCN, i był to kolejny API niskiego poziomu dla zredukowanego „sterownika narzutu”. AMD przekazało swoje osiągnięcia Khronosowi, a to są fundamenty jednego z najlepszych graficznych interfejsów API na rynku.

Oprócz doskonałej równoległości, ta konstrukcja pozwala również na wyeliminowanie wstępnej kompilacji operacji zacieniania na GPU, dzięki czemu można uzyskać więcej efektów i na ekranie z większą prędkością ładowania, a także bardziej szczegółową regulację sposobu działania operacji sprzętowych lub dostępu do dostępny bufor ramki. Z pewnością API na PC jest najbliżej samego sprzętu, nawet lepiej niż DirectX 12.

Vulkan wprowadza także ulepszenia API niskiego poziomu na Androidzie i innych platformach.

Jego najnowsza wersja, Vulkan 1.1, wprowadzona pod koniec 2018 roku, dodaje ważne ulepszenia, takie jak obsługa HLSL, która jest alternatywą DirectX 12 do zarządzania operacjami shadera bez wstępnej kompilacji, lepszą kompatybilność z DirectX 12 (do wielu podprogramów oprócz grafiki), wyraźne wsparcie dla systemów Multi-GPU niezależnie od producenta i oczywiście wsparcie dla RayTracing.

Mocne i słabe strony DirectX 12 vs Vulkan

Oprócz opisanych już wspólnych funkcji, takich jak lepsze wykorzystanie sprzętu, większa kontrola nad nim i lepsze wykorzystanie równoległości zarówno procesora graficznego, jak i procesora, te dwa interfejsy API dodają również możliwość wykonywania ogólnych operacji obliczeniowych za pomocą układów graficznych z które są kompatybilne. Umożliwia to kompatybilnym silnikom graficznym, już kilka generacji, wykonywanie złożonych operacji matematycznych, które mogą być wykorzystywane przez wszelkiego rodzaju programy, w tym te bez komponentów graficznych.

W grach można je również wykorzystywać do coraz ważniejszych operacji wtórnych, takich jak obliczanie realistycznej fizyki, sztucznej inteligencji, pozycyjnych efektów dźwiękowych itp.

Oba interfejsy API mają świetne wsparcie ze strony świetnych grafik, zarówno AMD, jak i Nvidia starają się zaoferować tym interfejsom API odpowiednie sterowniki, aby osiągnąć oba zaoferować użytkownikom najnowsze ulepszenia oraz wzmocnić wydajność i stabilność gier, które korzystają z jednego z nich lub inny interfejs API.

„Obciążenie sterowników” obu jest bardzo niskie, w rzeczywistości, jak zobaczycie w naszych testach, nie ma prawie żadnych różnic między nimi, co jest również oznaką ważnej optymalizacji sterowników obu producentów.

Ograniczyliśmy liczbę klatek na sekundę do 120 klatek na sekundę dla wersji demonstracyjnej Driver Overhead. W Dota 2 zużycie procesora jest znacznie zmniejszone przy tym samym FPS.

Jedyną bardziej oczywistą różnicą jest to, że Vulkan ma nieco mniejszą zależność od procesora, z niższym średnim zużyciem i że jest również znacznie bardziej otwarty na różne platformy, w tym Windows i Linux oraz jego homogenizację z OpenGL ES, czyli wersją mobilną, jest w drodze do dalszego zjednoczenia platform, na których się porusza.

DirectX 12 ma na swoją korzyść wielką akceptację ze strony programistów, którzy wydają się znaleźć w tym API idealny ekosystem do obniżenia swoich kosztów, ponieważ ma nawet świetną integrację w ramach tak powszechnych jak Framework.NET Framework, gdzie integruje się z tysiącem cudów z niewielką utratą wydajności.

Różnice w wydajności w grach z podwójnym API

Jak widać na przykładzie ruchu, przeprowadziliśmy kilka testów wydajności w różnych grach i testach porównawczych, które mają możliwość wykorzystania tych dwóch interfejsów API do wykonania.

Test napowietrzny sterownika 3DMark. Rezultaty w milionach próśb, im więcej tym lepiej.

Prochy osobliwości. Wyniki w FPS, im więcej, tym lepiej.

Dziwna Brygada. Wyniki w FPS, im więcej, tym lepiej.

Podsumowujemy najlepsze przewodniki po sprzęcie, które powinny Cię zainteresować:

  • Najlepsze procesory na rynku Najlepsze płyty główne na rynku Najlepsze pamięci RAM na rynku Najlepsze karty graficzne na rynku Najlepsze dyski SSD na rynku Lepsza obudowa lub obudowa komputera Lepsze zasilacze Lepsze radiatory i chłodnice cieczy

Jak widać, wyniki są równe i widzimy różnice między programami dla jednego i drugiego dla jednego i drugiego. Pozostaje nam pytanie, które jest lepsze, a odpowiedź jest jasna, zależy to od programu i tego, jak jego programista wie lub chce skorzystać z jego zalet. Pozostaje myśleć, że w każdej grze programiści będą używać dokładnie interfejsu API, który najlepiej wykorzystuje zalety naszej grafiki, choć jasne jest, że obie opcje wydają się bardziej niż kompetentne. Co sądzisz o naszym artykule na temat Directx 12 vs Vulkan ? Chcemy poznać Twoją opinię!

Poradniki

Wybór redaktorów

Back to top button