La nouvelle extension VK_EXT_shader_object sur laquelle ont travaillé les développeurs d’Activision à Valve a été introduite il y a un mois dans Vulkan 1.3.246. Le développeur principal de Zink, Mike Blumenkrantz chez Valve, a été occupé ces dernières semaines à faire en sorte que ce support d’objet shader soit câblé pour être utilisé par ce pilote OpenGL-on-Vulkan.
VK_EXT_shader_object ajoute un nouveau type d’objet shader pour représenter une seule étape de shader compilé. Les objets de shader Vulkan sont destinés à être une alternative plus flexible mais relativement performante aux objets de pipeline.
Plus tôt cette semaine, Blumenkrantz a décroché la première partie de son code pour utiliser d’objets shader dans Zink. Avec ce code de fusion, il a noté :
“ceci réimplémente et utilise EXT_shader_object pour des shaders séparés
… mais uniquement dans Tomb Raider (2013) car les boucles de rétroaction sont autrement rompues
…et aussi la propriété nvidia plantera en essayant cela depuis ils ont cependant de nombreux bogues
donc vraiment cela implémente quelque chose que personne ne peut utiliser, mais s’ils l’utilisaient sur une implémentation de référence de EXT_shader_object qui fonctionnait réellement (c’est-à-dire, lavapipe), alors cela fonctionnerait bien.”
La fusion du jour au lendemain était la deuxième partie de l’EXT-shader_object de Zink implémentation :
“cela permet l’utilisation de EXT_shader_object pour toutes les précompilations de shader séparées
idéalement, une fois que les pilotes ont rattrapé leur retard, cela signifie qu’il devrait être possible de (enfin) jouer à Tomb Raider (2013) sans aucun accroc.”
Enfin, atteindre Mesa 23.2-devel aujourd’hui est également la dernière partie trois :
“c’est la dernière partie, permettant aux objets shader d’être utilisés pour toutes les précompilations lorsque cela est possible/disponible
…
cela devrait correspondre à la fonctionnalité de la GPL, mais il devrait également (théoriquement) avoir beaucoup moins de surcharge CPU, donc j’ai activé cela pour être la nouvelle valeur par défaut lorsqu’elle est disponible sur les ordinateurs de bureau”
En retour, cela devrait aider à fournir une expérience de jeu fluide pour les titres OpenGL comme Tomb Raider fonctionnant sur Zink.
C’est sur ma liste TODO d’exécuter bientôt de nouveaux benchmarks Zink, au moins pour le matériel Intel Arc Graphics et AMD Radeon avec leurs pilotes Linux open source.