DirectX 11 - Schnittstelle für Grafikkarten in Windows 7 und Vista

Neue Technologien

DirectX 11 - Schnittstelle für Grafikkarten in Windows 7 und Vista

Carsten Spille
|
18.02.2009 11:15 Uhr
|
Neu
|
Die wichtigsten Informationen zu DirectX 11, der Multimedia-API für Windows 7 und Windows Vista, fasst PC Games Hardware Online übersichtlich für Sie zusammen. Bereits auf der hauseigenen Gamefest-Konferenz präsentierte Microsoft 2008 erstmals Pläne für die kommende Multimedia-Schnittstelle und Spiele-API DirectX 11.

DirectX 11 - die kommende Grafikschnittstelle für Windows 7 und VistaDirectX 11 - die kommende Grafikschnittstelle für Windows 7 und Vista [Quelle: http://www.pcgameshardware.de]Gamefest und DirectX 11
Wie jedes Jahr lud Microsoft die Spieleentwickler nach Seattle ein, um dort über die neuesten Entwicklungen bei Windows- und Xbox-360-Spielen zu informieren. Während der zweitägigen Veranstaltung kamen neben den Bereichen Grafik und Sound auch allgemeine Systemfragen zur Sprache. Wir fassen zusammen, was Sie aktuell über DirectX 11 wissen müssen.

Passend zum Thema DirectX 11 empfehlen wir außerdem noch die Lektüre folgender Artikel:
Direct X 11 offenbar doch mit Windows 7 - Microsoft revidiert seine Aussage
Direct X 11 in exklusiven Screenshots - das kann die neue API
Nvision 2008: Direct X 11 Preview im November, erster DX11-Demo-Screenshot

Grafik - DirectX 11
Eines der Highlights der Veranstaltung war die offizielle Ankündigung der neuen Direct3D-Version durch Allison Klein, Senior Lead Program Manager bei Microsoft. Diese wird nach dem Zwischenschritt 10.1 wieder eine Hauptversion und entsprechend die 11 als Versionsnummer tragen. Nachdem bei Direct3D 10 vollständig mit der Abwärtskompatibilität gebrochen wurde, ergab sich die berechtigte Frage, wie Microsoft dieses sensible Thema nun behandeln würde.

Da Direct3D 11 das für Vista entwickelte Treibermodel nutzen wird, ist auch weiterhin nicht mit einer Version für Windows XP zu rechnen. Auf die nächste Windows-Version wird man dagegen aber auch nicht warten müssen. Ebenso wird Direct3D 11 auch mit allen GPUs funktionieren, die einen entsprechenden Treiber besitzen. Dies schließt alle bisher erschienenen Direct3D-10- und -10.1-GPUs mit ein. Microsoft geht sogar noch einen Schritt weiter und fügt einen speziellen Modus für ausgewählte Direct3D-9-Hardware hinzu. Dabei dürfte es sich um die gleichen Chips handeln, die auch für den Direct3D-Desktop Aero unterstützt werden. Mit dieser breiten Hardware-Kompatibilität scheint Microsoft erneut zu dem bis Direct3D 9 gültigen Modell einer Direct3D-Version für alle zurückkehren zu wollen. Allerdings wird die fehlende Windows-XP-Unterstützung Direct3D 9 noch einige Zeit am Leben halten.

In einem anderen Punkt kehrt man jedoch nicht zu Direct3D 9 zurück. Ebenso wie Direct3D 10 erlaubt man bei der neuen Version den GPU-Entwicklern nicht, sich einzelne Features herauszupicken. Um eine Freigabe für das als Techlevel 11 bezeichnete Gesamtpaket zu bekommen, müssen alle neuen Features unterstützt werden. Neben einer Reihe kleinerer Verbesserungen besteht dieses aus fünf neuen Hauptfeatures:

• Compute-Shader
• Tesselation
• Multithreading
• Dynamic-Shader-Linking
• Zusätzliche Texturkompression


Welche Windows-Versionen und welche DirectX-Tech-Level untereinander kompatibel sind, erfahren Sie in unseren folgenden Tabellen:

Kompatibilität IWindows XPWindows VistaWindows 7
Direct3D 9JaJaJa
Direct3D 10NeinJaJa
DirectX-TechlevelDirect3D 9Direct3D 10Direct3D 10.1Direct3D 11
Techlevel 9.xVollständigNeinNeinEingeschränkt *
Techlevel 10.0Beschränkt auf Level 9VollständigVollständigVollständig
Techlevel 10.1Beschränkt auf Level 9Beschränkt auf Level 10VollständigVollständig
Techlevel 11Beschränkt auf Level 9Beschränkt auf Level 10Beschränkt auf Level 10.1Vollständig

[* Keine Funktionalität, die ab 10.0 entfernt wurde]


DirectX 11 Compute Shader für Post-Processing-Effekte.DirectX 11 Compute Shader für Post-Processing-Effekte. [Quelle: Microsoft]DirectX 11 - Compute-Shader
Mit dem Compute-Shadern (ohne r) beginnt für Direct3D 11 das GPGPU-Zeitalter (General Processing GPU). Wurden bisher herstellereigene APIs wie Cuda dafür genutzt, wird nun eine neutrale API für GPGPU-Anwendungen zur Verfügung stehen. Obwohl die Compute-Shader nicht Teil der 3D-Pipeline selbst sind, können sie auf die gleichen Daten zugreifen. Dadurch wird der Austausch von Rechenergebnissen wesentlich vereinfacht. So lassen sich Compute-Shader ebenso für die Effektphysik wie auch für das Post-Processing einsetzen.

Von Microsoft vorgenommene Untersuchungen zeigen, dass dabei Performance-Steigerungen um mehr als das Doppelte möglich sind. Die dadurch frei werdende Rechenleistung kann dann anderweitig genutzt werden. Möglich wird dies unter anderem dadurch, dass alle Threads eines Compute-Shaders auf einen gemeinsamen 32-kiByte-Speicherblock innerhalb des Chips zugreifen können.

DirectX 11 - TesselatorDirectX 11 - Tesselator [Quelle: Microsoft]DirectX 11 - Tesselation
Nachdem die Tesselation bei Direct3D 10 während der Planungsphase wieder entfernt wurde, kehrt sie nun bei Direct 3D 11 zurück. Bisherige Versuche, dieses Feature in Direct 3D zu etablieren, scheiterten an der zögerlichen Unterstützung in den GPUs. Während Nvidia bei der Geforce 3 auf RT-Patches setzte, wählte Ati bei der Radeon 8500 mit N-Patches (Tru-Form) einen anderen Weg. In beiden Fällen verschwand die Hardware-Unterstüzung in der nächsten Generation wieder. In Direct 3D 11 setzt Microsoft nun auf einen Tesselator, der von zwei neuen Shader-Stufen unterstützt wird. Der vorgelagerte Hullshader berechnet dabei den Detailgrad der Tesselation pro Patch. Dazu nutzt er die vom Vertexshader berechneten Kontrollpunkte. Der Domainshader erzeugt dann aus dem Tesselationsergebnis wiederum Vertices, die vom Rest der Pipeline wie bisher auch verarbeitet werden.

DirectX 11 - Multi-Threading
DirectX 11 Multithreading  - Der Ist-ZustandDirectX 11 Multithreading - Der Ist-Zustand [Quelle: Microsoft]DirectX 11 Multithreading - durch Physik und AI wird die GPU durch die CPU gebremstDirectX 11 Multithreading - durch Physik und AI wird die GPU durch die CPU gebremst [Quelle: Microsoft]Obwohl Direct 3D bereits seit der Version 9 eine Multithread-Unterstützung anbietet, lag das Augenmerk hierbei nie auf der Performance. Microsoft wollte damit lediglich verhindern, dass es durch den gleichzeitigen Zugriff von zwei Threads zu Instabilitäten kommt. Nachdem nun aber endgültig keine größeren Performance-Sprünge bei einzelnen CPU-Kernen mehr zu erwarten sind, überdachte man das Multithread-Konzept. Direct3D 11 legt nun Wert darauf, dass eine höhere Gesamtleistung erzielt werden kann. Die erste Maßnahme dafür ist ein neuer Ressource-Manager. Damit lassen sich nun Texturen und Geo­metriedaten gleichzeitig von mehreren Threads aus bearbeiten. Dies erleichtert vor allem das effiziente Hintergrund­laden (Streaming), wie es bei den immer größer werdenden Spielwelten erforderlich ist.

DirectX 11 Multithreading - durch Treiberupdates auch für DX10/10.1 nutzbarDirectX 11 Multithreading - durch Treiberupdates auch für DX10/10.1 nutzbar [Quelle: Microsoft]Des Weiteren können nun auch die Kommandos, die zur Grafikkarte geschickt werden sollen, von mehreren Threads aus in entsprechende Buffer geschrieben und später in der richtigen Reihenfolge zur GPU gesendet werden. Bei einem einfachen Beispiel für eine Dualcore-CPU generiert ein Kern die Kommandos für die Shadowmap, während der zweite gleichzeitig den Rest übernimmt. Anschließend werden die beiden Puffer zur GPU zum Abarbeiten übergeben. Stehen mehr Cores zur Verfügung, lässt sich die Arbeit noch weiter unterteilen.


DirectX 11 - Dynamic Shader-Linking
Mit den zunehmenden Möglichkeiten der Shader stieg auch der Wunsch nach mehr Abwechslung. Entsprechend entstanden immer mehr Varianten eines Shaders, die verwaltet werden müssen. Um die Anzahl dieser sogenannten Permutationen wieder auf ein Überschaubares zu reduzieren, entstand die Idee der Übershader, die alle möglichen Varianten in sich vereinen. Zur Laufzeit sollte dann die jeweils richtige durch einige Parameter selektiert werden.

Leider zeigte der Übershader eine schlechte Performance und so greift man doch wieder auf die Lösung mit den vielen Varianten zurück. Direct3D 11 möchte mit dem Dynamic-Shader-Linking nun eine neue Lösung des Problems anbieten. Die so entstandenen Shader enthalten alle möglichen Varianten in optimierter und komprimierter Form. Zur Laufzeit wird dann anhand der Parameter die richtige Variante ausgewählt. Für die Applikation selbst gleicht diese Lösung dem Übershader-Modell, die GPU bekommt aber die performantere Permutationsvariante präsentiert.


DirectX 11 - HDR-Texturkompression
Nach der Einführung der DXT-Texturkompression schien es fast, als wäre dieses Thema für Microsoft abgeschlossen. Mit Direct3D 10 erfolgte eine Umbenennung dieser in BC (Block Compression) und die Erweiterung um zwei zusätzliche Varianten der bekannten Technik. Eine wirkliche Neuerung war dies jedoch nicht. Direct3D 11 definiert mit BC6 und BC7 nun aber wirklich etwas Neues. BC6 dient dabei der Kompression von Formaten mit 16 Bit pro Farbkanal und erreicht eine Reduktion auf ein Sechstel der ursprünglichen Datenmenge.

BC7 zielt auf die gleichen Texturen wie bisherige Kompressionsverfahren, strebt aber eine höhere Qualität an. Dabei werden Kompressionsraten von 3:1 für Texturen ohne Alpha und 4:1 mit Alpha erreicht. Beide Verfahren nutzen ein adaptives Verfahren, das für jeden 16-Pixel-Block abhängig von der Farbvarianz unterschiedlich komprimieren kann. Um mögliche Abweichungen beim Ergebnis zu vermeiden, definiert Direct 3D 11 nun auch bitgenau, wie das Resultat der Dekompres­sion aussehen muss.

Texturkompression: links Original, mittig absoluter Fehler, rechts komprimierte Version
Texturkompression: links Original, mittig absoluter Fehler, rechts komprimierte Version

Dieses neue Verfahren wird aber genau wie wohl der Compute-Shader und die Tesselation den neuen Direct3D-11-GPUs vorbehalten bleiben. Multithreading und Dynamic-Shader-Linking wird jedoch auch für ältere Grafikhardware möglich sein. Dabei kann die neue Multithreading-Unterstützung durch einen neuen Treiber aktiv beschleunigt werden.

 
PCGH-Community-Veteran(in)
25.02.2009 14:43 Uhr
Zitat: (Original von Sash;587803)
es gab mal ein projekt von irgendwelchen leuten die haben auch dran geglaubt, und haben ein tool entwickelt womit es möglich war dx10 unter xp zu aktivieren.

Das sogenannte Alky-Project war ein OpenGL-Wrapper. Da wurde kein D3D10 aktiviert.
PCGH-Community-Veteran(in)
25.02.2009 14:41 Uhr
Zitat: (Original von Brzeczek;587784)
@ruyven_macaran
Es wäre mega aufwendig aber es geht

So aufwändig, dass man am Ende aus XP ein Vista gemacht hätte. Ist das also in irgendeiner Form interessant?
PCGH-Community-Veteran(in)
25.02.2009 09:43 Uhr
Zitat: (Original von Tom3004;598106)
Aber bei einer PS 3 z.B hast du kein Problem mit GTA 4 wie auf dem PC. Das ist der große Vorteil...


du wirst aber nicht ewig nur gta4 spielen.
Dazu wird die Spielindustrie durch fallende verkaufszahlen merken, dass sie mit DRM nichts erreichen. Genau wie bei der Musikindustrie.

PS3 wird die letzte oder vielleicht vorletzte Konsole sein, die es geben wird.
Software-Overclocker(in)
24.02.2009 19:01 Uhr
Naja wenn die weiterhin so viel Geld machen im Konsolen Markt, sehe ich Schwarz.
BIOS-Overclocker(in)
24.02.2009 18:53 Uhr
Zitat: (Original von BigBubby;581950)
auf dauer wird die Konsole wieder verlieren.
Ist so, war immer so und wird immer so bleiben.

Aber bei einer PS 3 z.B hast du kein Problem mit GTA 4 wie auf dem PC. Das ist der große Vorteil...

Verwandte Artikel

1252°
 - 
Spiele-PC selbst zusammenstellen: Eine ausbalancierte Zusammenstellung für einen Spiele-PC beinhaltet viele Stolpersteine und längst nicht jeder blickt bei Grafikkarten, Prozessoren und Co. durch - daher bietet Ihnen PC Games Hardware mit der Kaufberatung für Selbstbau-Spiele-PCs eine Auflistung aller relevanten Komponenten in verschiedenen Preisklassen, die gut miteinander harmonieren. mehr... [168 Kommentare]
983°
 - 
Im Forum von notebookreview.com ist ein angeblicher Screenshot eines Fire-Strike-Extreme-Benchmarks aufgetaucht, welcher mit einer Geforce GTX 880 entstanden sein soll. 6.578 Punkte wurden dort im GPU-score erreicht, was einem Plus von knapp 30 Prozent gegenüber der GTX 780 Ti (ca. 5.100 Punkte) entspräche. Das Mitglied deutet zugleich eine Vorstellung auf der Gamescom an. mehr... [162 Kommentare]
902°
 - 
In einer Pressemitteilung hat Asus die baldige Verfügbarkeit der Geforce GTX 750 Ti Strix ankündigt, welche noch Ende dieses Monats die virtuelle Ladentheke wechseln soll. Wie auch bei den anderen Strix-Grafikkarten werden ab dem Unterschreiten einer bestimmten Temperatur die Lüfter ausgeschaltet, bei der GTX 750 Ti ist die Funktionsweise allerdings noch nicht ganz geklärt. mehr... [1 Kommentar]