Microsoft hat am 27. März 2024 angekündigt, den WinPixEventRuntime unter der MIT-Lizenz als Open Source bereitzustellen. Der zugehörige Quellcode liegt im GitHub-Repository microsoft/pixevents. Damit erhalten Entwickler auf Windows und Xbox erstmals freien Zugriff auf jene Komponenten, mit denen sich CPU- und GPU-Ereignisse für die Performance-Analyse mit PIX annotieren lassen. Die Ankündigung stammt von Austin Kinross, Engineering Manager des PIX-Teams.
Bislang wurde der WinPixEventRuntime ausschließlich als vorkompiliertes NuGet-Paket verteilt. Die Offenlegung des Quellcodes verändert die Grundlage für die Integration der PIX-Annotationen in fremde Werkzeuge und Build-Pipelines. Auch das NuGet-Paket selbst trägt nun die MIT-Lizenz.
Was offengelegt wurde
Der veröffentlichte Bestand umfasst die pix3.h-Header samt zugehöriger Dateien, den Code zum Erzeugen der WinPixEventRuntime.dll sowie den Code zum Dekodieren von PIX-Ereignissen. Hinzu kommt eine Reihe von Unit-Tests. Diese Komponenten bilden die Schnittstelle, über die Anwendungen Marker und Bereiche auf der CPU- und GPU-Timeline setzen, die PIX später bei der Aufzeichnung und Auswertung darstellt.
Durch die Bereitstellung des Decoder-Codes lassen sich PIX-Ereignisse auch außerhalb von PIX selbst auslesen. Die mitgelieferten Tests dokumentieren das erwartete Verhalten der Runtime und machen die Implementierung leichter nachvollziehbar.
Folgen für Entwickler
Mit dem offenen Quellcode lassen sich eigene Builds der Runtime erstellen und die PIX-Ereignisannotationen in eigene Profiling- und Diagnosewerkzeuge einbinden. Das betrifft PC-Titel unter Windows ebenso wie Projekte für Xbox, die auf die Performance-Instrumentierung über PIX setzen. Die MIT-Lizenz erlaubt Nutzung, Änderung und Weitergabe ohne Copyleft-Bindung. In diese Linie offener Werkzeuge und Beispiele passt auch das von Microsoft bereitgestellte Godot-Beispiel für die Xbox-Entwicklung auf dem PC.
Begleitend zur Offenlegung legte Microsoft einen Vorschlag für eine neue PIX-CPU-API für Frames und Tasks vor und bat über ein dediziertes GitHub-Issue um Rückmeldungen aus der Entwicklergemeinde. Die Spezifikation steht damit zur öffentlichen Diskussion, bevor sie in die Runtime einfließt. Der Quellcode ist im Repository microsoft/pixevents zu finden.
