Am 14. Juli 2022 hat das DirectX-Team Shader Model 6.7 öffentlich freigegeben. Ausgeliefert wird die neue Shader-Generation über das DirectX 12 Agility SDK, und zwar als öffentliche Version 1.606.3 und als Preview 1.706.3. HLSL bekommt damit mehrere Texturoperationen und neue Quad-Intrinsics dazu. Zum Kompilieren reicht es, das Shader-Target auf *_6_7 zu setzen. Voraussetzung dafür ist das DXC-Release vom Juli 2022 oder eine neuere Fassung.
Was die Advanced Texture Operations können
Im Zentrum des Releases stehen die Advanced Texture Operations. Mit Integer Sampling lassen sich Texturen mit Integer-Komponenten jetzt direkt samplen. Dafür gibt es die neue Struktur D3D12_SAMPLER_DESC2. Raw Gather liefert die rohen Elementdaten samt aller Kanäle, und zwar ohne Format-Konvertierung. Die Programmable Offsets erlauben es zum ersten Mal, die Offset-Argumente als variable Werte zu übergeben. Vorher mussten sie als unmittelbare Integer-Konstanten vorliegen. Dazu kommt SampleCmpLevel, eine Methode, die das MIP-Level für Vergleichs-Samples ausdrücklich vorgibt. Den Block runden beschreibbare multisampled Texturen ab, die über die neuen Ressourcentypen RWTexture2DMS und RWTexture2DMSArray angesprochen werden. Wer tiefer in die DirectX-Werkzeuge einsteigt, findet hier eine spürbare Erweiterung des Werkzeugkastens.
QuadAny, QuadAll und die Treiberlage bei Intel, AMD und NVIDIA
Bei den Quad-Operationen kommen mit Shader Model 6.7 die Intrinsics QuadAny und QuadAll dazu. Sie prüfen, ob ein Ausdruck für mindestens eine oder für alle Lanes im aktuellen Quad zutrifft, und machen die Steuerung von Verzweigungen in Pixel-Shadern einfacher. Bei den Wave-Operationen gibt es das Attribut WaveOpsIncludeHelperLanes obendrauf. Damit können Helper Lanes zu den Ergebnissen von Wave-Operationen beitragen. Die Hardware-Unterstützung kam gestaffelt. Intel stellte einen Preview-Treiber für die Arc-Grafik auf Basis von DG2 bereit. AMD kündigte den öffentlichen Treiber an und legte vorab einen Preview-Treiber bei. Für NVIDIA-Hardware verwies das Team auf den jeweiligen Ansprechpartner. Funktionsumfang, Strukturen und Treiberlage sind im DirectX Developer Blog im Detail dokumentiert.

