Suite à la présentation de Windows 11 en juin, Microsoft a multiplié les annonces dans de nombreux départements de l'entreprise. L'une d'elles venait de sa division des jeux qui indiquait que vous auriez besoin de Windows 11 pour jouer à des jeux qui utilisent certaines API de « nouvelle génération », en particulier la nouvelle API DirectStorage (la technologie de stockage derrière l'architecture Velocity de Xbox). En juillet 2021, l'équipe DirectX de la société a annulé cette restriction du système d'exploitation.
Dans un billet de blog sur DirectStorage, la société a expliqué : « À la fin de l'année dernière, nous avons annoncé que nous apporterions DirectStorage aux PC Windows, et en juin, nous avons expliqué au monde entier comment DirectStorage améliorerait l'expérience de jeu sur Windows 11. Depuis lors, l'équipe DirectX a travaillé dur pour apporter cet état – une technologie de pointe de l'architecture Velocity de Xbox à Windows permettant aux développeurs de jeux sur les deux plateformes de créer de nouvelles expériences de jeu immersives avec un temps de chargement considérablement réduit ».
Et d'indiquer que « Microsoft s'engage à s'assurer que lorsque les développeurs de jeux adoptent une nouvelle API, ils peuvent atteindre autant de joueurs que possible. En tant que tels, les jeux construits avec le SDK DirectStorage seront compatibles avec Windows 10, version 1909 et versions ultérieures ; le même que le SDK DirectX 12 Agility ».
Présentation de l'API DirectStorage
DirectStorage est une API qui va améliorer deux aspects principaux : elle va réduire les temps de chargement frustrants du passé et permettre aux jeux d'être plus détaillés et plus étendus que jamais. DirectStorage sera pris en charge sur les systèmes équipés de lecteurs NVMe et aidera à faire passer votre expérience de jeu à un niveau très élevé. Sur les systèmes non compatibles NVMe, les jeux continueront à fonctionner aussi bien comme d’habitude.
Microsoft cherche de plus en plus des méthodes pour améliorer les performances des jeux sous Windows 10. Pour ce faire, l’entreprise met en œuvre une partie de l'architecture Velocity utilisée par la Xbox Series X en apportant l'API DirectStorage sur Windows 10 pour aider à surmonter les goulots d'étranglement de la bande passante des systèmes de stockage NVMe. En effet, les technologies NVMe permettent actuellement aux PC de jeu d’avoir une solution de stockage offrant une bande passante bien plus large que ce qui était possible avec les anciennes technologies.
Au lieu de dizaines de mégaoctets par seconde, les disques comme le NVMe personnalisé de la prochaine console Xbox Series X sont capables de fournir une vitesse fulgurante de plusieurs gigaoctets par seconde. La firme a expliqué que les charges de travail des jeux ont elles aussi évolué. Les jeux modernes chargent beaucoup plus de données que les anciens et sont plus intelligents quant à la manière dont ils chargent ces données. Au lieu de charger de gros morceaux à la fois avec moins de demandes d'E/S, les jeux actuels divisent les éléments en morceaux plus petits.
De plus, ils ne chargent que les morceaux nécessaires au rendu de la scène en cours. Cette approche est beaucoup plus efficace en termes de mémoire et permet d'obtenir des scènes plus belles, même si elle génère beaucoup plus de demandes d'entrée/sortie. Malheureusement, Microsoft estime que les API de stockage actuelles n'ont pas été optimisées pour ce nombre élevé de requêtes d'entrée/sortie, ce qui les empêche d'évoluer vers ces bandes passantes NVMe plus élevées, créant ainsi des goulots d'étranglement qui limitent les possibilités des jeux.
Même avec un matériel PC ultrarapide et un lecteur NVMe, les jeux se basant sur les API existantes ne pourront pas saturer complètement le pipeline d'E/S, ce qui laissera une précieuse bande passante sur la table. Il faut donc une nouvelle approche pour tirer le maximum des systèmes de stockage NVMe. Selon l’entreprise, c’est là qu’intervient l’API DirectStorage pour PC. Cette API est la réponse à l'évolution du paysage du stockage et des E/S dans les jeux sur PC.
Microsoft a expliqué ensuite que les fonctionnalités de DirectStorage peuvent être divisées en plusieurs parties, notamment :
- nouveau modèle de programmation d'API DirectStorage qui fournit un modèle d'appel submission/completion par lots de style DX12, soulageant les applications de la nécessité de gérer individuellement des milliers de demandes d'E/S/ requests/completion par seconde ;
- décompression GPU fournissant une décompression ultrarapide des actifs pour le temps de chargement et les scénarios de streaming (à venir dans un aperçu ultérieur) ;
- optimisations de la pile de stockage : sur Windows 11, il s'agit d'une pile de stockage du système d'exploitation mise à niveau qui libère tout le potentiel de DirectStorage, et sur Windows 10, les jeux bénéficieront toujours de l'utilisation plus efficace de la pile de stockage du système d'exploitation héritée.
« Cela signifie que tout jeu construit sur DirectStorage bénéficiera du nouveau modèle de programmation et de la technologie de décompression GPU sur Windows 10, version 1909 et versions ultérieures. De plus, étant donné que Windows 11 a été conçu avec DirectStorage à l'esprit, les jeux fonctionnant sous Windows 11 bénéficient davantage de nouvelles optimisations de la pile de stockage. L'implémentation de l'exécution de l'API et la technologie de décompression GPU sont fournies par le SDK DirectStorage et sont livrées avec votre jeu. En tant que développeur de jeux, vous n'avez besoin d'implémenter DirectStorage qu'une seule fois dans votre moteur, et tous les avantages applicables seront automatiquement appliqués et mis à l'échelle de manière appropriée pour les joueurs.
« En fait, cette grande compatibilité s'étend également à une variété de configurations matérielles différentes. Les jeux compatibles DirectStorage fonctionneront toujours aussi bien qu'ils l'ont toujours fait, même sur des PC dotés d'un matériel de stockage plus ancien (par exemple, des disques durs) ».
L'API DirectStorage est désormais disponible sur PC
Dans un billet de blog, Microsoft a déclaré qu'il sortait DirectStorage de la Preview développeur et le rendait disponible via un SDK public : « En septembre 2020, nous avons annoncé que DirectStorage arriverait sur Windows, et après avoir recueilli des commentaires tout au long de notre Preview pour les développeurs, nous mettons cette API à la disposition de tous nos partenaires pour qu'elle soit livrée avec leurs jeux ».
Aucun jeu ne prend encore en charge DirectStorage sur PC, mais AMD et le développeur de jeux Luminous Productions ont récemment fait la démonstration de Forspoken en utilisant cette fonctionnalité. Le jeu devrait sortir le 11 octobre. Le blog de Microsoft a déclaré que la société aurait plus à dire sur les jeux PC prenant en charge DirectStorage « à l'avenir ».
En attendant, les ressources sont déjà proposées aux développeurs qui veulent se lancer dans l'aventure.
Microsoft a également fait quelques recommandations aux joueurs : « Si vous souhaitez que votre PC soit prêt à tirer parti des jeux DirectStorage, nous avons quelques suggestions. DirectStorage est compatible avec les appareils Windows 10, mais Windows 11 intègre les dernières optimisations de stockage et est notre chemin recommandé pour les jeux. Bien que vous puissiez voir des avantages sur tout type de périphérique de stockage, l'installation de jeux sur un SSD NVMe maximisera vos performances d'E/S et vous aidera à profiter pleinement des avantages de DirectStorage ».
Nous pouvons nous attendre à voir plus de jeux implémenter la fonctionnalité. Sony a déjà promu ce qu'un SSD NVMe rapide peut faire pour les jeux grâce au saut d'univers à chargement rapide dans Ratchet and Clank : Rift Apart de la PlayStation 5. Cependant, tous les joueurs sur PC ne sont pas passés de SATA à des SSD NVMe PCIe 3.0 ou à des versions ultérieures. Microsoft a précédemment déclaré que NVMe était nécessaire, car ces SSD « peuvent avoir plusieurs files d'attente, et chaque file d'attente peut contenir plusieurs requêtes à la fois, ce qui en fait un bon choix pour les charges de travail de jeu d'aujourd'hui qui ont tendance à être parallèles et par lots ».
DirectStorage nécessite également une carte graphique Nvidia RTX 2000 ou AMD RX 6000 ou une version ultérieure.
Téléchargements de l'API DirectStorage
Sources : blog développeurs DirectX (Microsoft), message de l'équipe de développement de ForSpoken
Et vous ?
Que pensez-vous de DirectStorage ?