Quoi qu’en dise leurs équipes de communication, Starfield, titre dernier-né de Bethesda, a un sacré mal à utiliser pleinement le potentiel de nos GPU. D’après nos mesures, une RTX 4090 est requise pour jouer confortablement en UHD, la 7900 XT concurrente toussotant selon les endroits. Pour une carte haut de gamme, voilà qui fait mal…
Hé bien, sur r/pcmasterrace, un certain Nefsen402 aurait eu vent d’un des soucis participants à la contre-performance du titre : l’API DirectX 12, responsable de l’accélération par GPU du rendu, ne serait pas correctement utilisée. En effet, les développeurs auraient opté dans le code pour le recours à une primitive nommée ExecuteIndirect dans le pipeline de rendu, une nouveauté. Rien de bien méchant à cela, sauf que ses appels ne seraient pas effectués correctement, forçant la carte à recommencer de temps à autre l’opération. Pire, le contexte des appels empirerait le problème, entraînant de multiples redémarrages de l’appel à la suite : cataschtroumpf. Si rien de tout cela n’est reconnu par le studio, le fait que la version Linux offre des performances égales voire supérieures tout en utilisant une couche de traduction des appels graphiques (usuellement porteuse de surcoûts en charge de travail et non de gains !) semble aller dans le sens de l'explication des redditeurs.
Pour pallier ce problème, rien ne serait possible sous Windows sans patch — du jeu ou des pilotes (ce qui est en train d’arriver… mais pas encore annoncé comme réglant ce souci !). En revanche, sous Linux, le sous-composant chargé de faire la traduction DirectX 12 (Microsoft) vers Vulkan (cross-plateforme / cross OS), nommé vkd3d-proton, a reçu il y a trois jours une mise à jour améliorant le support de cet ExecuteIndirect pour les cartes AMD — pas de bol, NVIDIA est victime d’un bug sur ses pilotes pour le manchot rendant le fix inapplicable. Au passage, le support de ce même ExecuteIndirect avait déjà fait parler de lui dans ce même vkd3d-proton l'an dernier, mais pour le support correct de Halo Infinite... Un vrai casse-tête.
Pour en revenir à nos moutons, cela signifie que la vitesse de moulinage de Starfield devrait fatalement augmenter sur les machines équipées de AMD RX sous système d'exploitation libre d'ici peu. À vérifier en test une fois cette mouture de vkd3d-proton intégrée dans l'outil complet de compatibilité Linux pour le jeu, SteamPlay ?
Petite question : est-ce qu'il y a d'autres jeux connus qui ont utilisé cet outil dans DX12 et qui ont connus des soucis (à part Halo Infinite) ?