© best_vector/Shutterstock.com
Windows Developer
Neuigkeiten von der Grafikschnittstelle DirectX 12

Performance hoch zwölf

Wer ein PC-Spiel entwickelt, setzt normalerweise auf DirectX. Die von Microsoft vor gut zwanzig Jahren auf den Markt gebrachte Programmierschnittstelle hat sich im Laufe der Zeit als Quasistandard etabliert. Das liegt nicht zuletzt daran, dass die integrierte Hardwareabstraktionsschicht sehr sauber durchimplementiert ist.

Tam Hanna


Entwickler sparen sich so das Hantieren mit den diversen Programmierschnittstellen – wer mit einer Vodoo-Grafikkarte aufgewachsen ist, erinnert sich mit Schrecken an das hauseigene Glide-API. Es bietet zwar eine verhältnismäßig hohe Performance, ist aber nur mit GPUs aus dem Hause 3dfx kompatibel. Wer damals Produkte von ATI und Nvidia mitunterstützen wollte, musste zwei Render-Pipelines erstellen.

Die durch DirectX entstandenen Performanceverluste wurden von der Entwicklerschaft bereitwillig akzeptiert. Damalige Prozessoren entwickelten sich so rasch weiter, dass der für die Verwaltung der HAL notwendige Aufwand mit jeder neuen Generation weniger bedeutsam wurde.

GPU frisst CPU

Physikalische Gesetze sorgen dafür, dass sich die Taktrate eines Prozessors nicht unendlich erhöhen lässt. Im Bereich der Single-Thread-Performance werden schon seit längerer Zeit keine echten Steigerungen mehr erreicht, die durch das Hinzufügen weiterer Kerne erreichbare Mehrleistung nähert sich der Grenze des sinnvoll Nutzbaren an.

Im Bereich der GPU sieht die Sache aber komplett anders aus. Grafikkarten werden von Generation zu Generation leistungsfähiger. In einem von AnandTech erstellten Diagramm ist das klar ersichtlich: die CPU-Performance wächst wesentlich langsamer als die der GPU (Abb. 1).

Abb. 1: Die Steigerung der Prozessorleistung kann mit der Entwicklung der Grafikchips nicht mithalten (Bildquelle: http://bit.ly/1pErKpP)

Die pro GPU FLOP zur Verfügung stehende CPU-Leistung wird immer weniger, wodurch sich die in der Anfangszeit als unproblematisch angesehenen Wrapper zu einem Flaschenhals entwickeln: Schon jetzt gibt es eine Vielzahl von Spielen, deren Framerate auf hochleistungsfähigen Grafikkarten durch die CPU begrenzt wird.

Konsole vs. PC

PCs stellen aus Entwicklersicht eine Art Zoo dar: Die zehn Jahre alte Workstation, das fünf Jahre alte Netbook und der brandneue High-End-PC sind – zumindest theoretisch – potenzielle Zielplattformen für Ihr Spiel. Ohne Hardwareabstraktionsschicht ist ein Vorankommen hier unmöglich: Die Erstellung und die Optimierung der Render-Pipelines würde Tausende von Mannstunden verschlingen.

Im Konsolenbereich sieht die Lage anders aus. Wer einen Titel für eine bestimmte Konsole entwickelt, bekommt es – Sonderfälle wie den Nintendo 64 mit erweitertem Speicher lassen wir hier außen vor – mit einer bestimmten Hardwarekonfiguration zu tun. Ein Hardware Abstraction Layer ist unnötig, die Render-Pipeline kann an die Bedürfnisse der Konsole angepasst ...

Windows Developer
Neuigkeiten von der Grafikschnittstelle DirectX 12

Performance hoch zwölf

Wer ein PC-Spiel entwickelt, setzt normalerweise auf DirectX. Die von Microsoft vor gut zwanzig Jahren auf den Markt gebrachte Programmierschnittstelle hat sich im Laufe der Zeit als Quasistandard etabliert. Das liegt nicht zuletzt daran, dass die integrierte Hardwareabstraktionsschicht sehr sauber durchimplementiert ist.

Tam Hanna


Entwickler sparen sich so das Hantieren mit den diversen Programmierschnittstellen – wer mit einer Vodoo-Grafikkarte aufgewachsen ist, erinnert sich mit Schrecken an das hauseigene Glide-API. Es bietet zwar eine verhältnismäßig hohe Performance, ist aber nur mit GPUs aus dem Hause 3dfx kompatibel. Wer damals Produkte von ATI und Nvidia mitunterstützen wollte, musste zwei Render-Pipelines erstellen.

Die durch DirectX entstandenen Performanceverluste wurden von der Entwicklerschaft bereitwillig akzeptiert. Damalige Prozessoren entwickelten sich so rasch weiter, dass der für die Verwaltung der HAL notwendige Aufwand mit jeder neuen Generation weniger bedeutsam wurde.

GPU frisst CPU

Physikalische Gesetze sorgen dafür, dass sich die Taktrate eines Prozessors nicht unendlich erhöhen lässt. Im Bereich der Single-Thread-Performance werden schon seit längerer Zeit keine echten Steigerungen mehr erreicht, die durch das Hinzufügen weiterer Kerne erreichbare Mehrleistung nähert sich der Grenze des sinnvoll Nutzbaren an.

Im Bereich der GPU sieht die Sache aber komplett anders aus. Grafikkarten werden von Generation zu Generation leistungsfähiger. In einem von AnandTech erstellten Diagramm ist das klar ersichtlich: die CPU-Performance wächst wesentlich langsamer als die der GPU (Abb. 1).

Abb. 1: Die Steigerung der Prozessorleistung kann mit der Entwicklung der Grafikchips nicht mithalten (Bildquelle: http://bit.ly/1pErKpP)

Die pro GPU FLOP zur Verfügung stehende CPU-Leistung wird immer weniger, wodurch sich die in der Anfangszeit als unproblematisch angesehenen Wrapper zu einem Flaschenhals entwickeln: Schon jetzt gibt es eine Vielzahl von Spielen, deren Framerate auf hochleistungsfähigen Grafikkarten durch die CPU begrenzt wird.

Konsole vs. PC

PCs stellen aus Entwicklersicht eine Art Zoo dar: Die zehn Jahre alte Workstation, das fünf Jahre alte Netbook und der brandneue High-End-PC sind – zumindest theoretisch – potenzielle Zielplattformen für Ihr Spiel. Ohne Hardwareabstraktionsschicht ist ein Vorankommen hier unmöglich: Die Erstellung und die Optimierung der Render-Pipelines würde Tausende von Mannstunden verschlingen.

Im Konsolenbereich sieht die Lage anders aus. Wer einen Titel für eine bestimmte Konsole entwickelt, bekommt es – Sonderfälle wie den Nintendo 64 mit erweitertem Speicher lassen wir hier außen vor – mit einer bestimmten Hardwarekonfiguration zu tun. Ein Hardware Abstraction Layer ist unnötig, die Render-Pipeline kann an die Bedürfnisse der Konsole angepasst ...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang