Tutoriels

▷ Directx 12 vs vulkan: la lutte pour le meilleur moteur graphique?

Table des matières:

Anonim

Actuellement, pour le monde du PC, il existe deux API graphiques de première classe qui gèrent le marché avec autorité. Pour cette raison, nous vous proposons la comparaison DirectX 12 Vs Vulkan.

Les deux ont une longue histoire derrière eux et toute une horde de défenseurs et de détracteurs. Aujourd'hui nous verrons les différences, les clés de chacun et nous essaierons de les éclairer.

Index du contenu

API graphique de bas niveau et «surcharge du pilote»

L'API signifie "interface de programmation d'application" et est un ensemble de sous-programmes qui peuvent être utilisés par un développeur qui comprend également des protocoles de communication et des utilitaires qui facilitent le développement de logiciels. On peut les trouver pour presque tout et il est courant que chaque prestataire de services dispose de ce type d'aide pour mettre en œuvre ses systèmes de manière simple et accessible.

Les API de bas niveau tirent un meilleur parti des ressources du GPU, soulageant le processeur, mais sont également en mesure de mieux tirer parti des processeurs multicœurs que nous avons aujourd'hui.

DirectX 12 et Vulkan 1.1 sont des API orientées vers le développement de jeux et d'applications qui nécessitent l'assistance de moteurs graphiques modernes. En même temps, ce sont des API prises en charge par les pilotes des plus grands concepteurs de chipsets graphiques et donc un moyen rapide et économique d'accéder à leurs fonctionnalités sans avoir à connaître leur conception à un niveau très bas.

Une API de bas niveau, comme celles-ci, permet de travailler avec le matériel avec une couche d'interprétation très légère, ce qui permet au développeur de mieux tirer parti du matériel, d'obtenir de meilleurs résultats en termes de performances et d'efficacité, permettant également à d'autres sous-systèmes d'être libérés d'une charge supplémentaire. Dans le monde du PC, ou des téléphones portables, il dépend moins du CPU général du système.

Les deux API dont nous parlerons aujourd'hui peuvent être considérées comme des API de bas niveau et les deux développements ont entraîné une dépendance de moins en moins vis-à-vis du processeur du système tout en obtenant de meilleurs résultats au niveau des performances et un accès à des fonctions plus graphiques. avancé. Ce sont deux API en direct qui reçoivent des mises à jour chaque année pour les garder en phase avec les attentes du grand public et des développeurs.

Les API de bas niveau ont un effet direct sur un autre concept de calcul que nous appelons «surcharge du pilote», qui est, en bref, les ressources secondaires dont nous avons besoin pour exécuter certains types d'opérations sur un ordinateur. Dans le cas des graphiques, cela fait référence aux ressources supplémentaires dont la carte graphique a besoin pour faire son travail et dans ce cas, il s'agit fondamentalement des temps de traitement du processeur central. Les API de bas niveau que nous allons décrire ici réduisent cette dépendance et en fait la dépendance tend vers 0.

Microsoft DirectX

DirectX apparaît comme une nécessité pour normaliser différents sous-systèmes multimédias Windows et est le substitut de WinG pour Windows 3.1. Il est adopté dans Windows 95 en tant que module complémentaire et sa deuxième version, DirectX 2.0, devient un composant fondamental de Windows 95 OSR2.

Dans DirectX, nous trouvons plusieurs API indépendantes telles que Direct3D, qui est vraiment celle en question, DirectDraw, DirectMusic, DirectPlay et DirectSound. DirectX était un moyen de nommer les avancées communes à toutes ces sous-API. C'est une API pour Windows mais elle est également utilisée pour le développement de jeux sur ses consoles Xbox donc on peut la considérer comme une API multiplateforme mais pas gratuite, comme c'est le cas avec Vulkan.

DirectX 12, sa dernière version, est avec nous depuis 2014 et ne s'est pas arrêté et a reçu il y a quelques mois d'importantes améliorations telles que le sous-programme Direct Ray Tracing (DXR) qui était inclus dans la version de mise à jour d'octobre 1809 de Windows 10.

Les API de bas niveau comme DirectX 12 ont un avantage fondamental, qui est la réduction de la surcharge du pilote. Les programmeurs sont désormais habilités à concevoir le comportement du GPU dans leurs programmes et peuvent mieux gérer les ressources du GPU, notamment en tirant parti de la parallélisation des processus. Cela inclut une meilleure prise en charge de plusieurs GPU dans un même système et même s'ils ne proviennent pas du même fabricant.

Ils peuvent exécuter différents types d'opérations, généralement "entières" ou "virgule flottante", profitant des capacités des graphiques compatibles et divisant également les opérations complexes en opérations plus simples en les traitant en parallèle sur ces bus plus gros. Un bon exemple est la façon dont AMD ou Nvidia peuvent désormais traiter des opérations 16 bits sur leurs bus 32 bits, améliorant considérablement l'efficacité de leurs graphiques.

Cette API a rapproché l'efficacité d'utilisation d'un GPU de console, où les développeurs connaissent parfaitement le matériel disponible, jusqu'à l'écosystème hétérogène qui forme un PC avec des possibilités matérielles infiniment différentes.

Actuellement, DirectX 12 est disponible, par surprise, pour Windows 7 et Windows 10 et bien qu'il ne soit pas directement compatible avec Xbox One, la vérité est que pratiquement 90% de ses fonctionnalités sont utilisées pour PC, les différences sont minimes et cela a permis les développeurs adaptent rapidement leurs jeux PC pour Xbox One et vice versa.

Vulkan de Khronos

Vulkan est l'évolution de l' API de bas niveau d' OpenGL et est pris en charge par Khronos Corporation. Dans le monde du PC, ils ont un rôle secondaire sur DirectX 12 mais ses différentes adaptations à différentes plates-formes, comme Android, en ont fait une référence en matière de graphisme pour la mobilité. Il est également compatible avec Linux étant la grande alternative du jeu dans les systèmes libres.

Sa grande vertu est sa grande capacité de traitement parallèle, étant extrêmement efficace dans les processeurs et GPU modernes, réalisant de faibles utilisations des premiers et une grande utilisation du matériel des seconds. Il est spécialement conçu pour tirer parti des processeurs multicœurs réalisant une excellente répartition de la charge dans ce type de processeurs, en fait, il est tellement plus efficace pour le plus de cœurs que nous pouvons fournir.

L' histoire de Vulkan remonte à un an après que DirectX 12 et Khronos, qui est une société à but non lucratif, l'entretiennent aussi souvent ou plus fréquemment que Microsoft avec sa propre API. Il est basé sur l'API Mantle qu'AMD a développé pour son architecture GCN et qui était une autre API de bas niveau pour un «pilote de surcharge» réduit. AMD a fait don de ses développements à Khronos et ce sont les fondements de l'une des meilleures API graphiques du marché.

En plus d'une parallélisation supérieure, cette conception permet également d'éliminer la précompilation des opérations d'ombrage sur le GPU, pouvant avoir plus d'effets et à l'écran avec une vitesse de chargement plus élevée, en plus d'un ajustement plus détaillé de la façon dont le matériel traite les opérations ou de la façon dont nous accédons au tampon de trame disponible. C'est sûrement l'API pour PC la plus proche du matériel lui-même, encore mieux que DirectX 12.

Vulkan introduit également des améliorations d'API de bas niveau sur Android et d'autres plateformes.

Sa dernière version, Vulkan 1.1, introduite fin 2018 ajoute des améliorations importantes telles que la prise en charge HLSL, qui est l'alternative de DirectX 12 à la gestion des opérations de shader sans avoir besoin de précompilation, une meilleure compatibilité avec DirectX 12 (à ses nombreux sous-programmes en dehors des graphiques), prise en charge explicite des systèmes multi-GPU quel que soit le fabricant et, bien sûr, prise en charge de RayTracing.

Forces et faiblesses de DirectX 12 vs Vulkan

En plus des fonctionnalités communes déjà décrites, telles qu'une meilleure utilisation du matériel, un meilleur contrôle de celui-ci et une meilleure utilisation de la parallélisation du GPU et du CPU, ces deux API ajoutent également la possibilité d'effectuer des opérations de calcul générales avec des puces graphiques avec qui sont compatibles. Cela permet aux moteurs graphiques compatibles, plusieurs générations déjà, de pouvoir effectuer des opérations mathématiques complexes exploitables par des programmes de toutes sortes, y compris ceux sans composants graphiques.

Dans les jeux, ils peuvent également être utilisés pour des opérations secondaires de plus en plus importantes telles que le calcul de la physique réaliste, l'intelligence artificielle, les effets sonores de position, etc.

Les deux API bénéficient d'un grand soutien des grands graphismes, AMD et Nvidia s'efforcent d'offrir à ces API les pilotes appropriés pour atteindre à la fois offrir à leurs utilisateurs les dernières améliorations et renforcer les performances et la stabilité des jeux qui en utilisent un ou une autre API.

La «surcharge des pilotes» des deux est très faible, en fait, comme vous le verrez dans nos tests, il n'y a pratiquement aucune différence entre eux, ce qui est également un signe de l'optimisation importante des pilotes des deux fabricants.

Nous avons limité le framerate à 120FPS pour une démo de Driver Overhead. Dans Dota 2, la consommation du processeur est considérablement réduite avec le même FPS.

La seule différence plus évidente est que Vulkan a un peu moins de dépendance vis-à-vis du CPU, avec une consommation moyenne inférieure et qu'il est également beaucoup plus ouvert à différentes plates-formes, y compris Windows et Linux et son homogénéisation avec OpenGL ES, qui est sa version mobile, il est en train d'unifier davantage les plates-formes sur lesquelles il évolue.

DirectX 12 a en sa faveur la grande acceptation des développeurs, qui semblent trouver dans cette API l'écosystème parfait pour réduire leurs coûts puisqu'il a même une grande intégration dans des frameworks aussi répandus que le.NET Framework où il intègre mille merveilles avec peu de perte de performances.

Différences de performances dans les jeux avec double API

Comme le mouvement est démontré par la marche, nous avons effectué des tests de performances dans différents jeux et benchmarks qui ont la capacité d'utiliser ces deux API pour l'exécution.

Test de frais généraux du pilote 3DMark. Il en résulte des millions de demandes, plus c'est mieux.

Cendres de la singulité. Résultats en FPS, plus c'est mieux.

Strange Brigade. Résultats en FPS, plus c'est mieux.

Nous résumons les meilleurs guides matériels qui devraient vous intéresser:

  • Meilleurs processeurs sur le marché Meilleures cartes mères sur le marché Meilleure mémoire RAM sur le marché Meilleures cartes graphiques sur le marché Meilleurs SSD sur le marché Meilleurs châssis ou boîtiers PC Meilleures alimentations Meilleures dissipateurs thermiques et refroidisseurs de liquide

Comme vous pouvez le constater, les résultats sont égaux et nous constatons des différences entre les programmes pour et contre l'un et l'autre. Cela nous laisse avec la question de savoir laquelle est la meilleure et la réponse est claire, cela dépend du programme et de la façon dont son développeur sait ou veut profiter de ses avantages. Il reste à penser que dans chaque jeu, les développeurs utiliseront précisément l'API qui tire le meilleur parti des avantages de nos graphismes, bien qu'il soit clair que les deux options semblent plus que compétentes. Que pensez-vous de notre article sur Directx 12 vs Vulkan ? Nous voulons connaître votre opinion!

Tutoriels

Le choix des éditeurs

Back to top button