DirectX 12 Vorstellung und Erklärung

DirectX 12 ist die neueste Version der Programmierschnittstelle aus dem Hause Microsoft, die zahlreiche neue Funktionen bietet, um unterstützte Hardware effizienter zu nutzen und so deren Leistung zu steigern.

Unter dem Begriff DirectX sind mehrere Schnittstellen (APIs) zusammengefasst, die den Entwicklern bei der Programmierung die Arbeit vereinfachen und die Entwicklungskosten senken. Die wichtigsten DirectX-Schnittstellen sind Direct3D, das den Zugriff auf die Grafikkarte regelt, DirectSound, das die Soundausgabe übernimmt, DirectInput, das die Verwendung von Eingabegeräten (Maus, Joypad) ermöglicht und DirectPlay, das für die Kommunikation in Multiplayerspielen zuständig ist. Durch die einheitlichen Schnittstellen wird sichergestellt, dass kompatible Hard- und Software direkt miteinander kommunizieren kann. Ein Programm, das auf die Schnittstelle Direct3D für die Grafikausgabe setzt, ist automatisch auf allen Grafikkarten lauffähig, die den DirectX-Standard unterstützen. Die langwierige Anpassung durch die Entwickler an alle möglichen Hardware-Konfigurationen fällt beim Einsatz von DirectX weg.

Bisherige Versionen von DirectX boten zwar ein hohes Maß an Kompatibilität auf der Seite der Hardware, konnten diese aber nicht immer optimal ausnutzen. Beispielsweise gab es bei der Kommunikation zwischen Prozessor und Grafikkarte zum Overhead, was einen Leistungsverlust bedeutet. Genau hier setzt DirecX12 an, um die Prozessor-Last durch hardwarenähere Programmierung zu verringern.

Aus welchen Bestandteilen/Features setzt sich DirectX 12 zusammen?

Microsoft hat sich mit DirectX 12 vorgenommen, die Leistung der vorhandenen Hardware-Komponenten durch eine effektivere Programmierung zu steigern. Dieser Leistungsschub soll sich in Spielen durch höhere Bildraten und kürzere Ladezeiten positiv bemerkbar machen. DirectX 12 legt den Fokus auf eine bessere Auslastung von modernen Mehrkernprozessoren. Vorige Versionen von DirectX konnten keine Anfragen zwischen Prozessor und Software parallel abarbeiten, sondern ein Kern des Prozessors musste diese Aufgabe allein übernehmen. Die restlichen Kerne der CPU blieben ungenutzt. Mit DirectX 12 gibt Microsoft Entwicklern wesentlich mehr Freiheit bei der Programmierung, da sie jetzt selbst festlegen können, wie sie die verschiedenen Kerne des Prozessors einsetzen möchten. Das hat eine Verringerung der CPU-Last zur Folge, da auf diese Weise mehrere Aufgaben gleichzeitig abgearbeitet werden können.

Mit dem Einsatz von DirectX 12 steigt auch die 3D-Leistung der Grafikkarte, da diese effizienter mit der neuen Direct3D-Schnittstelle zusammenarbeitet. Ermöglicht wird das durch die Asynchronous Shader-Technologie. In der Vorgängerversion war es üblich, dass Berechnungen in der Render-Pipeline nacheinander erfolgten, was zu Wartezeiten führte, da die Grafikkarte erst den aktuellen Befehl abarbeiten musste. Die Veröffentlichung von DirectX 12 ermöglichte auch der Grafikkarte mehrere Berechnungen, wie zum Beispiel Reflexionen oder Physik, gleichzeitig auszuführen. Die Asynchronous Shader-Technologie erkennt selbstständig Leerlauf bei Berechnungen und fügt automatisch andere Befehle in die Render-Pipeline ein. Diese Technik sorgt bei unveränderter Hardware für einen Leistungsschub durch Steigerung der Effizienz und Verkürzung der Rechenzeit.

In DirectX 12 sind die vier Feature-Levels 11.0, 11.1, 12.0 und 12.1 für die Darstellung von 3D-Grafik integriert. Die Feature-Levels unterscheiden sich je nach verbautem Chipsatz der Grafikkarte und deaktivieren bei älteren Karten zum Beispiel die schönere Darstellung von Partikeleffekten in Spielen.

Die ersten beiden Feature-Levels stehen für den DirectX 11-Standard, während 12.0 und 12.1 alle Features von DirectX 12 beinhalten. Der Vorteil für die Entwickler liegt in der einheitlichen Optimierung ihrer Software auf DirectX 12 trotz unterschiedlicher Hardware-Konfigurationen, ohne auf eine ältere DirectX-Version zurückgreifen zu müssen.

Was ist der Unterschied zwischen DirectX 11 und DirectX 12?

In den Jahren vor der Veröffentlichung von DirectX 12 am 29. Juli 2015 hatten sich Spieler damit abgefunden, dass Mehrkernprozessoren für keinen signifikanten Leistungssprung bei Spielen sorgten, sondern hauptsächlich die Einzelkern-Leistung zählte. Die zunehmende Verbreitung von Mehrkernprozessoren setzte Microsoft schließlich unter Zugzwang, da DirectX 11 kaum Parallelisierung bei Berechnungen erlaubte und ein hohes Maß an Hardware Abstraktion bot, das zwar den Prozess der Programmierung vereinfachte, aber seltener Feinschliff am Programmcode zuließ. DirectX 12 hebt diese Limitierungen auf und führt uns in eine neue Ära der hardwarenahen Programmierung.

Was sind die Vorteile von DirectX 12 zu anderen APIs?

DirectX 12 wird standardmäßig mit Windows 10 ausgeliefert und ist damit fester Bestandteil des Betriebssystems. Spieler können sich gegenüber anderen APIs auf die optimale Integration und Unterstützung aller kompatibler Hard- und Software durch das Betriebssystem aus dem Hause Microsoft verlassen. Da auch die Konsolen aus Redmont auf DirectX setzen, ist die Möglichkeit der kostengünstigen und zeitnahen Portierung von Spielen ein weiterer Pluspunkt. Andere Grafik-APIs wären beispielsweise Metal von Apple oder Vulkan.

Wo wird DirectX 12 eingesetzt?

DirectX 12 ist gegenüber anderen APIs keine quelloffene Schnittstelle und kommt ausschließlich auf Produkten zum Einsatz, die von Microsoft selbst stammen. DirectX 12 findet sich zusammen mit Windows 10 weltweit auf der allergrößten Mehrzahl der Computer und auch auf der Xbox-Konsole kommt die Schnittstelle zur Anwendung.

Artikel vom 08.08.2020