Neue Grafik-APIs und die Zukunft des PC-Spielens

Seien wir ehrlich: DirectX 11 und OpenGL werden etwas alt. DirectX 11 wurde bereits 2009 mit Windows 7 eingeführt, ein Jahr später folgte OpenGL 4.0. In Softwarejahren sind diese Technologien mittlerweile uralt, und die aktuelle Hardware, die sie ausführen, befand sich noch nicht einmal auf dem Reißbrett, als diese Grafik-APIs veröffentlicht wurden. Was unternimmt die Branche angesichts dieser offensichtlichen Trennung, um mit der Zeit zu gehen? Nun, in diesem Artikel werden wir einen Blick auf die nahe Zukunft werfen und sehen, aber zunächst erklären wir zunächst, was eine API ist und welche Funktion sie für Spiele bietet.

Was ist eine API?

Eine API oder Programmierschnittstelle ist eine Reihe von Protokollen und Tools, die zum Erstellen von Software verwendet werden. Grafik-APIs sind eigentlich nur eine spezielle API, die das Generieren von 3D-Grafiken erleichtert. Grafik-APIs erleichtern das Erstellen von 3D-Bildern, ermöglichen es Ihnen jedoch auch, die API anzuweisen, etwas zu tun (z. B. ein Rechteck zu zeichnen), und die API dann mit der Hardware kommunizieren zu lassen, wie diese Aufgabe ausgeführt werden soll. Dies ist der Hauptgrund, warum so viele verschiedene GPUs mit spezieller Hardware dieselben Spiele ausführen können. Ohne die Existenz einer API müsste dasselbe Spiel auf unterschiedliche Weise geschrieben werden, um mit jedem bestimmten Hardwaresatz zu kommunizieren. Dies würde die Hardwarehersteller stark einschränken und die Kosten für die Erstellung von Spielen erheblich erhöhen, die letztendlich an den Endverbraucher weitergegeben würden.

Um die obige Erklärung ein wenig verständlicher zu machen, verwende ich eine Analogie: Stellen Sie sich eine API als Baustellenmanager vor. Seine oder ihre Aufgabe ist es, die Idee des Architekten aufzugreifen und zu zerlegen, zu planen, welche Besatzungen wo und wann sein müssen, und sicherzustellen, dass alle auf der gleichen Seite sind, was zu tun ist.

APIAbbildung 1: Grafische Darstellung der Funktionsweise einer API

Derzeit verwendete Grafik-APIs

Nachdem wir den Job einer Grafik-API verstanden haben, schauen wir uns die aktuelle Aufstellung genauer an. Der Hauptakteur auf dem heutigen Markt ist Microsoft DirectX, das bereits 1995 eingeführt wurde. Es wurde seit seiner Veröffentlichung mehrmals aktualisiert und ist im Windows-Betriebssystem von Microsoft enthalten. DirectX ist die einzige Grafik-API, die so ziemlich jedes für den PC veröffentlichte Spiel unterstützt. Tatsächlich ist es so verbreitet, dass es heute wirklich der Standard für PC-Spiele ist. DirectX ist exklusiv für Windows- und Microsoft-Produkte, was es leider zu einem sehr geschlossenen System macht. Als nächstes folgt OpenGL, die einzige wichtige Open-Source-Grafik-API. OpenGL wurde 1992 veröffentlicht und ist plattformübergreifend, was bedeutet, dass es mit mehreren Betriebssystemen einschließlich Windows, Linux und Mac OS funktioniert. Schließlich haben wir die neueste Grafik-API, Mantle. Mantle wurde 2013 durch eine Partnerschaft zwischen AMD und Dice entwickelt. Mantle ist unter Windows und nur für AMD-GPUs verfügbar.

bf6bdc3a-a4fd-4026-a924-cb0852ae3d83Abbildung 2: Vergleich von DirectX 12 mit DirectX 11
Bildquelle;; Bildnachweis: Intel

DirectX 12

DirectX 12 soll im Herbst mit Windows 10 veröffentlicht werden, und viele neue Verbesserungen werden angepriesen. Eine der großen Verbesserungen ist die viel bessere Multithreading-Unterstützung. Ein Großteil der Arbeit verteilt sich auf mehrere Kerne auf der CPU, was eine viel bessere und effizientere CPU-Auslastung ermöglicht. In DirectX 11 ist häufig nur ein Kern der CPU vollständig ausgelastet, während andere Kerne in der Nähe des Leerlaufs sitzen. DirectX 12 verspricht, diese Arbeitslast gleichmäßiger auf die CPU-Kerne zu verteilen, damit die Spiele viel mehr CPU-Leistung erhalten. Die nächste große Verbesserung, die DirectX 12 verspricht, ist die Fähigkeit, viel mehr Draw Calls zu verarbeiten. Ein Draw Call wird immer dann ausgeführt, wenn die Spiel-Engine etwas auf dem Bildschirm zeichnen möchte. Das Erfordernis vieler Draw Calls ist im Allgemeinen für die CPU sehr anstrengend. DirectX 12 soll bis zu 600.000 Draw Calls verarbeiten können. Um dies ins rechte Licht zu rücken, konnte DirectX 9 nur 6.000 Draw Calls oder 1/100 von dem verarbeiten, was DirectX 12 kann.

Seit Jahren ist es möglich, mehrere GPUs im SLI / Crossfire-Modus zu betreiben. Eine der großen Einschränkungen war jedoch, dass der in die Karten eingebaute VRAM nicht zu einem großen, kontinuierlichen Pool zusammengestapelt wurde. Wenn Sie beispielsweise zwei GPUs mit jeweils 2 GB VRAM haben, hatten Sie effektiv immer noch nur 2 GB VRAM, da auf jeder Karte dieselben Informationen gespeichert sein mussten. DirectX 12 hofft, dieses Problem mithilfe von AFR oder alternativem Frame-Rendering lösen zu können. Anstatt dass jede GPU einen Teil jedes Frames rendert, rendern die GPUs jetzt jeweils einen ganzen Frame. Auf diese Weise kann der VRAM auf jeder Karte unabhängig verwendet werden, und hoffentlich können Karten mit geringeren VRAM-Mengen noch eine Weile für Spiele verwendet werden. DirectX 12 soll noch viele weitere neue Funktionen enthalten, mit denen Gaming-Grafiken weiter als je zuvor weiterentwickelt werden können. Microsoft ist jedoch immer noch ziemlich still darüber, was diese neuen Funktionen sind. Wir werden hoffentlich bald mehr darüber erfahren, sobald die Veröffentlichung der API näher rückt.

NVIDIA-DirectX-12-API-LeistungAbbildung 3: Der Overhead der DirectX 12-API wird reduziert, wenn Mehrkern-CPUs verwendet werden.
Bildquelle;; Bildnachweis: nVidia GeForce

Vulkan

