L’article ne peut pas être activé avec JavaScript. Vous pouvez également activer JavaScript dans votre navigateur et sur la nouvelle page.
La couche anti-lag implicite de Mesa a été supprimée et RADV, le pilote open source Radeon Vulkan sous Linux, implémente désormais lui-même VK_AMD_anti_lag. Six commits ont fusionné avec la branche principale de Mesa le 8 octobre à 22:21:31 UTC, ajoutant un cadre de stimulation de trame partagé de 894 lignes et supprimant 1 836 lignes de la couche qui effectuait le travail auparavant.
Tous les six sont rédigés par Daniel Schürmann et ont été poussés par Marge Bot, le train de fusion utilisé par Mesa, chacun portant la même référence de demande de fusion, 42048. Ils ont été lus à 21h41 UTC le 10 octobre via un miroir GitHub du référentiel Mesa, puisque gitlab.freedesktop.org répond à une vérification de robot à partir d’ici, et les hachages ci-dessous sont ceux en amont.
894 lignes entrantes, 1 836 sortantes
La fondation est 6854f77017cf, « vulkan/runtime : add vk_frame_pacer utility framework », cinq fichiers et 894 lignes ajoutées. « Ce cadre fournit un utilitaire de base pour la mise en œuvre d’extensions de stimulation de trame à faible latence », indique-t-il, mesurant les temps de trame, où une trame correspond à « toutes les soumissions entre deux appels à vkQueuePresentKHR », ainsi que les délais de file d’attente tirés des horodatages calibrés lors de la soumission et au début de l’exécution sur l’appareil.
Au-dessus se trouve 8b045fd2baad, « radv: Implement VK_AMD_anti_lag », 166 lignes réparties sur quatre fichiers, qui se décrit comme « basé sur le framework vk_frame_pacer et destiné à remplacer complètement MESA_LAYER_ANTI_LAG ». Il énonce l’arithmétique : « delay = avg_frame_time + queuing_delay – MIN2(deviation, ONE_MS_IN_NS) », avec la moitié du délai de mise en file d’attente ajoutée parce que « c’est ce que nous essayons de minimiser » et l’écart de temps de trame moyen soustrait « en tant que temps mort, afin de ne pas vider le GPU du travail ».
Un commit de six lignes annonce l’extension, deux autres déplacent un en-tête de tampon en anneau hors de l’ancienne couche vers les utilitaires partagés de Mesa et y ajoutent une macro, et b99595dedb85, « vulkan : supprimer la couche anti-lag », supprime le reste : huit fichiers, une ligne ajoutée et 1 836 supprimées.
En principal, avec 26.3.0-rc1 prévu pour le 14 octobre
La branche sur laquelle cela a atterri est la branche principale de Mesa, dont le fichier VERSION indique 26.3.0-devel. Le propre calendrier de publication de Mesa place 26.3.0-rc1 le 14 octobre, rc2 le 21 octobre, rc3 le 28 octobre et rc4 le 4 novembre, cette dernière ligne annotée « Ou 26.3.0 final. », avec Dylan Baker comme responsable des versions. Rien de tout cela n’est encore un pilote expédié, et la dernière ligne du calendrier est écrite comme une possibilité plutôt que comme une date.
Le timing à l’intérieur des commits est sa propre petite histoire. Le framework a été rédigé le 3 juin, l’implémentation de RADV le 4 juin et la suppression de la couche le même jour, la validation publicitaire ayant suivi le 22 juin. Ils ont été fusionnés quatre mois plus tard, en un seul lot, six jours avant la release candidate vers laquelle la branche est pointée.
Ici, rien n’est mesuré. Les commits ne comportent aucun chiffre de latence, aucune comparaison de temps d’image et aucun jeu, donc la seule revendication sur la table est la structurelle : une extension Vulkan implémentée à l’intérieur du pilote au lieu d’une couche chargée autour de celui-ci. VK_AMD_anti_lag est une extension Vulkan et non la fonctionnalité Anti-Lag 2 livrée par AMD dans son pilote Windows, qui est une implémentation distincte sur une pile distincte.
La plomberie Vulkan atteint assez souvent les utilisateurs de Radeon sous Linux, généralement comme un défaut, comme avec une superposition bêta de Steam qui faisait planter les jeux Vulkan jusqu’à ce que Valve la corrige. Celui-ci est plus silencieux : si cela fonctionne, l’extension est simplement là, et la couche que personne ne voulait maintenir n’est pas là.