Auf der Suche nach dem Versuch, das Spiel Halo Infinite unter Linux über Steam Play (Proton) mit Grafikprozessoren der AMD GFX6/GCN 1.0-Ära zum Laufen zu bringen, hat Valves produktiver Open-Source-Treiber-Mitwirkender Samuel Pitoiset VK_NV_device_generated_commands-Unterstützung für diese ursprünglichen Radeon GCN-GPUs hinzugefügt.
Samuel Pitoiset hat Mesa RADV-Treiberunterstützung für NV_device_generated_commands auf GFX6-GPUs erhalten. VK_NV_device_generated_commands ist die NVIDIA-Erweiterung, die die Generierung einer Reihe wichtiger Grafikbefehle für Befehlspuffer ermöglicht. Gemäß der Erweiterung spec:
„Beim Rendern einer großen Anzahl von Objekten kann das Gerät genutzt werden, um eine Reihe wichtiger Funktionen zu implementieren, wie z. B. die Aktualisierung von Matrizen oder die Implementierung von Okklusions-Culling, Frustum-Culling, Sortierung von vorne nach hinten usw. Die Implementierung dieser Funktionen auf dem Gerät ist nicht erforderlich jede spezielle Erweiterung, da es einer Anwendung freisteht, ihre eigenen Datenstrukturen zu definieren und sie einfach mithilfe von Shadern zu verarbeiten.
Wenn die Anwendung jedoch schnell mit dem Rendern des endgültigen Objektstroms beginnen möchte, erzwingt nicht erweitertes Vulkan dies Anwendung, um den verarbeiteten Stream zurückzulesen und Grafikbefehle vom Host auszugeben. Bei sehr großen Szenen können der Synchronisierungsaufwand und die Kosten für die Generierung des Befehlspuffers zum Engpass werden. Diese Erweiterung ermöglicht es einer Anwendung, einen geräteseitigen Stream von Zustandsänderungen zu generieren und Befehle verarbeiten und effizient in einen Befehlspuffer umwandeln, ohne sie zum Host zurücklesen zu müssen.
Darüber hinaus ermöglicht es inkrementelle Änderungen an solchen Befehlspuffern, indem nur Teilabschnitte eines Befehlsstroms manipuliert werden – beispielsweise Pipeline-Bindungen. Unextended Vulkan erfordert in einem solchen Szenario die Neuerstellung ganzer Befehlspuffer oder die Synchronisierung von Updates auf dem Host. width=”100″height=”100″>
Pitoiset kommentierte das Hinzufügen dieser Erweiterung zu GFX6 in die Zusammenführungsanfrage,”Viel Spaß beim Spielen von Halo Infinite auf GFX6.:-)“
Aber später aktualisierte er den Text und fügte hinzu: „Vielleicht nicht, weil es Sparse erfordern könnte, was gfx8+ ist:(“ Es ist also letztendlich nicht klar, ob er Halo Infinite auf diesen frühen GCN-GPUs zum Laufen bringen kann Es reicht nicht aus, einen Workaround für das Fehlen spärlicher Texturen zu finden. Auf jeden Fall ist es schön zu sehen, wie Valve-Entwickler daran arbeiten, die Unterstützung für diese veralteten GPUs zu verbessern. GFX6 deckt die GPUs von Kap Verde, Pitcairn, Tahiti, Oland und Hainan ab.
Diese GFX6 NV_device_generated_commands-Unterstützung ist jetzt in Mesa 23.2-devel für die stabile Veröffentlichung im nächsten Quartal verfügbar.