Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

DirectX 12 wurde 2015 zusammen mit Windows 10 veröffentlicht. Mit seiner Veröffentlichung hat DirectX 12 von Microsoft eine neue Ära für Gamer und Spieleentwickler eingeläutet. In der Lage, den CPU-Overhead zu reduzieren und gleichzeitig die GPU-Leistung zu steigern, hat sich DirectX 12 schnell einen Namen gemacht.

Aber ist die Leistungssteigerung wirklich so einfach wie der Wechsel von DirectX 11 zu DirectX 12? Finden wir es heraus, indem wir uns die Unterschiede zwischen DirectX 11 und 12 ansehen.

Was ist DirectX von Microsoft?

Wie in erklärt unsere Übersicht zu Microsoft DirectX, DirectX ist eine Sammlung von APIs, die zur Handhabung von Aufgaben im Zusammenhang mit Multimedia verwendet werden. Dazu gehört die Spieleprogrammierung auf Microsoft-basierten Plattformen wie Windows und Xbox. Lassen Sie uns kurz über APIs sprechen, um etwas Kontext zu schaffen.

instagram viewer

Eine Anwendungsprogrammierschnittstelle (API) ermöglicht es zwei oder mehr Computerprogrammen, miteinander zu kommunizieren, was wir in besprechen unsere API-Übersicht. Stellen Sie es sich wie ein Telefon vor. Wenn Ihre Mutter Ihnen eine SMS mit einer Einkaufsliste sendet, empfängt Ihr Telefon diese Daten und zeigt sie für Sie an. Das ist im Grunde eine API.

Was sind die Unterschiede zwischen DirectX 11 und DirectX 12?

Was sind also die Unterschiede zwischen DirectX 11 und DirectX 12? Einfach ausgedrückt ist DirectX 12 die neueste Version von DirectX. Einer der auffälligsten Unterschiede zwischen den beiden ist, wie sie mit Ihrer Hardware interagieren. Die meisten Spiele, die mit DirectX 11 entwickelt wurden, verwenden nur zwischen zwei und vier CPU-Kerne. Einer dieser Kerne ist normalerweise dazu bestimmt, der GPU zu sagen, was sie tun soll.

Das Spiel verwendet dann die verbleibenden Kerne, um verschiedene CPU-intensive Einstellungen wie die Partikel eines Spiels oder die Entfernungsanzeige zu handhaben. Andererseits verteilt DirectX 12 die Arbeitslast einer CPU auf mehrere Kerne und ermöglicht es jedem Kern, gleichzeitig mit der GPU zu kommunizieren.

DirectX 12 kommt auch mit einigen ausgefallenen Glocken und Pfeifen. Dazu gehören asynchrones Computing und Pipeline-Zustandsobjekte (PSOs). Asynchrones Computing erhöht die GPU-Auslastung, indem mehrere Workloads parallel arbeiten können. Dies setzt im Wesentlichen das volle Potenzial Ihrer GPU frei.

Neben dem Rendern von Grafiken ist Ihre GPU für die Abwicklung einer Vielzahl anderer Aufgaben verantwortlich, z. B. für die Ausführung von Algorithmen für maschinelles Lernen. Mit DirectX 11 kann die GPU nur eine dieser Aufgaben gleichzeitig und in einer bestimmten Reihenfolge ausführen. In diesem Fall wird die Leistung beeinträchtigt, da nicht alle Ihre GPU-Ressourcen verwendet werden.

Stellen Sie sich das wie einen Kellner in einem Restaurant vor. Wenn ein Kellner Ihre Bestellung aufnimmt, fragt er Sie, was Sie zuerst trinken möchten. Sobald Sie Ihre Getränke erhalten haben, werden Sie gefragt, was Sie als Hauptgericht möchten. Ihre Bestellung wird schrittweise aufgenommen. Der Kellner wird Sie nicht fragen, was Sie zum Nachtisch möchten, bevor Sie Ihr Hauptgericht gegessen haben. Dies ist zwar effektiv, aber nicht so effizient, wie es sein könnte.

Beim Rechnen würde jede Aufgabe des Kellners von einer anderen GPU-Ressource erledigt. Bis Sie Ihr Getränk erhalten, sind die GPU-Ressourcen, die für die Bestellung Ihres Hauptgerichts benötigt werden, ungenutzt. Mit dem asynchronen Computing von DirectX 12 wäre der Kellner in der Lage, Ihre Bestellung auf einmal entgegenzunehmen, wie in einer Fast-Food-Kette. Dies maximiert die GPU-Nutzung und verbessert Ihre Spieleleistung.

DirectX 12 führte auch PSOs ein. Mit DirectX 11, wenn die Geometrie eines Spiels an die GPU übermittelt wird gerendert werden soll, sind verschiedene Hardwareeinstellungen dafür verantwortlich, dies zu interpretieren und zu rendern Daten. Dies wird als Grafikpipeline bezeichnet und ist der Fluss von Dateneingaben und -ausgaben, die auftreten, wenn Ihre GPU Frames rendert. Die Grafikpipeline von DirectX 11 ist jedoch nicht perfekt.

Diese Pipeline enthält neben anderen Komponenten eine Sammlung verschiedener Zustände, darunter Rasterisierungszustand, Mischzustand und Tiefenschablonenzustand. In DirectX 11 gibt es Abhängigkeiten zwischen diesen verschiedenen Zuständen. Folglich kann ein Zustand nicht abgeschlossen werden, bis der vorherige Zustand definiert ist. Dies verringert die GPU-Auslastung und erhöht den CPU-Overhead auf Kosten der Leistung.

Um dies zu umgehen, wurden mit DirectX 12 PSOs eingeführt, bei denen es sich um Objekte handelt, die den Zustand der gesamten Grafikpipeline beschreiben. PSOs sind wie eine Flasche, die die verschiedenen Zustände und Komponenten enthält, die zum Erstellen eines Images erforderlich sind. Dadurch kann die GPU jeden abhängigen Zustand vorverarbeiten, anstatt Zustände basierend auf der aktuellen Grafikpipeline ständig neu berechnen zu müssen.

Dies reduziert den CPU-Overhead von DirectX 11 erheblich und verbessert die Leistung. Also, wie sieht dieser Unterschied eigentlich aus? Nun, laut Microsoft reduziert DirectX 12 den CPU-Overhead um bis zu 50 Prozent und verbessert die GPU-Leistung um bis zu 20 Prozent. Obwohl dies einige wesentliche Verbesserungen sind, bedeutet dies nicht, dass Sie die gleichen Ergebnisse sehen werden.

Warum der Wechsel von DirextX 11 zu DirectX 12 nicht einfach ist

DirectX 11 wurde erstmals am 27. Oktober 2009 für Windows Vista veröffentlicht. Da DirectX 12 2015 folgt, ist das also eine sechsjährige Lücke zwischen DirectX 11 und DirectX 12. In dieser Zeit wurden Tausende von Spielen mit DirectX 11 entwickelt. Leider ist der Umstieg von DirectX 11 auf DirectX 12 alles andere als einfach.

DirectX 11 ist eine sogenannte High-Level-API. Um es einfach auszudrücken: High-Level-APIs sind für Entwickler einfacher zu handhaben. Das Ergebnis sind stabile, ausgefeilte und spielbare Spiele. Andererseits ist DirectX 12 eine Low-Level-API und ein anderes Biest als DirectX 11. Es ermöglicht Entwicklern zwar eine Feinabstimmung der Optimierung auf granularer Ebene, erfordert aber auch umfangreiches Wissen.

Davon abgesehen könnte ein in DirectX 12 entwickeltes Spiel je nach Kenntnis des Entwicklers über die API eine schlechtere Leistung erbringen. Es gibt Verbesserungen, die mit DirectX 12 einhergehen, aber es kommt wirklich darauf an, wie gut ein Entwickler sie implementieren kann. Aus diesem Grund entscheiden sich viele Entwickler dafür, sich an High-Level-APIs wie DirectX 11 zu halten.

Sollten Sie DirectX 11 oder DirectX 12 wählen?

Die Antwort hängt von einigen Dingen ab, z. B. von dem Spiel, das Sie ausführen möchten. Beispielsweise läuft Guild Wars 2 auf DirectX 11. Selbst wenn Ihr Betriebssystem und Ihre Hardware DirectX 12 verwenden, haben Sie in Guild Wars 2 nicht die Möglichkeit, DirectX 11 auszuwählen, da das Spiel es nicht unterstützt. Dies ist ausschließlich die Entscheidung des Entwicklers ArenaNet.

Bildnachweis: Martin Kerstein/Guild Wars 2

Ob Sie es glauben oder nicht, es hat neun Jahre gedauert, bis ArenaNet von DirectX 9 auf DirectX 11 umgestiegen ist. Es gibt jedoch einige Spiele, die sowohl DirectX 11 als auch DirectX 12 unterstützen. Fortnite (gelesen unser Fortnite-Spickzettel), Zum Beispiel. Über die Einstellungen des Spiels können Benutzer zwischen beiden Versionen wechseln. Zusammenfassend unterstützt nicht jedes Spiel sowohl DirectX 11 als auch DirectX 12. Wechseln Sie für diejenigen, die dies tun, zwischen den beiden und bestimmen Sie selbst, welche auf Ihrem PC besser funktioniert.

Ob Sie zwischen DirectX 11 und DirectX 12 wählen können, hängt auch von Ihrer Hardware ab. Nahezu jede moderne GPU unterstützt DirectX 12, aber das gilt nicht für ältere GPUs wie die Radeon HD 4870. Diese GPU wurde 2008 veröffentlicht und unterstützt nur bis zu DirectX 10. Dies bedeutet, dass die meisten modernen Spiele, die mit DirectX 11 und DirectX 12 ausgeführt werden, nicht ausgeführt werden können.

Ist DirectX 12 die richtige Wahl für Sie?

Alles in allem ist der Wechsel von DirectX 11 zu DirectX 12 nicht so schwarz und weiß, wie es sich anhört. Es hängt von einer Vielzahl von Faktoren ab, wie Hardware, Software, Betriebssystem und ob ein Spiel überhaupt beides unterstützt. All dies muss berücksichtigt werden, bevor eine Entscheidung getroffen wird, und dies wird wahrscheinlich auch für zukünftige Generationen von DirectX gelten.