Vor einem Monat wurde in Vulkan 1.3.246 die neue VK_EXT_shader_object-Erweiterung eingeführt, an der Entwickler von Activision bis Valve gearbeitet haben. Zink-Chefentwickler Mike Blumenkrantz bei Valve war in den letzten Wochen damit beschäftigt, diese Shader-Objektunterstützung für die Verwendung durch diesen OpenGL-on-Vulkan-Treiber zu verkabeln.
VK_EXT_shader_object fügt einen neuen Shader-Objekttyp hinzu, um eine einzelne kompilierte Shader-Stufe darzustellen. Die Vulkan-Shader-Objekte sollen eine flexiblere, aber vergleichbar leistungsfähige Alternative zu Pipeline-Objekten sein.
Anfang dieser Woche landete Blumenkrantz Teil eins seines Codes zur Verwendung von Shader-Objekten in Zink. Bei diesem Zusammenführungscode bemerkte er:
“dies implementiert EXT_shader_object neu und verwendet es für separate Shader
…aber nur in Tomb Raider (2013), da sonst Feedbackschleifen unterbrochen werden
… und auch nvidia-proprietäre stürzen ab, wenn Sie dies versuchen sie haben jedoch viele Fehler
also implementiert dies wirklich etwas, das niemand verwenden kann, aber wenn sie es auf einer Referenzimplementierung von EXT_shader_object verwenden würden, die tatsächlich funktioniert (d.h. Lavapipe), dann würde es gut funktionieren.”
Über Nacht zusammengeführt war Teil zwei von Zinks EXT-shader_object Implementierung:
“Dies ermöglicht die Verwendung von EXT_shader_object für alle separaten Shader-Vorkompilierungen
Idealerweise sollte es möglich sein, Tomb Raider (2013) ohne Probleme (endlich) zu spielen, sobald die Treiber aufholen.”
Dann kommt heute auch endlich Mesa 23.2-devel, der letzte Teil drei:
“Dies ist der letzte Teil, der es ermöglicht, Shader-Objekte für alle Vorkompilierungen zu verwenden, wenn möglich/verfügbar
…
dies sollte der Funktionalität von GPL entsprechen, aber es sollte auch (theoretisch) deutlich weniger CPU-Overhead haben, also habe ich dies als neuen Standard aktiviert, wenn es verfügbar ist auf Desktops”
Dies wiederum sollte dazu beitragen, OpenGL-Titeln wie Tomb Raider, die auf Zink laufen, ein reibungsloses Spielerlebnis zu bieten.
Es steht auf meiner TODO-Liste, bald einige frische Zink-Benchmarks auszuführen, zumindest für Intel Arc Graphics und AMD Radeon-Hardware mit ihren Open-Source-Linux-Treibern.