Über Vulkan ist nicht so viel bekannt wie über DirectX 12, wie es gerade auf der GDC 2015 angekündigt wurde. Wir wissen, dass die Hersteller von OpenGL, Khronos Group, den Namen glNext zugunsten von Vulkan fallen gelassen haben. Vulkan scheint von Mantle abgeleitet zu sein, den ich zuvor in diesem Artikel erwähnt habe. Darüber hinaus sieht es so aus, als würde AMD in einer Partnerschaft mit der Khronos Group die besten Teile von Mantle für Vulkan auf den Tisch bringen. Vulkan soll viele der gleichen Vorteile wie DirectX 12 haben, ist jedoch nicht an eine einzige Plattform wie Windows gebunden. Es wird stattdessen auf vielen verschiedenen Plattformen verfügbar sein, einschließlich Linux und sogar mobilen Geräten. Die Vulkan-Treiber für Windows und Linux sind im Gegensatz zu DirectX vollständig Open Source. Vulkan wird das Multithreading verbessern und daher die heute verfügbare CPU-Leistung viel besser nutzen, indem die Arbeitslast auf mehrere CPU-Kerne verteilt wird. Wie bereits erwähnt, können durch die Reduzierung der CPU-Belastung GPUs nicht mehr so ​​einfach zu Engpässen führen wie jetzt. Dies sollte während des Spielens eine ziemlich erhebliche Erhöhung der Framerate bewirken. Source 2, das kürzlich von Valve angekündigt wurde, wird die erste neue Spiel-Engine sein, die Vulkan vollständig unterstützt, obwohl ich sicher bin, dass in naher Zukunft noch viele weitere angekündigt werden. Dota 2, ein Spiel, das für seine CPU-Intensität bekannt ist, wurde in Source 2 mit der neuen Vulkan-API unter Verwendung der integrierten Grafik von Intel auf der CPU ausgeführt. Dies wäre unter DirectX 11 sicherlich nicht wünschenswert gewesen, aber mit Vulkan schien das Spiel durchweg eine vernünftige Bildrate beizubehalten. Dan Baker, ein Entwickler für Oxide-Spiele, ging sogar so weit zu sagen: “Bis die GPU-Hersteller zusammenarbeiten und GPUs zehnmal schneller machen als jetzt, können wir die CPU nicht voll ausschöpfen.” Dies ist eine gute Nachricht für Leute, die langsamere CPUs verwenden oder derzeit über viel GPU-Leistung verfügen, da dies bedeutet, dass mit derselben Hardware eine viel bessere Leistung erzielt werden kann.

2015-vk-image-4Abbildung 4: Diagramm mit den Vorteilen von Vulkan (reduzierter Engpass bei der GPU).
Bildquelle;; Bildnachweis: Khronos

Was bedeutet das für die Zukunft des Spielens?

Nun, seit langer Zeit steigt die GPU-Leistung viel schneller als die CPU-Leistung. Vor fünf Jahren gab Intel sogar an, dass einige GPUs 14-mal schneller waren als ihre eigenen CPUs. Diese Tests wurden mit einer nVidia GTX 280 im Vergleich zu einer i7 960 Intel-CPU durchgeführt, die mittlerweile als relativ veraltete Hardware gilt. Die Lücke zwischen einer nVidia GTX Titan X (oder sogar einer nVidia GTX 980) und dem aktuellen Mainstream-CPU-Kraftpaket – der Intel i7-4790k-CPU – sollte viel größer sein. Der Punkt, den ich anstrebe, ist, dass immer mehr Spiele aufgrund der CPU an Leistung verlieren. Fragen Sie jeden mit einem Monitor mit hoher Bildwiederholfrequenz, wie schwierig es ist, in einigen Spielen 100 + fps mit aktuellen CPUs aufrechtzuerhalten. Ehrlich gesagt würde es ohne diese neuen APIs und ihre Fähigkeit, die CPU-Leistung effizienter zu nutzen, nur schwieriger werden. Die Einführung dieser neuen APIs könnte für die meisten Menschen eine enorme Leistungssteigerung bedeuten. Darüber hinaus könnten Entwickler damit viel CPU-intensivere Spiele erstellen als bisher. Stellen Sie sich zum Beispiel ein Spiel wie Assasins Creed vor, in dem Tausende von NPCs gleichzeitig auf dem Bildschirm angezeigt werden und alle miteinander und mit Ihrem Charakter interagieren, während Sie durch eine Stadt streifen. Oder Spiele wie Star Citizen, bei denen Sie eine sehr sehr starke CPU benötigen, um eine stabile und akzeptable Bildrate zu erzielen, benötigen in naher Zukunft möglicherweise bestenfalls eine durchschnittliche CPU und eine starke GPU, um solide 60 fps zu erhalten.

Letztendlich ist dies eine sehr aufregende Zeit, um ein Spieler zu sein. Wenn diese neuen Grafik-APIs veröffentlicht werden, sehen wir möglicherweise den größten Sprung in der Spieletechnologie seit langer Zeit. Hoffen wir nur, dass diese APIs dem Hype gerecht werden, den sie bereits für sich selbst aufgebaut haben.

Similar Posts

Leave a Reply

Your email address will not be published.