Microsoft hat das Performance-Tuning- und Debugging-Werkzeug PIX on Windows in der Version 1812.14 am 18. Dezember 2018 veröffentlicht. Im Mittelpunkt der Aktualisierung steht die Funktion Playback Adapter Selection, die es Entwicklern erlaubt, die GPU für die Wiedergabe einer aufgezeichneten Analyse gezielt auszuwählen. Nach dem Öffnen einer wpix-Datei steht dafür vor dem Start der Analyse ein Auswahlmenü in der oberen rechten Ecke bereit.
Mit der Neuerung verändert sich auch das Verhalten bei Aufnahmen, die mehrere Adapter verwenden. Workloads, die explizit auf mehreren Adaptern arbeiten, laufen bei der Wiedergabe nun ausschließlich auf dem ausgewählten Adapter. Frühere Versionen griffen in solchen Fällen standardmäßig auf den primären Adapter des Systems zurück. Für Systeme mit mehreren GPUs entsteht so eine genauere Kontrolle darüber, auf welcher Hardware ein aufgezeichneter Frame reproduziert und untersucht wird.
Weitere Anpassungen an Analyse und Capture
Neben der Adapterauswahl bringt PIX 1812.14 mehrere Verbesserungen in der GPU-Analyse. Die Pipeline-Ansicht kennzeichnet jetzt Ressourcen, die von einem Shader referenziert werden, aber keine tatsächliche Bindung besitzen. Diese Unbound Resources erscheinen rot, damit fehlende Bindungen schneller auffallen. Die Occupancy-Ansicht erhielt erweiterte Tooltips mit Werten pro Stufe sowie eine visuelle Hervorhebung von Bereichen mit Belegung ungleich null. Für GPUs mit zahlreichen Compute-Blöcken wurde die Darstellung zudem in der Performance optimiert. Hinzu kommen Unterstützung für Render Pass in GPU-Captures sowie Korrekturen bei der Darstellung und der mehrstufigen Bindung von Structured Buffers. Das Werkzeug reiht sich damit in die Reihe der Entwickler-Hilfsmittel ein, die auch das PIX on Windows in späteren Jahren weiter ausgebaut hat.
Standardverhalten bei API-Capture und bekannte Einschränkungen
Eine wesentliche Verhaltensänderung betrifft das Capture von API-Aufrufen. Ab dem Betriebssystem-Stand RS5 erfasst PIX DXGI- und D3D11-Aktivitäten standardmäßig, während diese zuvor per Voreinstellung ignoriert wurden. Beim Mischen von D3D11- und D3D12-Rendering kann das zu Einschränkungen führen. In diesem Fall hilft eine angepasste API-Auswahl in den Einstellungen oder die Option Force 11on12. Als bekanntes Problem nennt Microsoft zudem Konfigurationen mit gemischten Turing- und Nicht-Turing-Karten von NVIDIA, bei denen der Start der Analyse während eines GPU-Captures fehlschlagen kann. Abhilfe schafft hier das Deaktivieren der GPU-Plugins in den Einstellungen. Wie tief solche Capture- und Diagnosefunktionen mittlerweile in moderne Engines reichen, zeigt etwa die Arbeit, die PIX on Windows präsentiert hat.