Call of Duty Warzone Mobile utilise Vulkan pour de meilleurs graphismes

Capture d'écran du logo du titre du jeu Call of Duty Warzone Mobile.

Call of Duty: Warzone Mobile est un jeu d'action à la première personne de la populaire franchise Call of Duty. La version mobile du jeu console et PC très populaire exploite les API mobiles de bas niveau pour offrir une expérience de jeu de qualité.

D'un point de vue technique, l'objectif de l'implémentation mobile est de prendre en charge un large éventail d'appareils mobiles Android tout en gardant l'implémentation aussi proche que possible de la version pour console et en veillant à ce que le pipeline graphique et la chaîne d'outils restent compatibles avec les titres et contenus actuels pour console et PC.

Le moteur Call of Duty implémente la synchronisation, l'allocation de mémoire et la planification pour la gestion des envois de rendu à l'aide d'un système appelé moteur de rendu de graphique de tâches, qui détermine le travail à exécuter sur le GPU et spécifie les ressources requises. Plus précisément, le système est un graphique de rendu avec des tâches, des ressources et des dépendances définies dans un script de haut niveau qui est traité au moment du chargement pour générer un ordre optimal de la tâche à exécuter sur le GPU et fournir les ressources utilisées au moment de l'envoi du frame.

Vulkan, une API graphique 3D multiplate-forme moderne, a été sélectionnée comme interface de rendu backend pour le moteur de rendu du graphique des tâches sur Android.

Figure 1. Arrière-plan détaillé avec des graphiques superposés.

Avantages de l'API Vulkan

Pour conserver le style visuel distinctif de Call of Duty et mieux prendre en charge la progression partagée entre Call of Duty: Warzone Mobile et ses homologues sur console et PC, le jeu utilise une API de rendu semblable à celle des implémentations existantes sur console et PC. Sur Android, Vulkan permet à Activision de s'appuyer sur ses outils, pipelines et nuanceurs existants, et de prendre en charge le contenu créé par les artistes, sans avoir à revoir l'ensemble de la pile logicielle.

Essayer d'y parvenir avec un moteur de rendu complètement différent serait prohibitif, et essayer de prendre en charge les API graphiques d'ancienne génération pour le pipeline Call of Duty aurait un impact trop important sur l'ensemble de fonctionnalités. Activision a déterminé que Vulkan était le choix le plus approprié pour proposer des fonctionnalités complètes sur Android tout en minimisant l'impact sur les frais généraux de développement globaux. Vulkan a reçu une couverture importante auprès des fabricants d'appareils Android, ce qui en fait également un bon choix pour le développement futur.

Les appareils qui ne disposent pas de matériel ou de pilotes compatibles avec Vulkan sont généralement plus anciens et pas assez puissants pour exécuter le jeu. En plus de la compatibilité technique de Vulkan avec le moteur et le pipeline de contenu, la prise en charge de Vulkan en tant qu'exigence matérielle sert de filtre de performances.

Compatibilité avec l'API de plate-forme existante

Vulkan est conceptuellement semblable aux API existantes utilisées pour Call of Duty: Warzone, avec une gestion explicite des ressources, un aliasage de mémoire, un pipeline de calcul similaire et un accès aux ressources sans liaison. Ces similitudes ont permis à Activision de maintenir la cohérence structurelle du moteur de rendu avec le moteur de rendu de la console et du PC, ne nécessitant que des modifications du backend pour interagir avec Vulkan.

La prise en charge des nuanceurs existants basés sur le HLSL avec des ensembles de fonctionnalités complets à l'aide de la compilation DXC vers SPIR-V permet à Android de s'intégrer aux pipelines de compilation existants d'Activision. Ce processus n'est pas sans difficultés, mais il est plus avantageux qu'une réécriture et les coûts induits par la gestion de plusieurs versions ou langues.

Figure 2. Environnement de rendu complexe.
Figure 3 Rendu de contenu haute fidélité.

Fonctionnalités Vulkan utilisées dans Call of Duty: Warzone Mobile

  • Le aliasing de ressources et le contrôle explicite de la barrière permettent au graphique de tâches de rendu de réduire considérablement les exigences de mémoire pour les cibles de rendu par rapport à l'allocation statique.
    • La flexibilité permet d'utiliser facilement les pratiques adaptées aux mobiles dans les tâches de rendu.
    • Les passes de rendu en tant que fonctionnalités de base permettent au moteur de rendu de prendre des décisions optimales pour les architectures de GPU mobiles courantes. La plupart de ces décisions génèrent également des gains sur d'autres plates-formes.
    • La résolution de scène dynamique est prise en charge par défaut par le graphique des tâches, ce qui permet de contrôler certaines performances et la consommation d'énergie.
  • Le pipeline GPU complet avec une élagage basée sur le calcul étendu permet d'augmenter considérablement la complexité de la scène.
    • Équilibrer la granularité de l'élagage pour tenir compte du ciblage des rendeurs différés basés sur des tuiles.
    • Le goulot d'étranglement est une charge de travail de calcul complexe, contrairement au nombre de triangles.
      • Le pipeline GPU est conçu en fonction de différents scénarios.
      • Options permettant de modifier la précision de l'élagage.
  • Les ensembles de descripteurs très volumineux permettent un rendu sans liaison complet sur du matériel compatible, ce qui réduit considérablement le coût de création d'appels de dessin du processeur, avec les avantages associés en termes de performances, d'alimentation et de température.
  • Le configurateur matériel permet d'ajuster les paramètres de fidélité en fonction de modèles d'appareils spécifiques pour une expérience utilisateur optimale.
    • Les utilisateurs configurent le mode: meilleures performances, meilleure qualité ou économie de batterie.
  • La conception d'ensembles de nuanceurs spécifique à l'appareil fournit différents ensembles de nuanceurs pour différents préréglages de GPU (paramètres de qualité et de fidélité). Le configurateur matériel aide le jeu à choisir le meilleur ensemble de nuanceurs pour l'appareil.
    • Aide à réduire l'explosion combinatoire des nuanceurs hautement configurables avec les exigences de création d'objets de pipeline.
    • Inclut des ensembles de nuanceurs sans liaison de remplacement pour cibler les téléphones et les pilotes plus anciens qui ne prennent pas en charge autant de ressources de nuanceur.
  • Utilisation intelligente des constantes de spécialisation pour gérer les différences entre les pilotes.
    • La plupart des bugs du compilateur de nuanceurs dans les pilotes sont contournés à l'aide de constantes de spécialisation.
    • Équilibre en fonction du nombre de jeux de nuanceurs spécifiques à l'appareil.
Figure 4. Pipeline GPU complet avec une élagage basée sur le calcul étendu permettant des scènes complexes.

Profilage et débogage

Au début du développement, Activision a constaté de nombreuses lacunes en termes de stabilité et de fonctionnalités avec les outils de profilage et de débogage Vulkan. Depuis, les profileurs spécifiques au fournisseur et les outils indépendants des fournisseurs, tels que RenderDoc, ont connu des améliorations constantes. Les développeurs peuvent désormais cibler plus précisément les problèmes de rendu et les opportunités d'optimisation.

Haute fidélité avec Vulkan

Call of Duty: Warzone Mobile s'exécute sur une large gamme d'appareils Android compatibles avec Vulkan, à l'aide d'une technologie de rendu partagée avec les titres pour console et PC. Vulkan a réduit les coûts et les frictions liés au développement, et a permis de proposer aux joueurs Android un contenu et un gameplay Call of Duty authentiques et réalistes.