DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

16
Special Mark Mantel Als bevorzugte Quelle auf Google hinzufügen
DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

Im Nachgang der diesjährigen Hausmesse Build hat Microsoft eine Powerpoint-Präsentation zu DirectX 12 publiziert, in der die Neuerungen gegenüber der Vorgängerversion erläutert werden. Darüber hinaus ist nun die 3DMark-Demo öffentlich zugänglich, die auf der GDC 2014 zwar schon gezeigt wurde, aber nicht gefilmt werden durfte.

Im Winter 2015 sollen die ersten Spiele mit DirectX-12-Renderpfad auf den Markt gelangen, wobei die API die Mantle-Vorteile für sämtliche aktuellen Grafikkarten und –einheiten zugänglich machen soll. Wirklich viele Informationen zu DirectX 12 selbst veröffentlichte Microsoft bisher noch nicht, was sich jedoch kürzlich änderte. In einer 58-seitigen Powerpoint-Präsentation wird zum einen erklärt, wodurch sogenannte Draw-Calls künftig effizienter gestaltet werden und zum anderen, wie die Last künftig auf sämtliche CPU-Kerne verteilt werden soll.

Mit DirectX 11 wird ein zu berechnender Frame noch in diverse Shader, Buffers, Rasterizer sowie Blend States unterteilt, die für jeden neuen Frame zuerst kopiert, gelöscht und anschließend komplett neu berechnet werden müssen. Allerdings ist Microsoft zu der Erkenntnis gelangt, dass bei modernen Spielen etwa 90 bis 95 Prozent der Commands beim jeweils nachfolgenden Frame identisch bleiben. Das Resultat: Ein erheblicher Overhead, da der Großteil des Frames eigentlich nicht neu berechnet werden müsste.

Aus diesem Grund werden die zu berechnenden Objekte bei DirectX 12 künftig in sogenannte Pipeline State Objects zusammengefasst, deren Bestandteile einzeln verändert werden können. Die Pipeline State Objects werden im Videospeicher "gelagert" und innerhalb von Descriptor Heaps und diese wiederum in Descriptor Tables sortiert. Mittels Command Queues können Command Lists, welche den jeweils passenden Descriptor abrufen, gebündelt von der CPU an die GPU gesendet werden. Als stark vereinfachtes Beispiel kann so beispielsweise das Pipeline State Object für eine Ziegelsteinmauer gespeichert und immer bei einer entsprechenden Wand abgerufen werden.

Darüber hinaus ist nun die 3DMark-Demo, bei der DirectX 12 mit DirectX 11 verglichen wird, öffentlich zugänglich. Dabei wird die nahezu lineare Kernskalierung veranschaulicht, indem die zuvor genannten Command Queues auf die zur Verfügung stehenden CPU-Kerne aufgeteilt werden können und der bisherige Mainthread entfällt. Dieselbe Demo wurde bereits auf der GDC 2014 gezeigt, durfte dort jedoch nicht abgefilmt werden. Die komplette Microsoft-Präsentation finden Sie in der Bildergalerie.

Bildergalerie

16
    • Kommentare (16)

      Zur Diskussion im Forum
      • Von ruyven_macaran Trockeneisprofi (m/w)
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        Der Artikel beschäftigt sich nur mit zwei Dingen
        - Übertragung der bestehenden Vista DX-Runtime auf XP. Nicht möglich - kein Wunder, denn die Runtime ist tief im System verankert
        - Implementierung von DX unabhängig vom Betriebssystem. Ohne massive Kompatibilitätsprobleme nicht möglich - kein Wunder, denn DX wird normalerweise als Bestandteil des Betriebssystem verwaltet. Diverse Komponenten sind öffentlich afaik nicht einmal bekannt, geschweige denn dass man Spiele zuverlässig dazu bringen könnte, sie auf einem anderen Weg anzusprechen, als über das Betriebssystem. (Vergleiche EAX nach XP: Creative konnte es nicht in Vista implementieren, weil man eben keinen Zugriff auf Vista hatte. Alte Software konnte es unter Vista nicht ansprechen, weil Microsoft es nicht implementierte und sie kein unabhängig arbeitendes OpenAL kannte. Und Alchemy konnte zwar versuchen, dieses dem Spiel unterzuschummeln - aber wenn das Spiel direkt auf das DX des Systems Zugriff, war auch das unmöglich.)

        Hier geht es aber um die Möglichkeiten Microsofts (d.h. mit vollem Zugriff aufs Betriebssystem und sämtliche DX Komponenten) eine Implementation der DX10 API für XP (oder, um mal auf das Thema zurückzukommen, auch eine von DX12 für Win7. Oder für XP) umzusetzen. Und das wäre relativ einfach möglich, denn es ist dem Spiel und auch der ausführenden Hardware herzlich egal, ob die Berechnung im User- oder im Kernel-Mode erfolgt. Wichtig ist, dass das Betriebssystem die Befehle vom Spiel annimmt und an den Treiber ausgibt. Das würde auch mit DX10 Befehlen im XP-Verarbeitungsschema klappen, nur eben ohne die Performance-Vorteile der Arbeitsteilung von Vista.
        Aber solange die Befehlskette Software---DX--->Betriebssystem---WDM--->Treiber--->Hardware lautet, kann nur Microsoft so etwas umsetzen - alle anderen haben keinen Zugriff auf den zweiten Schritt. Und Microsoft interessiert sich deutlich weniger für alte Betriebssysteme, als uns das lieb wäre.
      • Von ruyven_macaran Trockeneisprofi (m/w)
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        Der Artikel beschäftigt sich nur mit zwei Dingen
        - Übertragung der bestehenden Vista DX-Runtime auf XP. Nicht möglich - kein Wunder, denn die Runtime ist tief im System verankert
        - Implementierung von DX unabhängig vom Betriebssystem. Ohne massive Kompatibilitätsprobleme nicht möglich - kein Wunder, denn DX wird normalerweise als Bestandteil des Betriebssystem verwaltet. Diverse Komponenten sind öffentlich afaik nicht einmal bekannt, geschweige denn dass man Spiele zuverlässig dazu bringen könnte, sie auf einem anderen Weg anzusprechen, als über das Betriebssystem. (Vergleiche EAX nach XP: Creative konnte es nicht in Vista implementieren, weil man eben keinen Zugriff auf Vista hatte. Alte Software konnte es unter Vista nicht ansprechen, weil Microsoft es nicht implementierte und sie kein unabhängig arbeitendes OpenAL kannte. Und Alchemy konnte zwar versuchen, dieses dem Spiel unterzuschummeln - aber wenn das Spiel direkt auf das DX des Systems Zugriff, war auch das unmöglich.)

        Hier geht es aber um die Möglichkeiten Microsofts (d.h. mit vollem Zugriff aufs Betriebssystem und sämtliche DX Komponenten) eine Implementation der DX10 API für XP (oder, um mal auf das Thema zurückzukommen, auch eine von DX12 für Win7. Oder für XP) umzusetzen. Und das wäre relativ einfach möglich, denn es ist dem Spiel und auch der ausführenden Hardware herzlich egal, ob die Berechnung im User- oder im Kernel-Mode erfolgt. Wichtig ist, dass das Betriebssystem die Befehle vom Spiel annimmt und an den Treiber ausgibt. Das würde auch mit DX10 Befehlen im XP-Verarbeitungsschema klappen, nur eben ohne die Performance-Vorteile der Arbeitsteilung von Vista.
        Aber solange die Befehlskette Software---DX--->Betriebssystem---WDM--->Treiber--->Hardware lautet, kann nur Microsoft so etwas umsetzen - alle anderen haben keinen Zugriff auf den zweiten Schritt. Und Microsoft interessiert sich deutlich weniger für alte Betriebssysteme, als uns das lieb wäre.
      • Von Locuza Lötkolbengott/-göttin
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        Sind wir bis Seite 2 gekommen?

        Zitat
        Adding Direct3D 10 commands to the Windows 2000/XP driver model
        Beyond3D - Will Direct3D 10 ever come to Windows XP?

        Ich frage nur zur Sicherheit nach, weil der Artikel beschäftigt sich mit dem Kernel, Treibermodel, DX10 und sogar fantasiereichen Optionen.
        Aber wer rein Martketing oder Politik schreien möchte, der soll es ruhig tun.
      • Von ruyven_macaran Trockeneisprofi (m/w)
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        *Hust*runtime*Hust*ungleich*Hust*API*Hust*


        Zitat von Rollora
        ist übrigens meiner Meinung nach ein Marketingproblem auch.
        Wie du schon sagst, DX11 als API hätte man schon unter XP realisieren können - ohne die zusätzliche Performance.
        Entwickler hätten somit eher auf DX10 und 11 aufspringen können und von Grund auf früher dafür optimieren können - das wäre auch für uns Spieler interessanter gewesen.
        "Früher" hätte das nicht geschehen können. Man musste ja erstmal die API designen und man brauchte erstmal Hardware und Treiber dazu. Letztere wären für ein weiteres Betriebssystem vermutlich sogar eher noch später gekommen. Aber: Man hätte eben die Verbreitung deutlich beschleunigen können.

        Zitat
        Aber das ist jetzt nur dahintheoretisiert, hoffen wir mal DX12 kommt auch noch für Win 7 und 8.1, auch wenn die Hoffnung dafür nicht groß ist.

        Für Win7 mache ich mir keinerlei Hoffnung. 8.1 wäre imho gut möglich. Microsoft verliert dadurch eher wenig, weil die User sich ja eh an 7 klammern. Umgekehrt wird die Einführung der API mit einer breiteren Basis deutlich beschleunigt. Da 9 nach aktuellem Stand der Dinge eher an der GUI denn der Technik schraubt, entsteht vermutlich auch keine Arbeit bei der Umsetzung.
      • Von Rollora Kokü-Junkie (m/w)
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        Zitat von ruyven_macaran
        DX11 ist eine API. Kein Treiber. Kein Kernel.
        Die Performancevorteile von DX11 in XP zu realisieren wäre inakzeptabel aufwendig gewesen. Aber eine XP-kompatible DirectX Version mit vollem DX11-Befehlssatz hätte einen durchaus vertretbaren Arbeitsaufwand nach sich gezogen. In Bezug auf DX11 zwar verschmerzbar - aber bei DX10 wars einfach nur störend. Zwar hätte es dort nicht so schnell laufen können, aber das wären mir guter Sound und Gameport-Unterstützung ehrlich gesagt wert.
        ist übrigens meiner Meinung nach ein Marketingproblem auch.
        Wie du schon sagst, DX11 als API hätte man schon unter XP realisieren können - ohne die zusätzliche Performance.
        Entwickler hätten somit eher auf DX10 und 11 aufspringen können und von Grund auf früher dafür optimieren können - das wäre auch für uns Spieler interessanter gewesen.
        ANFANGS hätte es damit keinen Anreiz gehabt auf Vista zu wechseln, weil DX11 usw auch unter XP möglich ist (abgesehen von anderen Technologien wie problemloseres 64 Bit (also mehr als 4 GB Ram nutzen als Effekt daraus), besserer SSD Support usw usf. Früher oder später wäre der Performanceunterschied aber immer größer ausgefallen. Und wenn ich das Spiel 30-50% schneller haben kann nur durch OS wechseln... ja dann mach ich das halt mal.
        Es hätten sich anfangs nicht so viele gezwungen gefühlt auf das (auf älteren Systemen) träge Vista umzusatteln. Erst später, wenn man die ganze Hardware erneuert, Treiberprobleme im OS ausgestanden sind usw.
        Hätte Vista insgesmant vielleicht einen besseren Ruf beschert.

        Aber das ist jetzt nur dahintheoretisiert, hoffen wir mal DX12 kommt auch noch für Win 7 und 8.1, auch wenn die Hoffnung dafür nicht groß ist.
      • Von Locuza Lötkolbengott/-göttin
        AW: DirectX 12 auf theoretischer Ebene: Microsoft erklärt die Besonderheiten der neuen API

        Beyond3D - Will Direct3D 10 ever come to Windows XP?

        Hust*
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 07/2026 play5 07/2026 N-Zone 07/2026 Linux Magazin 07/2026 LinuxUser 07/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk