Start Games Sampler Feedback kommt zu DirectX 12: Texture-Streaming-Daten für Entwickler

Sampler Feedback kommt zu DirectX 12: Texture-Streaming-Daten für Entwickler

0
Sampler Feedback kommt zu DirectX 12: Texture-Streaming-Daten für Entwickler
Sampler Feedback kommt zu DirectX 12: Texture-Streaming-Daten fuer Entwickler - Bild: DirectX Developer Blog

Am 4. November 2019 hat Microsoft im DirectX Developer Blog Sampler Feedback angekündigt. Die Hardware-Funktion öffnet Entwicklern Daten, die bei Texture-Sampling-Operationen bisher im Verborgenen lagen: welcher Mip-Level wirklich abgetastet wurde und an welcher Stelle der Ressource der Zugriff stattfand. Aufgezeichnet werden diese Werte in einer eigenen Feedback-Ressource und lassen sich später im Frame auswerten. Bei der eingebauten Schnittstelle handelt es sich um eine Erweiterung von DirectX 12.

Geschrieben hat die Ankündigung Claire Andrews. Anfangs gab es die Funktion über den Windows 10 Insider Preview Build und den dazugehörigen SDK Preview Build für Windows 10 (20H1). Vorausgesetzt werden der aktuelle DirectX Shader Compiler sowie passende GPU-Hardware und herstellerspezifische Treiber.

Zwei Feedback-Map-Formate

Die Spezifikation kennt zwei Ausprägungen der Feedback-Ressource. In der MinMip-Feedback-Map merkt sich jeder Texel den hoechstdetaillierten Mip-Level, der innerhalb einer Mip-Region angefragt wurde. Die MipRegionUsed-Feedback-Map dagegen legt pro Texel einen booleschen Wert ab, der festhält, ob die betreffende Region der gekoppelten Textur überhaupt genutzt wurde. Wie fein aufgezeichnet wird, regeln Entwickler über sogenannte Mip-Regionen. Deren Kantenlaengen müssen Zweierpotenzen sein und bewegen sich zwischen vier Texeln und der halben Texturkantenlaenge. Gängig sind Werte wie 8×8 oder 16×16. Beim Streaming orientieren sich die Regionen meist an der 64-KB-Kachelgröße von Tiled Resources.

Texture Streaming und Texture-Space Shading

Den größten Nutzen sieht Microsoft in zwei Szenarien. Beim Texture Streaming hilft das Feedback dabei, genau jene Kacheln und Mip-Level nachzuladen, die wirklich angefragt werden, statt ganze Texturen im Speicher zu halten. Im gezeigten Beispiel von Microsoft fiel der Speicherbedarf so von 524.288 auf 51.584 Kilobyte, also auf rund ein Zehntel. Der zweite Fall ist Texture-Space Shading. Dieses Verfahren löst die Beleuchtungsberechnung vom Rasterisierungsschritt und führt sie im Objektraum aus. Sampler Feedback notiert dabei, welche Texel während der Rasterisierung angefragt werden. Aufwendige Shading-Operationen fallen dann nur für sichtbare Bereiche an statt für ganze Objekte.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein