Was bringt DirectX 12 für den MSFS?

8. November 2021

Am 18.11., also in wenigen Tagen, soll mit der Veröffentlichung der “Microsoft Flight Simulator Game of the Year Edition”, kurz GOTY genannt, auch DirectX 12 für den MSFS verfügbar sein. Für alle bisherigen Besitzer wird GOTY als kostenloses Update kommen. Mit DX12 sind zahlreiche Fragen verbunden, die hier – vereinfacht und kompakt – beantwortet werden sollen.

Was ist DirectX und wofür wird es benötigt?

DirectX ist eine Sammlung von Programmierschnittstellen, API’s genannt (Application Programming Interfaces). Über diese Schnittstellen wird zwischen der jeweiligen Anwendung und der Hardware kommuniziert, also z.B. zwischen einem Spiel und der Grafikkarte eines Rechners. Der Vorteil: Entwickler müssen sich nur an die Spezifikationen von DirectX halten, ohne ihr Spiel an mehrere unterschiedliche Hardwarekomponenten anpassen zu müssen. Die DirectX-Sammlung deckt nahezu den gesamten Multimediabereich ab. Vorrangig wird es bei der Darstellung komplexer 2D- und 3D-Grafik eingesetzt, bietet aber auch Unterstützung für Audio, diverse Eingabegeräte, zum Beispiel Maus und Joystick und die Netzwerkkommunikation.

Worin besteht der Unterschied zwischen DirectX 11 und 12?

DX11 kann für seine Aufgaben eine Unmenge an Rechenleistung verbrauchen. Wäre an sich für einen modernen PC eigentlich kein Problem, weil er mit einem Multi-Core Prozessor ausgestattet ist, also einem Prozessor, der aus mehreren Prozessor-Kernen besteht. Diese teilen sich die Rechenaufgaben und können sie so schneller erledigen. Das Problem bei DX11: Es ist praktisch nicht in der Lage, parallel zu arbeiten, also all diese Prozessor-Kerne gleichzeitig anzusprechen, sondern lediglich einen mit einer der Rechenaufgaben zu betrauen. Ein unnötiger Flaschenhals, der bremst und dazu führt, dass schlussendlich z.B. Grafikkarten nicht ihr volles Potential entfalten können.

Unter DirectX 12 ist dies ein wenig anders. DX12 ist eine sogenannte “Low-Level-API”, also gewissermaßen eine niederschwellige Programmierschnittstelle, die mehr Flexibilität, etwa das Aufteilen der Aufgaben auf unterschiedliche Prozessorkerne, ermöglicht. Die feinkörnigere Steuerung der zugrunde liegenden Hardware mithilfe von Befehlswarteschlangen, Befehlslisten etc. führt zu einer deutlich besseren Ressourcennutzung. Allerdings sind die Entwickler hier stärker gefordert, diese Leistungsoptimierungen durch höheren Programmieraufwand auch wirklich zu erzielen. Geschieht dies nicht oder schlecht, kann dies mitunter bedeuten, dass ein Spiel unter DX12 gleiche oder gar schlechtere FPS-Raten (FPS=Frames per Second = Bilder pro Sekunde) aufweist, als unter DX11. Es kommt also darauf an, wieviel Arbeit in diesen Optimierungsprozess fließt und inwiefern die Programmierer in der Lage sind, das Optimum herauszuholen. Eine “automatische” Verbesserung durch alleinige Umstellung von DX11 auf DX12 ist also nicht möglich…

Woher weiß ich, ob auf meinem PC DirectX 12 installiert ist?

In Windows 10 bzw. 11 ist DX12 standardmäßig enthalten und wird auch automatisch geupdatet. Wer sich davon überzeugen möchte, kann dies ganz einfach tun:

  • Auf der Taskleiste zum Suchfeld (Lupe) gehen, im Textfeld dxdiag eingeben und Enter drücken

Daraufhin erscheint dieses Fenster, in dem die Version (hier rot umrandet) angezeigt wird.

