Tutorials

▷ Directx 12 gegen Vulkan: Der Kampf um die beste Grafik-Engine?

Inhaltsverzeichnis:

Anonim

Derzeit gibt es für die PC-Welt zwei erstklassige grafische APIs, die den Markt mit Autorität verwalten. Aus diesem Grund bringen wir Ihnen den DirectX 12 Vs Vulkan Vergleich.

Beide haben eine lange Geschichte hinter sich und eine ganze Horde von Verteidigern und Kritikern. Heute werden wir die Unterschiede sehen, die Schlüssel von jedem und wir werden versuchen, etwas Licht auf sie zu werfen.

Inhaltsverzeichnis

Low-Level-Grafik-API und "Treiber-Overhead"

API steht für "Application Programming Interface" und ist eine Reihe von Unterprogrammen, die von einem Entwickler verwendet werden können. Dazu gehören auch Kommunikationsprotokolle und Dienstprogramme, die die Softwareentwicklung erleichtern. Wir können sie für fast alles finden, und es ist üblich, dass jeder Dienstleister diese Art von Hilfe hat, um seine Systeme auf einfache und zugängliche Weise zu implementieren.

Low-Level-APIs nutzen die Ressourcen der GPU besser aus, entlasten die CPU, können aber auch die heutigen Multi-Core-Prozessoren besser nutzen.

Sowohl DirectX 12 als auch Vulkan 1.1 sind APIs, die auf die Entwicklung von Spielen und Anwendungen ausgerichtet sind, die die Unterstützung moderner Grafik-Engines erfordern. Gleichzeitig sind sie APIs, die von den Treibern der wichtigsten Grafikchipsatz-Designer unterstützt werden, und bieten daher eine schnelle und kostengünstige Möglichkeit, auf ihre Funktionen zuzugreifen, ohne ihr Design auf einem sehr niedrigen Niveau kennen zu müssen.

Eine Low-Level-API wie diese ermöglicht die Arbeit mit der Hardware mit einer sehr leichten Interpretationsschicht, die es dem Entwickler ermöglicht, die Hardware besser zu nutzen, bessere Ergebnisse in Bezug auf Leistung und Effizienz zu erzielen und auch andere Subsysteme von zusätzlicher Last zu befreien. In der Welt des PCs oder Mobiltelefons ist es weniger abhängig von der allgemeinen CPU des Systems.

Die beiden APIs, über die wir heute sprechen werden, können als Low-Level-APIs betrachtet werden. Beide Entwicklungen haben zu einer immer geringeren Abhängigkeit von der CPU des Systems geführt und gleichzeitig bessere Ergebnisse auf Leistungsebene und Zugriff auf grafischere Funktionen erzielt. fortgeschritten. Es handelt sich um zwei Live-APIs, die jährlich aktualisiert werden, um den Erwartungen der Öffentlichkeit und der Entwickler gerecht zu werden.

Low-Level-APIs wirken sich direkt auf ein anderes Rechenkonzept aus, das wir als "Treiber-Overhead" kennen. Dies sind kurz gesagt die sekundären Ressourcen, die wir zum Ausführen bestimmter Arten von Vorgängen auf einem Computer benötigen. Im Fall von Grafiken bezieht es sich auf die zusätzlichen Ressourcen, die die Grafikkarte benötigt, um ihre Arbeit zu erledigen, und in diesem Fall sind es grundsätzlich zentrale CPU-Prozesszeiten. Die hier beschriebenen Low-Level-APIs reduzieren diese Abhängigkeit, und tatsächlich tendiert die Abhängigkeit zu 0.

Microsoft DirectX

DirectX ist eine Notwendigkeit zur Standardisierung verschiedener Windows-Multimedia-Subsysteme und ersetzt WinG für Windows 3.1. Es wird in Windows 95 als Add-On-Paket übernommen und seine zweite Version, DirectX 2.0, wird zu einer grundlegenden Komponente von Windows 95 OSR2.

In DirectX finden wir mehrere unabhängige APIs wie Direct3D, DirectDraw, DirectMusic, DirectPlay und DirectSound. DirectX war eine Möglichkeit, gemeinsame Fortschritte in all diesen Unter-APIs zu benennen. Es ist eine API für Windows, wird aber auch für die Entwicklung von Spielen auf seinen Xbox-Konsolen verwendet, sodass wir es als Multiplattform-API betrachten können, aber nicht kostenlos, wie dies bei Vulkan der Fall ist.

DirectX 12, seine neueste Version, ist seit 2014 bei uns und steht nicht still. Vor einigen Monaten erhielt es wichtige Verbesserungen wie die Direct RayTracing (DXR) -Unterroutine, die in der Update-Version von Windows 10 vom Oktober 1809 enthalten war.

Low-Level-APIs wie DirectX 12 haben einen grundlegenden Vorteil, nämlich die Reduzierung des Treiber-Overheads. Programmierer können jetzt festlegen, wie sich die GPU in ihren Programmen verhält, und können die GPU-Ressourcen besser verwalten, insbesondere durch Nutzung der Prozessparallelisierung. Dies beinhaltet eine bessere Unterstützung für mehrere GPUs in einem System und auch wenn diese nicht vom selben Hersteller stammen.

Sie können verschiedene Arten von Operationen ausführen, normalerweise "Ganzzahl" oder "Gleitkomma", wobei sie die Fähigkeiten der kompatiblen Grafiken nutzen und komplexe Operationen in einfachere Operationen unterteilen, indem sie auf diesen größeren Bussen parallel verarbeitet werden. Ein gutes Beispiel ist, wie AMD oder Nvidia jetzt 16-Bit-Operationen auf ihren 32-Bit-Bussen verarbeiten können, wodurch die Effizienz ihrer Grafiken erheblich verbessert wird.

Diese API hat die Effizienz der Verwendung einer Konsolen-GPU, bei der die Entwickler die verfügbare Hardware genau kennen, dem heterogenen Ökosystem näher gebracht, das einen PC mit unendlich verschiedenen Hardwaremöglichkeiten bildet.

Derzeit ist DirectX 12 überraschenderweise für Windows 7 und Windows 10 verfügbar. Obwohl es nicht direkt mit Xbox One kompatibel ist, werden praktisch 90% seiner Funktionen für PCs verwendet. Die Unterschiede sind minimal und das hat es ermöglicht Entwickler können ihre PC-Spiele schnell an Xbox One anpassen und umgekehrt.

Vulkan von Khronos

Vulkan ist die Weiterentwicklung der Low-Level- API von OpenGL und wird von der Khronos Corporation unterstützt. In der PC-Welt spielen sie eine untergeordnete Rolle gegenüber DirectX 12, aber die unterschiedlichen Anpassungen an verschiedene Plattformen wie Android haben es zu einem Maßstab für Grafiken für Mobilität gemacht. Es ist auch kompatibel mit Linux als großartiger Alternative zum Spiel in freien Systemen.

Seine große Tugend ist seine große Parallelverarbeitungskapazität, die in modernen CPUs und GPUs äußerst effizient ist und eine geringe Nutzung der ersteren und eine große Nutzung der Hardware der letzteren erreicht. Es wurde speziell entwickelt, um die Vorteile von Mehrkernprozessoren zu nutzen, die bei diesem Prozessortyp eine hervorragende Lastverteilung erzielen. Je mehr Kerne wir bereitstellen können, desto effizienter ist es.

Die Geschichte von Vulkan reicht bis in ein Jahr zurück, nachdem DirectX 12 und Khronos, ein gemeinnütziges Unternehmen, es so oft oder öfter pflegen als Microsoft mit seiner eigenen API. Es basiert auf dem API- Mantel, den AMD für seine GCN- Architektur entwickelt hat, und war eine weitere Low-Level-API für einen reduzierten „Overhead-Treiber“. AMD spendete seine Entwicklungen an Khronos und dies sind die Grundlagen einer der besten grafischen APIs auf dem Markt.

Zusätzlich zur überlegenen Parallelisierung ermöglicht dieses Design auch das Eliminieren der Vorkompilierung von Schattierungsvorgängen auf der GPU, wodurch mehr Effekte und auf dem Bildschirm mit höherer Ladegeschwindigkeit erzielt werden können, sowie eine detailliertere Anpassung der Art und Weise, wie die Hardware Vorgänge verarbeitet oder wie wir darauf zugreifen Bildpuffer verfügbar. Es ist sicherlich die API für PC, die der Hardware selbst am nächsten kommt, sogar besser als DirectX 12.

Vulkan führt auch API-Verbesserungen auf niedriger Ebene für Android und andere Plattformen ein.

Die neueste Version, Vulkan 1.1, die Ende 2018 eingeführt wurde, bietet wichtige Verbesserungen wie die HLSL-Unterstützung, die die Alternative von DirectX 12 zur Verwaltung von Shader-Vorgängen ohne Vorkompilierung darstellt und eine bessere Kompatibilität mit DirectX 12 (zu seinen zahlreichen Unterprogrammen) bietet abgesehen von der Grafik), explizite Unterstützung für Multi-GPU-Systeme unabhängig vom Hersteller und natürlich Unterstützung für RayTracing.

Stärken und Schwächen von DirectX 12 gegen Vulkan

Zusätzlich zu den bereits beschriebenen allgemeinen Funktionen wie einer besseren Nutzung der Hardware, einer besseren Steuerung und einer besseren Nutzung der Parallelisierung von GPU und CPU bieten diese beiden APIs auch die Möglichkeit, allgemeine Rechenoperationen mit Grafikchips mit durchzuführen das sind kompatibel. Auf diese Weise können kompatible Grafik-Engines, die bereits mehrere Generationen alt sind, komplexe mathematische Operationen ausführen, die von Programmen aller Art, einschließlich solcher ohne Grafikkomponenten, ausgenutzt werden können.

In Spielen können sie auch für immer wichtigere sekundäre Operationen wie die Berechnung realistischer Physik, künstlicher Intelligenz, Positionssoundeffekte usw. verwendet werden.

Beide APIs werden von den großen Grafikern hervorragend unterstützt. Sowohl AMD als auch Nvidia sind bestrebt, diesen APIs die geeigneten Treiber anzubieten, um ihren Benutzern die neuesten Verbesserungen zu bieten und die Leistung und Stabilität von Spielen zu verbessern, die eines verwenden oder eine andere API.

Der "Treiberaufwand" beider ist sehr gering, wie Sie in unseren Tests sehen werden, gibt es kaum Unterschiede zwischen ihnen, was auch ein Zeichen für die wichtige Optimierung der Treiber beider Hersteller ist.

Wir haben die Framerate für eine Demo von Driver Overhead auf 120 FPS begrenzt. In Dota 2 wird der CPU-Verbrauch bei gleichem FPS erheblich reduziert.

Der einzig offensichtliche Unterschied besteht darin, dass Vulkan bei geringerem Durchschnittsverbrauch eine etwas geringere Abhängigkeit von der CPU aufweist und auch für verschiedene Plattformen, einschließlich Windows und Linux, sowie für die Homogenisierung mit OpenGL ES, der mobilen Version, viel offener ist. es ist auf dem Weg, die Plattformen, auf denen es sich bewegt, weiter zu vereinheitlichen.

DirectX 12 hat die große Akzeptanz bei den Entwicklern, die in dieser API das perfekte Ökosystem zu finden scheinen, um ihre Kosten zu senken, da es sogar eine großartige Integration in Frameworks aufweist, die so weit verbreitet sind wie das.NET Framework, in das es sich mit tausend Wundern integriert mit geringem Leistungsverlust.

Leistungsunterschiede bei Spielen mit doppelter API

Da die Bewegung beim Gehen demonstriert wird, haben wir einige Leistungstests in verschiedenen Spielen und Benchmarks durchgeführt, bei denen diese beiden APIs für die Ausführung verwendet werden können.

3DMark Driver Overhead Test. Ergebnisse in Millionen von Anfragen, mehr ist besser.

Asche der Singulität. Ergebnisse in FPS, mehr ist besser.

Seltsame Brigade. Ergebnisse in FPS, mehr ist besser.

Wir fassen die besten Hardware-Anleitungen zusammen, die Sie interessieren sollten:

  • Beste Prozessoren auf dem Markt Beste Motherboards auf dem Markt Bester RAM-Speicher auf dem Markt Beste Grafikkarten auf dem Markt Beste SSDs auf dem Markt Bessere Gehäuse- oder PC-Gehäuse Bessere Stromversorgungen Bessere Kühlkörper und Flüssigkeitskühler

Wie Sie sehen können, sind die Ergebnisse gleichmäßig und wir sehen Unterschiede zwischen Programmen für und gegen das eine und das andere. Dies lässt uns die Frage offen, welche besser ist und die Antwort klar ist. Sie hängt vom Programm ab und davon, wie der Entwickler seine Vorteile kennt oder nutzen möchte. Was bleibt, ist zu denken, dass die Entwickler in jedem Spiel genau die API verwenden, die die Vorteile unserer Grafiken am besten nutzt, obwohl klar ist, dass beide Optionen mehr als kompetent erscheinen. Was halten Sie von unserem Artikel über Directx 12 gegen Vulkan ? Wir möchten Ihre Meinung wissen!

Tutorials

Die Wahl des Herausgebers

Back to top button