Was ist der Unterschied zwischen DirectX 11 und DirectX 12?
DirectX ist eine Sammlung von APIs oder Anwendungsprogrammierschnittstellen, die von Software zum Rendern von Multimediainhalten und zum Kommunizieren mit grafischer Hardware verwendet werden. DirectXs Hauptkomponenten-API, Direct3D, übernimmt die Kommunikation zwischen Software und Grafikhardware. Da alle Hardware unterschiedlich ist, beschleunigt die Verwendung einer standardisierten Bibliothek von Funktionen und Aufrufen der Kommunikation mit Ihrer Grafikkarte die Entwicklung des Spiels. Dies wird als Hardwareabstraktion bezeichnet und ist die Hauptaufgabe der API.
Denken Sie an Autos: Wenn Sie ein Auto fahren können, können Sie ziemlich alle fahren. Die Gas- und Bremspedale sind an der gleichen Stelle, und das Lenkrad dreht sich in die gleiche Richtung und die Türen öffnen sich nach außen. Es kann einige kleine Unterschiede in nicht-kritischen Funktionen wie dem Radio geben, aber insgesamt weißt du, was zu erwarten ist. DirectX und Direct3D sind so, dass Entwickler mit den gleichen Tools auf eine breite Palette von Hardware zugreifen können. Und da die meisten Spieleentwickler die Standardbibliothek von Direct3D verwenden, können sich Änderungen an der API sowohl auf Spieler als auch auf Programmierer auswirken.
Was ist neu in DirectX 12?
Jedes wichtige Update für DirectX und Direct3D bringt neue Funktionen und Entwicklungen. Direct3D 12 brachte jedoch einige besonders signifikante Änderungen mit sich. In der Tat könnte es einen neuen Bereich von Low-Level-Grafik-APIs einleiten, der die Art und Weise, wie Spiele entwickelt werden, verändern wird.
Hardwareabstraktion auf niedrigerer Ebene
Mit DirectX 12 können Entwickler nun dem "Metall" der Grafikhardware ihrer Benutzer näher kommen und auf Funktionen zugreifen, die Entwicklern bisher nicht zur Verfügung standen. Durch die Bereitstellung von Hardware auf niedrigerer Ebene können erfahrene Entwickler effizienteren Code schreiben, der schneller ausgeführt wird. Insbesondere können Entwickler die Optimierung durch schnellere Multi-Thread-Leistung und effizientere CPU-Auslastung verbessern. Dies könnte potentiell Low-Level-Optimierungen ermöglichen, ähnlich denen, die wir bei Konsolenspielen sehen, wo Spiele auf extrem spezifische Mid-Range-Hardware abgestimmt sind und eine Performance erreichen, die ohne solche hyperspezifischen Optimierungen unmöglich wäre.
Zuvor bot DirectX 11 nur eine ziemlich hohe Stufe der Hardware-Abstraktion, was den Prozess des Codierens erheblich vereinfacht. In der Tat ist das die ganze Idee hinter dem, was Hardware-APIs so mächtig macht. Es bedeutete jedoch auch, dass Möglichkeiten zur Feinabstimmung von Code mit bestimmten Hardwarefunktionen seltener waren. Der Microsoft Developer Blog bietet einige großartige Einblicke, wie DirectX 12 genau dies erreicht.
Verbesserte Multicore-Leistung
In den letzten Jahren haben Gamer akzeptiert, dass Multicore-CPUs nicht so nützlich für Spiele sind. Spiele verlassen sich stattdessen auf schnelle Singlethread-Performance. Dies liegt zum Teil daran, dass DirectX 11 keine so große Parallelisierung zulässt. Mehrere CPU-Threads können gleichzeitig Zeichenbefehle senden. Sie werden jedoch alle nacheinander in einer Warteschlange verarbeitet. DirectX 12 hebt diese Beschränkung auf und ermöglicht es Multicore-CPUs, simultane Befehle an die GPU zu senden, was die Tür zu mehr Leistung auf Multicore-Prozessoren öffnet.
Zeichne Call Overhead Reduction
Unter DirectX 11 wird ein beträchtlicher Teil der CPU-Leistung dafür aufgewendet, API-Anweisungen zu interpretieren, anstatt Spielcode auszuführen. DirectX 12 reduziert den API-Overhead, wodurch Rechenressourcen für die Ausführung von Spielecode frei werden. Dies bedeutet, dass CPU-limitierte Spiele eine höhere Leistung erzielen können, da ihre CPU-Leistung für die Verarbeitung von Spielecode freigegeben ist. Die meisten Spiele sind heute nicht CPU-limitiert, aber es ist möglich, dass neuere Spiele diese Hülle weiter vorantreiben.
Expliziter Multiadapter
DirectX 12 ist in der Lage, mehrere GPUs (AKA "Display Adapter") zu einer logischen Einheit zu kombinieren. Diese Funktion namens Explicit Multiadapter ermöglicht es, dass mehrere GPUs wie eine einzelne GPU von Software angewiesen werden. Mit DirectX 12 kann die integrierte GPU auf Ihrem Computer beispielsweise Teams mit Ihrer diskreten GPU markieren und so ihre eigene Rechenleistung bereitstellen. Eine größere API-Unterstützung kann auch eine größere Zuverlässigkeit und Effizienz bei Multi-GPU-SLI- / CrossFire-Setups bedeuten. Bei den Tests von Microsoft mit integrierten Grafiken in Kombination mit eigenständigen Grafiken wurde eine kleine, aber bemerkenswerte Kante bei den Benchmarks erreicht.
Wie wichtig ist DirectX 12 für Spieler?
Wie viele inkrementelle Verbesserungen werden Gamer die täglichen Unterschiede zwischen DirectX 11 und DirectX 12 nicht sehen. Die neuen Funktionen bringen keine neuen Rendering-Optionen, die die Nutzer begeistern. Sie werden auch keinen 100 FPS-Sprung zwischen den beiden Standards sehen. Aber diese Effizienzgewinne führen letztendlich zu mehr Leistung auf weniger leistungsfähiger Hardware und verbessern die Leistung Ihres PCs, ohne die Hardware zu aktualisieren.