MSFS Besitzer müssen sich hier keine Gedanken machen. Nachdem der Microsoft Flight Simulator sowieso nur unter Windows 10 bzw. 11 läuft, sind bei DX12 keinerlei händischen Updates erforderlich.

Wie wird DirectX 12 für den Microsoft Flight Simulator verfügbar sein?

Zunächst als Opt-In Funktion. Das heißt, der MSFS wird ganz normal gestartet und DX12 kann erst über das Optionsfenster – vermutlich (?) über Allgemeine Optionen > Grafik > DirextX 12 EIN oder ähnlich – aktiviert werden. Sollte es zu Programmabstürzen oder anderen Fehlfunktionen kommen oder man nicht damit zufrieden sein, wird man wahrscheinlich durch einfaches Deaktivieren (AUS) wieder zu DX11 zurückkehren können. Vermutlich wird sowohl beim Opt-In als auch beim Opt-Out ein Neustart erforderlich sein.

Was ist von DirectX 12 für den MSFS zu erwarten?

Ehrlich gesagt: Zunächst nicht viel. Sebastian Wloch, Chef von Asobo, der MSFS-Entwicklerschmiede, hat die hohe Erwartungshaltung mancher im letzten Developer Event schon einmal gedämpft, indem er gemeint hat:

“Sofern keine Optimierung der Treiber oder der Grafikkarte vorgenommen wurde, sollte die Leistung gleich bleiben. Wir haben nichts Besonderes gemacht. Derzeit ist es die DX12-Version der gleichen Simulation. Das Ziel ist es, Probleme zu finden.”

Das heißt, die Entwickler konzentrieren sich zunächst einmal darauf, ob der Simulator unter DX12 störungsfrei arbeitet, bevor sie an der Simulation entsprechend Hand anlegen, um sie für DX12 zu optimieren und zu erweitern.

Und Seb hat schon einmal eingeräumt: “Da wir nicht alle Konfigurationen testen können, wird es Probleme geben…”

Langfristig ist aber vermutlich daran gedacht, mithilfe von DX12 dafür zu sorgen, dass die im Rechner verbauten CPU-Kerne besser ausgenützt werden und dadurch z. B. bessere Frame-Raten und eine noch flüssigere Darstellung in VR erzielt werden. Ein Teilbereich, der in dem Zusammenhang immer wieder genannt wird, ist DirectStorage. Das ist eine API der DirectX 12 Familie, deren Hauptaufgabe darin besteht, Daten viel schneller zu lesen und an den Grafikprozessor zu liefern. Aber auch da gilt: Das funktioniert nur, wenn die Programmierer diese Funktion entsprechend implementieren. Die Hardwarevorraussetzungen für DirectStorage sind relativ hoch: Der PC muss mit PCIe 3.0- oder höher und NVMe-Bus ausgestattet sein und über eine NVMe-SSD verfügen, die mindestens 1 TB groß ist. Und die Grafikkarte muss DirectX 12 Ultimate unterstützen. Also mindestens eine Radeon ab der RX6000er oder eine Nvidia ab der RTX2000er Serie…

Durchaus wahrscheinlich ist es, dass der MSFS irgendwann einmal Raytracing, also die Strahlenverfolgung, “können” wird und damit noch realistischere Lichteffekte im Simulator möglich werden. So würde aber auch der störende Effekt mit verschwindenden Reflexionen auf dem Wasser bei Veränderung des Blickwinkels ein Ende haben, weil der Algorithmus, der der Lichtberechnung zugrunde liegt, solche Fehler ausschließt. Raytracing funktioniert übrigens bereits mit einer GeForce ab der GTX 1060 (6GB). Bei AMD allerdings erst ab Radeon-RX6000er…

Es bleibt jedenfalls spannend, wie rund DX12 im MSFS laufen wird und was die Entwickler der Grafik-API in Zukunft zu entlocken in der Lage sein werden.

Auch interessant: