> > > > Neue DX12-Funktionen: Mesh Shader und Raytracing Tier 1.1

Neue DX12-Funktionen: Mesh Shader und Raytracing Tier 1.1

Veröffentlicht am: von

microsoft 2Mit dem nächsten großen Update für Windows 10, oftmals als 20H1 bezeichnet, wird Microsoft auch neue Funktionen für DirectX 12 einführen. In einer der nächsten Versionen der Windows 10 Insider Preview Builds werden diese bereits enthalten sein.

Neu sind die DirectX Mesh Shader, DirectX Raytracing Tier 1.1 und ein DirectX Sampler Feedback, welches ein Texture-Space Shading sowie Texture Streaming unterstützen wird.

Im Frühjahr 2018 kündigte Microsoft die DXR-Schnittstelle an, die erstmals auf Raytracing-Effekte ausgelegt war. Kurze Zeit später kündigte NVIDIA die entsprechende Unterstützung an – im Sommer dann hardwarebeschleunigt durch die RT Cores der Turing-Architektur. Bisher ist man der einzige Anbieter, der die DXR-Schnittstelle anspricht, obwohl dies auch durch einfache Shader allen GPUs und Herstellern möglich wäre. Die Hardwarebeschleunigung über die RT Cores versetzt NVIDIA aber in die Gelegenheit, zumindest Teile eines Frames bzw. bestimmte Effekte mittels Raytracing zu berechnen. Im kommenden Jahr sollen die Konsolen Raytracing unterstützen und auch AMD hat eine entsprechende Unterstützung angekündigt.

Das Update für DirectX 12 bringt nun DirectX Raytracing Tier 1.1 bzw. DXR Tier 1.1. Die Neuerungen sind die folgenden:

  • Support for adding extra shaders to an existing Raytracing PSO, which greatly increases efficiency of dynamic PSO additions.
  • Support ExecuteIndirect for Raytracing, which enables adaptive algorithms where the number of rays is decided on the GPU execution timeline.
  • Introduce Inline Raytracing, which provides more direct control of the ray traversal algorithm and shader scheduling, a less complex alternative when the full shader-based raytracing system is overkill, and more flexibility since RayQuery can be called from every shader stage. It also opens new DXR use cases, especially in compute: culling, physics, occlusion queries, and so on.

Das was aber sicherlich bei allen Hardwareentwicklern auf der Liste steht, ist eine höhere Raytracing-Leistung, so dass mehr Effekte per Raytracing berechnet werden können und der Leistungsverlust nicht mehr so groß ist.

DirectX Mesh Shader

In DirectX 12 integriert werden die Mesh Shader. 3D-Szenen mit vielen Objekten werden häufig durch die Geometrieberechnungen limitiert, was wiederum teilweise auf dem Prozessor stattfindet und dann hier der Flaschenhals zu suchen ist. Die Mesh Shader sollen eine gewisse Flexibilität in die Geometrie Pipeline bringen.

Per Level of Detail (LOD) wird in Abhängigkeit zur Distanz eine bestimmte Detailstufe zur Darstellung von Objekten gewählt. Die meisten Game-Engines setzen das LOD als festen Wert an, der Nutzer kann diesen zwar manchmal ändern, es handelt sich aber um keine dynamische Anpassung in Abhängigkeit zur jeweiligen 3D-Szene und deren Komplexität.

Für eine Szene mit 200.000 Objekten stehen für flüssige 60 FPS nur 2 ms für die Geometrieberechnungen zur Verfügung. Dies bedeutet wiederum pro Objekt eine Rechenzeit von 10 ns und darin inbegriffen sind auch die Festlegung und Berechnung eines bestimmten LOD und das Verschicken des Draw Calls. 20.000 bis 30.000 Objekte sind derzeit in 3D-Engines umsetzbar, mehr nicht. Mit einem adaptiven LOD bzw. dem Mesh Shading sind nun eben etwa 200.000 Objekte möglich.

Die Mesh Shader sollen in Abhängigkeit zur Auslastung der Render-Pipeline den Grad des LOD bestimmen. Anstatt die festgelegte Berechnung für das LOD sowie das Object Culling (Auswählen und Weglassen der (nicht)sichtbaren Objekte) vom Prozessor ausführen zu lassen, muss der Prozessor für die Mesh Shader nur die Draw Calls ausführen. Die Vertex und Hull Shader werden zu einem Task Shader zusammengefasst, der das Level des LOD und das Object Culling übernimmt. In den Mesh-Shadern werden dann wiederum die Domain und Geometry Shader zusammengefasst.

NVIDIA hat die Mesh Shader bereits als Funktion der Turing-Architektur umgesetzt.

Texture Streaming

Immer detailreichere Texturen, immer größere Welten – dies alles sorgt vor allem für immer längere Ladezeiten. Um diese zu verkürzen soll das Texture Streaming Daten dann in den Speicher der Grafikkarte laden, wenn diese auch wirklich gebraucht werden. Über eine Feedback Map wird dem Sampler eine entsprechende Rückmeldung gegeben.

  • Render scene and record desired texture tiles using Sampler Feedback.
  • If texture tiles at desired MIP levels are not yet resident:
  • Render current frame using lower MIP level.
  • Submit disk IO request to load desired texture tiles.
  • (Asynchronously) Map desired texture tiles to reserved resources when loaded.

Per Sampler Feedback kann auch ein Texture-Space Shading durchgeführt werden. Dabei müssen verschiedene Shader-Berechnungen nicht immer wieder neu ausgeführt werden, sondern die Ergebnisse können auch mehrfach wiederverwendet werden, was die Leistung der Hardware teilweise deutlich steigern kann.

  • Draw geometry with simple shaders that record Sampler Feedback to determine which parts of a texture are needed.
  • Submit compute work to populate the necessary textures.
  • Draw geometry again, this time with real shaders that apply the generated texture data.

Spielentwickler können ab sofort mit der Umsetzung der neuen Funktionen beginnen. DXR Tier 1.1 und die weiteren Funktionen sind in den Windows 10 Insider Preview Builds und SDK Preview Builds für Windows 10 (20H1) enthalten.

Social Links

Diesen Artikel bewerten:

Ø Bewertungen: 3.5

Tags

Kommentare (7)

Diskutiert das Thema in unserem Forum:
Neue DX12-Funktionen: Mesh Shader und Raytracing Tier 1.1

Das könnte Sie auch interessieren:

  • Windows 10: Aktuelle Build 1903 mit Problemen

    Logo von IMAGES/STORIES/2017/MICROSOFT_2

    Wie Microsoft gestern bekannt gab, verursacht das vor kurzem verfügbare Windows-10-Build-1903-Update in einigen Bereichen – leider erwartungsgemäß – Probleme. Mit der geänderten Update-Politik der Redmonder ist dies zum Glück kein allzu großes Thema, denn der neue... [mehr]

  • Diverse Linux-Distributionen lassen sich mit Ryzen-3000-CPUs nicht booten...

    Logo von IMAGES/STORIES/2017/RYZEN3000-BOX

    Wie jetzt bekannt wurde, scheint der Zufallszahlengenerator der neuen Ryzen-Prozessoren Schwierigkeiten mit den diversen Linux-Distributionen zu haben. Besagte Probleme sorgen dafür, dass die dritte Generation unter Linux nicht booten will. Somit ist eine Ryzen-CPU der dritten Generation aktuell... [mehr]

  • Windows 10: Update sorgt für Super-GAU bei Spielern

    Logo von IMAGES/STORIES/2017/WINDOWS_10_LOGO

    Das kumulative Windows-10-Update KB4482887 scheint bei Spielen die Leistung zu verringern und soll zudem die Bewegung des Mauszeigers verzögern. Ein Supergau für jeden Spieler. Der internationale Software- und Hardwarehersteller Microsoft wäre aber nicht Microsoft, wenn das Unternehmen den... [mehr]

  • Microsoft verändert die Windows-10-Update-Politik

    Logo von IMAGES/STORIES/2017/WINDOWS_10_LOGO

    Der internationale Hard- und Softwarehersteller Microsoft hat in einem Blog-Eintrag neue Informationen über die Updatepolitik von Windows 10 bekannt gegeben. Scheinbar beabsichtigt Microsoft, den bisherigen halbjährlichen Hauptversionszyklus auf einen halbjährlichen Haupt-,... [mehr]

  • Das neue RaspEX für den Raspberry Pi basiert auf Ubuntu 19.10

    Logo von IMAGES/STORIES/2017/RASPBERRY3BPLUS

    Obwohl sich die neueste Version von Ubuntu, die 19.10 "Eoan Ermine", aktuell noch in der Entwicklung befindet und offiziell erst am 17. Oktober 2019 veröffentlicht werden soll, haben das RaspEX-Projekt und Arne Exton bereits jetzt schon den RaspEX Build 190807 fertig gestellt. Besagter Build... [mehr]

  • Windows 10: Mai-Update sorgt für Grafikfehler

    Logo von IMAGES/STORIES/2017/WINDOWS_10_LOGO

    Das Windows-10-Mai-Update sorgte bereits in der Vergangenheit für Probleme bei der Installation, wenn ein externes USB-Gerät oder eine SD-Speicherkarte angeschlossen ist. Nun beklagen sich diverse Nutzer über Darstellungsprobleme beziehungsweise über Grafikaussetzer. Grund hierfür scheinen... [mehr]