NVIDIA FleX arrive dans Fallout 4 avec des effets de débris

Dans la préversion du prochain patch à venir de Fallout 4, un nouvel effet physique a été ajouté : les débris générés par la destruction d’objets par armes à feu. Au lieu de simplement présenter des trous dans le sol ou les façades, des morceaux de béton ou de bois se détacheront et voleront en l’air.

En y regardant de plus près, on peut remarquer que cet effet n’est pas, pour le moment, extrêmement réaliste, avec un nombre excessif de particules générées (faire exploser une chaise pourrait donner plus de débris que la chaise elle-même, par exemple). De plus, seules certaines parties du monde sont concernées par cet effet. Ces limitations sont principalement dues au fait que l’effet a été ajouté après coup et non lors du développement du jeu.

Du côté technique, l’effet utilise le nouveau solveur FleX de NVIDIA (dont la version 0.9.0 est disponible gratuitement), qui exploite les possibilités des processeurs graphiques pour effectuer les calculs sous-jacents ; cela signifie que cet effet ne sera disponible, pour le moment, que sur les GPU NVIDIA (il est prévu depuis les débuts de FleX de réaliser une version exploitant d’autres technologies, mais ces efforts n’ont pas encore vu le jour).

Cependant, ces résultats (préliminaires) sont d’ores et déjà encourageants, par exemple en comparaison de l’effet similaire implémenté dans Borderlands 2, qui utilise le solveur de PhysX (le moteur de physique généraliste de NVIDIA). Les calculs sont plus efficaces en temps, car les débris sont simulés comme de simples points matériels, sans considérer qu’il s’agit de véritables objets en trois dimensions. L’ensemble de leurs mouvements est donc simplifié : le moteur physique ne peut pas prévoir de rotation, un certain mouvement est donc préprogrammé ; les collisions avec les objets statiques sont très simplifiées… et complètement inexistantes avec les autres débris.

Au contraire, dans l’implémentation de Fallout 4, les débris ont une véritable extension spatiale pour la simulation physique : ils ont une forme tridimensionnelle et peuvent interagir entre eux. La différence est plus notable pour un empilement de débris : là où Borderlands 2 formait un simple tapis de débris, sans que l’un chevauche l’autre, Fallout 4 montre un empilement. Les calculs sont effectués dans un formalisme de corps rigides sur GPU et Fallout 4 en est l’une des premières applications ; du côté technique, le point noir actuel est le manque d’ombres.

Source et images : Fallout 4 beta patch adds Nvidia FLEX based particle debris effects.

AMD annonce sa prochaine architecture de GPU, dénommée Polaris

AMD tente depuis quelques mois de redorer son blason par la communication, avec un retour dans le monde du HPC suivi du projet GPUOpen. Faisant suite à des années de recherche et développement, le groupe vient d’annoncer sa nouvelle architecture pour les processeurs graphiques (principalement pour la gamme Radeon, puis pour les APU des séries A, C et E), dénommée Polaris.

Ce nom de code a été choisi en référence aux étoiles : l’étoile polaire (Polaris en latin) est la plus brillante de la constellation de la Petite Ourse. AMD indique que cette architecture proposera un saut historique en performance par watt consommé, tout comme les étoiles sont des processus extrêmement efficaces pour générer de la lumière. De fait, l’objectif affiché est de multiplier la performance par watt consommé par un facteur de deux et demi — là où NVIDIA propose un saut d’un facteur deux avec son architecture Pascal, sachant qu’ils partent de puces moins gourmandes qu’AMD.

Une affaire de FinFET

Ce saut est en bonne partie dû au changement de technologie pour la gravure des puces, c’est-à-dire leur réalisation effective à partir de silicium : la résolution de la lithographie sur le semiconducteur passe de vingt-huit nanomètres à quatorze et les transistors sont réalisés en trois dimensions plutôt que deux (FinFET). En d’autres termes, les transistors des nouveaux GPU seront beaucoup plus petits et consommeront moins d’énergie — et pourront fonctionner à une fréquence plus élevée. (Dans le même temps, NVIDIA fait le même changement de processus de fabrication.)

De plus, pour continuer à améliorer la performance et l’efficacité énergétique, AMD a implémenté une série de nouvelles fonctionnalités, comme un ordonnanceur de tâches au niveau du GPU (et non seulement pour le pilote du côté du système d’exploitation), la prélecture des instructions à effectuer ou encore la compression des données lues en mémoire. Cette prélecture est une fonctionnalité qui se trouve depuis longtemps dans les processeurs traditionnels (CPU) pour limiter les temps d’attente de la mémoire, mais relativement complexe à gérer ; elle arrive maintenant dans les processeurs graphiques (GPU), ce qui montre à quel point ces processeurs deviennent eux aussi extrêmement compliqués dans leur conception.

Beaucoup de nouveautés… pas encore vraiment divulguées

En réalité, cette gestion de la mémoire n’est qu’un des nouveaux éléments de cette nouvelle architecture : dans une description fonctionnelle de ces nouveaux GPU, énormément de blocs sont nouveaux ou fortement retravaillés, notamment avec un contrôleur mémoire plus costaud. Selon la gamme de prix, la mémoire embarquée devrait être de type GDDR5 (comme la plupart des GPU actuels) ou HBM (avec une bande passante supérieure).

De même, de nouvelles technologies devraient être incluses, comme DisplayPort 1.3 et HDMI 2.0a pour la connectique ou un codec H.265 (aussi connu comme HEVC) pouvant fonctionner à soixante images par seconde en résolution 4K, tant en encodage qu’en lecture. AMD aimerait également élargir le public utilisant des écrans à large gamut, avec une gestion native des couleurs codées sur dix bits (au lieu des huit habituels) — y compris pour le codec HEVC.

Cependant, AMD reste relativement silencieux quant aux détails de ces blocs, plus devant être révélé à proximité de la sortie effective de ces produits, prévue pour la mi-2016 (les plans de NVIDIA semblent indiquer que la concurrence sera rude à ce moment, leur architecture Pascal étant également prévue dans ces eaux-là).

Sources : AMD Announces Polaris, 2016 Radeon Graphics Architecture To Bring A Historic Leap In Perf/Watt With 14nm / 16nm FinFET Process, AMD Reveals Polaris GPU Architecture: 4th Gen GCN to Arrive In Mid-2016.

En réponse à GameWorks, AMD annonce GPUOpen

Depuis quelques années, NVIDIA a lancé sa suite de bibliothèques logicielles baptisée GameWorks. Elles sont spécifiquement prévues pour le jeu vidéo et donnent la possibilité aux développeurs d’intégrer aisément des effets, comme la simulation de poils en tout genre avec HairWorks ou encore d’herbe avec Turf Effects. La famille compte aussi GameWorks VR, qui promet d’importants gains en performance pour les jeux exploitant la réalité virtuelle.

NVIDIA met en avant l’optimisation effectuée sur ces implémentations et la facilité d’intégration, ce qui décharge les studios d’une bonne partie du travail… sauf qu’il semblerait que l’optimisation peut se faire au détriment d’AMD. L’exemple de Witcher 3 a montré que HairWorks exploitait un point fort du matériel vendu par NVIDIA, la tesselation — ce qui nuisait fortement à la performance sur les cartes AMD.

Une stratégie : l’ouverture

Justement, AMD prépare sa réponse à GameWorks sous le nom de GPUOpen, en arrêtant de se focaliser sur l’aspect matériel du jeu vidéo. La différence principale par rapport à GameWorks est la licence du code : là où les bibliothèques GameWorks sont disponibles gratuitement après enregistrement, sous une licence propriétaire peu restrictive (les sources sont disponibles sur demande sous licence), AMD envisage de proposer ses bibliothèques GPUOpen comme logiciels libres, sous licence MIT, distribués sur GitHub, dès janvier. Rien n’indique cependant que le développement aura bien lieu sur GitHub et que les contributions seront facilement acceptées (y compris les optimisations pour le matériel autre que celui d’AMD).

Cet élément n’est pas le premier de la stratégie actuelle de AMD. Peu auparavant, ils avaient annoncé une couche de compatibilité avec CUDA, la technologie propriétaire de calcul sur processeur graphique de NVIDIA. AMD a aussi lancé une nouvelle version de leurs pilotes pour carte graphique, dénommée Radeon Software Crimson Edition, qui a apporté un tout nouveau panneau de configuration, bien plus pratique à l’usage que le précédent, ainsi qu’une performance améliorée pour les jeux (bien qu’invisible sous Linux). Globalement, AMD essaye de rattraper son retard par rapport à ses concurrents du côté PC — malgré son omniprésence sur le marché des consoles.

Du contenu pour les jeux…

Dans les bibliothèques disponibles, une bonne partie du contenu sera tout à fait nouveau. Il y aura bien sûr TressFX, sa solution de simulation de cheveux, poils et brins d’herbe, dans la version 3.0. Elle était déjà disponible gratuitement, sources comprises, sur le site d’AMD — un mécanisme moins facile d’accès que GitHub. Également, AMD devrait rendre disponibles en janvier les bibliothèques GeometryFX (opérations géométriques ou simulation physique, selon les sources), ShadowFX pour les ombres et AOFX pour l’occultation ambiante. AMD inclura ses exemples de code, tant pour DirectX 11 et 12 qu’OpenGL.

Les bibliothèques proposées ne devraient pas seulement s’étendre du côté des effets pour des jeux vidéo, avec notamment LiquidVR pour la réalité virtuelle, le moteur de rendu par lancer de rayons FireRender et la bibliothèque de lancer de rayons FireRays, RapidFire pour le déploiement dans le nuage. Pour faciliter le développement, AMD devrait aussi fournir CodeXL pour l’analyse statique de code (y compris pour DirectX 12) et Tootle pour le prétraitement des maillages des modèles 3D à afficher afin d’améliorer la performance au rendu (même si le développement de cet outil a officiellement cessé en 2010).

… mais pas seulement !

GPUOpen ne profitera pas seulement au secteur du jeu vidéo, mais aussi pour le calcul de haute performance, l’initiative Boltzmann étant incluse sous ce nom, avec un nouveau compilateur HCC, un pilote pour Linux spécifiquement optimisé pour le calcul sur GPU ou encore HIP pour la compatibilité avec CUDA.

Ils participent aussi au projet Caffe, actif dans le domaine de l’apprentissage profond (technique notamment utilisée avec succès dans la vision par ordinateur), pour lequel ils optimisent une version OpenCL (sans indiquer d’avantage en performance par rapport à cuDNN, l’option de NVIDIA).

Du libre aussi pour Linux

Le dernier point mis en avant par AMD pour ce projet GPUOpen est la mise en place effective de leur architecture de pilote libre pour leurs cartes graphiques. La performance des pilotes actuellement fournis par AMD n’est pas optimale pour tous les types d’utilisation, étant parfois largement dépassés par l’implémentation complètement libre Radeon — les deux étant souvent décrits comme largement en deçà des attentes, notamment pour les machines Steam.

La nouvelle architecture, déjà annoncée l’année dernière, s’articule autour d’une partie libre — AMDGPU —, directement incluse dans le noyau Linux. Cette partie n’aura aucune implémentation des piles graphiques telles que OpenGL ou Vulkan — totalement inutiles dans les applications de calcul pur.

Ensuite, les implémentations libre et propriétaire pourront diverger pour tout ce qui concerne OpenGL, l’accélération du décodage de vidéos, OpenCL et HSA. L’implémentation propriétaire d’OpenCL et de Vulkan devrait être distribuée en libre dans le futur, un mouvement qui n’est pas encore prévu pour OpenGL. Les fonctionnalités spécifiques aux cartes professionnelles FirePro seront, bien évidemment, uniquement propriétaires, même si rien n’empêche l’implémentation libre de les fournir.

Ces suppléments au pilote noyau fonctionneront entièrement en espace utilisateur, ce qui devrait améliorer la sécurité de l’implémentation et diminuer le nombre de changements de contexte utilisateur-noyau.

Sources : présentation d’AMD, Direkte Kontrolle der Radeon-Hardware für Spieleentwickler, AMD Further Embraces Open Source with GPUOpen, for Games and Compute, AMD embraces open source to take on Nvidia’s GameWorks.

Merci à Claude Leloup pour ses corrections.

Unreal Engine 4 et NVIDIA GameWorks VR : d’impressionants gains de performance

Unreal Engine 4.10 vient avec un bon nombre d’améliorations de performance au niveau de la réalité virtuelle. Cependant, pour NVIDIA, il est encore possible d’aller plus loin en intégrant leur SDK prévu pour la réalité augmentée, GameWorks VR. En l’incluant dans UE 4, il serait possible d’obtenir cinquante pour cent d’images chaque seconde en plus.

Une des techniques implémentées est l’application de shaders à de multiples résolutions : le centre de l’image, là où se focalisent les yeux, fait l’objet d’un traitement plus poussé ; une résolution moindre est utilisée pour les zones périphériques. Cette optimisation se fait sans grand impact sur la qualité d’image, étant donné que les casques ont tendance à distordre les images au niveau de cette même périphérie. Dans la démo Reflection Subway, l’impact sur le nombre d’images par seconde est radical.

Selon NVIDIA, le plus grand problème pour que la réalité virtuelle devienne courante est vraiment la performance : leur objectif est une résolution Full HD (1080p, c’est-à-dire 1980 pixels par 1080) à trente images par seconde pour un jeu traditionnel, mais deux fois 1512 par 1680 à raison de nonante images par seconde en réalité virtuelle, ce qui fait un rapport de sept en nombre de pixels à émettre chaque seconde. (De nombreux joueurs sur PC préfèrent la cible de soixante images par seconde, ce qui réduit de moitié l’écart cité par NVIDIA.)

Par des améliorations au niveau logiciel (comme GameWorks VR) et matériel, ils prévoient d’atteindre un marché de cent trente millions d’ordinateurs prêts pour la réalité virtuelle en 2020 (par rapport à cinq millions actuellement) — bien évidemment en matériel GeForce —, de telle sorte que la réalité virtuelle devienne une partie intégrante de la vie quotidienne.

Actuellement, quelques jeux sont en cours de développement avec Unreal Engine et prévoient d’exploiter la réalité virtuelle. Par exemple, ADR1FT, une fiction interactive à la première qui suit un astronaute dans l’espace ; Loading Human, spécifiquement développé pour le matériel Oculus Rift, un jeu d’aventure, également dans l’espace ; EVE Valkyrie, un jeu multijoueur d’action et de tir, toujours en spatial.

Source : Get Ready: Unreal Engine 4 to Incorporate NVIDIA GameWorks VR (images), GameWorks VR To Be Included In Unreal Engine 4, Helps Getting Up To 50% More Performance.

Sortie de Unreal Engine 4.10

La nouvelle version de Unreal Engine est sortie, numérotée 4.10. Elle amène un bon nombre d’améliorations (dont cinquante-trois par la communauté). De manière générale, cette version améliore l’utilisation en réalité virtuelle (avec notamment des améliorations de performance spécifiques pour les casques de visualisation) et la compatibilité avec de nouvelles plateformes.

Effets sur plateformes mobiles

Les effets de réfraction sont maintenant disponibles sur les plateformes mobiles, en droite ligne de l’effet sur les autres plateformes : les shaders fonctionneront sans aucune modification, sur des téléphones récents, tant iOS qu’Android.

Également, un système de contrôle de la qualité des matériaux a fait son apparation. Il facilite la mise à disposition d’applications pour toute une gamme d’appareils, du plus haut de gamme au moins cher, en générant des versions de plus ou moins bonne qualité pour chaque shader, en désactivant des fonctionnalités pour augmenter la performance (au détriment de la qualité d’image). Le moteur pourra détecter de manière automatique un bon niveau par défaut pour les plateformes les plus populaires.

Réalité virtuelle

Les jeux exploitant la réalité virtuelle seront bien plus rapides à l’exécution avec cette nouvelle version grâce à des optimisations spécifiques à ces appareils. Pour limiter l’utilisation du GPU, elles portent sur les parties des maillages visibles et invisibles pour chaque Å“il, pour éviter de passer du temps sur des parties qui ne seront jamais affichées à cause des distorsions dues aux lentilles. Il s’agit d’une nouvelle passe dans le flux de rendu, qui désactive très vite ces parties en dehors du champ, la même chose étant effectuée pour le posttraitement. Dans la démo Bullet Train, sur un ordinateur de test, chaque trame prenait onze millisecondes de calcul : cette optimisation représente un gain d’un quart de milliseconde (un gain qui devrait être plus grand sur plateformes mobiles).

Plateformes

Unreal Engine fonctionne désormais avec Visual Studio 2015, ce qui permet de profiter des dernières fonctionnalités ajoutées dans le compilateur (principalement des normes C++11 et C++14, pas encore entièrement implémentées) — et qui continuent d’arriver par le biais de mises à jour régulières. Toutes les éditions sont compatibles, dès la version gratuite (Community), avec cependant quelques limitations pour la version Express (qui n’autorise pas les extensions, contrairement à la Community). La compatibilité avec Visual Studio 2013 sera retirée dans une version ultérieure, afin de profiter au mieux des dernières fonctionnalités du langage C++.

À peu près toutes les autres plateformes ont également eu droit à quelques mises à jour, notamment côté Oculus Rift (réalité virtuelle), mais aussi les consoles Xbox One et PlayStation 4 (avec une compatibilité avec la technologie PlayStation VR !). Bon nombre de défauts ont été corrigés pour Linux.

Source et images : Unreal Engine 4.10 Released!

Autodesk lance son propre moteur de jeux, Stingray

Peu après le rachat du moteur bitsquid l’année dernière, Autodesk lance une nouvelle raie dans le monde du jeu vidéo : son propre moteur de jeux Stingray. Cet éditeur de logiciels est d’ores et déjà fort connu pour 3ds Max et Maya, des logiciels de modélisation tridimensionnelle couramment utilisés dans le domaine du jeu vidéo ou le cinéma, moins pour ses autres produits pour le jeu vidéo, rassemblés sous l’étiquette Gameware (proposant de la recherche de chemins avec Navigation, de l’animation d’êtres humains en partant de la biomécanique avec HumanIK, des interfaces graphiques avec Scaleform et d’autres encore) — loin de l’hégémonie de Maya et 3ds Max. Dans un tout autre domaine, Autodesk édite également AutoCAD, un logiciel de dessin technique avec bon nombre de spécialisations.

Le public visé est celui des petits studios de développement, qui n’ont pas les moyens d’une grande équipe : l’objectif est de faciliter les modifications du jeu sans devoir programmer longtemps, dans une interface intuitive — tout en restant compétitif par rapport à d’autres moteurs comme Unreal Engine 4 en termes de fonctionnalités (posttraitement, shaders physiques, réflexions, etc.). Comme d’autres, il propose d’éditer les scripts de manière visuelle, en plus d’un éditeur de code (le langage utilisé étant Lua). Pour ceux qui voudraient plus, le code C++ du moteur est également disponible (à payer séparément).

Depuis bitsquid, la différence fondamentale semble être l’intégration profonde avec les autres logiciels d’Autodesk, en plus d’une refonte de l’interface. L’intégration porte non seulement sur les modeleurs 3D (Maya et 3ds Max), mais également sur les autres produits d’Autodesk (Beast, HumanIK, Scaleform, Navigation) et d’autres (NVIDIA PhysX pour la physique, Audiokinetic Wwise pour l’audio).

L’éditeur se base sur la notion de live link : toute modification effectuée, que ce soit dans un modèle 3D ou un shader, est directement visible, sans attente supplémentaire, sur n’importe quelle plateforme, grâce à une communication entre Stingray et l’appareil par WiFi.

Les jeux développés seront exportables vers différentes plateformes : côté fixe, uniquement Windows (pas d’OS X ou de Linux pour le moment) ; côté mobile, Android et iOS ; côté consoles, les actuelles Xbox One et PlayStation 4 ; en plus, le moteur est compatible la plateforme de réalité augmentée Oculus Rift.

http://on.aol.com/video/stingray-live-link-to-ios-518985101

Le moteur sera disponible dès le 19 août, disponible avec Maya LT (la version du modeleur prévue pour les studios indépendants) pour trente dollars mensuels (le prix actuel pour Maya LT, sans moteur de jeu inclus). D’autres souscriptions devraient être disponibles dans un second temps. En comparaison, Unreal Engine 4 est disponible entièrement gratuitement (mais avec des redevances de cinq pour cent dès que les revenus dépassent un certain seuil) ; de même, une version basique d’Unity est disponible gratuitement.

Sources : Autodesk Finally Releases its Own Game Engine, Capable of Incredibly Stunning Visuals, Autodesk targets small studios with its Stingray game engine, le site officiel.

NVIDIA HairWorks 1.1, jusqu’à un demi million de cheveux

Il y a un an et demi, NVIDIA présentait HairWorks, sa solution pour la simulation de poils en tout genre. La version 1.1 apporte quelques nouveautés à cette bibliothèque, principalement concernant les cheveux longs, avec des outils pour leur conception en temps réel, leur rendu et leur simulation, avec des résultats très variés. Ci-dessous, quelques exemples livrés avec HairWorks.


NVIDIA en a également profité pour réaliser une vidéo de démonstration, avec cinq cent mille cheveux simulés en temps réel sur une seule carte GTX 980. Les vidéos précédentes faisaient état de vingt mille cheveux, ce qui montre une belle évolution, tant au niveau des processeurs graphiques que du logiciel (bien que cette vidéo ne montre que les cheveux animés, pas une scène complète).

Cet outil fait appel à la tesselation, ce qui lui permet d’avoir un impact en mémoire très faible, même pour de très grands nombres de poils. Cette technique a cependant quelques effets pervers sur des GPU plus anciens ou d’une autre marque (AMD, pour ne pas la citer), la tesselation y fonctionnant nettement moins bien — ce qui a été à la source de problèmes de performance, par exemple pour The Witcher 3.

Pour ceux qui aimeraient tester cette nouvelle version, NVIDIA HairWorks est disponible gratuitement après inscription au programme GameWorks. Une intégration à Unreal Engine 4 est disponible également gratuitement en même temps que le moteur.

Sources : HairWorks 1.1 Release (images), NVIDIA HairWorks Version 1.1 Showcased with 500K Realistic Hair Rendered in Real-Time on a Single GTX 980.

Sortie de Unreal Engine 4.8, version focalisée sur la stabilité

Trois mois et demi après la précédente version, la nouvelle mouture d’Unreal Engine est disponible, numérotée 4.8. L’un des points majeurs de cette version est la stabilité de l’éditeur et des jeux, en prenant en compte la plupart des bogues courants et des plus petites demandes de fonctionnalité. L’éditeur et le moteur d’exécution devraient ainsi être plus solides. Notamment, le portage de l’éditeur vers Linux est bien avancé, même s’il ne sera pas possible de lancer des jeux.

Lire la suite

Controverse sur l’utilisation de NVIDIA GameWorks dans Witcher 3

NVIDIA GameWorks est l’ombrelle sous laquelle NVIDIA propose une série de technologies d’effets pour des jeux. Leur principal avantage est d’être déjà implémentés et optimisés par NVIDIA, les développeurs des jeux peuvent donc ajouter un surcroît de réalisme à leurs productions sans toutefois y passer des semaines ou des mois. Ce programme contient notamment leur moteur physique PhysX et les diverses extensions APEX (Clothing, Destruction, etc.), mais aussi des bibliothèques d’occlusion ambiante (HBAO+), d’illumination globale (GI Works), de rendu de visages (FaceWorks), de poils et de cheveux (HairWorks) ou d’océan (WaveWorks). Avant ce programme, NVIDIA proposait déjà ce genre d’effets, mais sous la forme de code à intégrer au jeu, pas comme bibliothèque externe, ce qui en limitait l’utilisation.

Cependant, ces outils peuvent poser question : ils ne sont accessibles qu’aux studios de développements (bien que certaines parties soient déjà intégrées à Unreal Engine 4 et que FleX est téléchargeable seul), leurs sources ne sont pas disponibles… y compris pour les fabricants de cartes graphiques concurrentes comme AMD ou Intel. Ainsi, ils ne peuvent pas optimiser ces bibliothèques pour leur matériel, contrairement à NVIDIA — une pratique courante dans l’industrie.

Le problème, dans le cas de Witcher 3, c’est que la performance du jeu décroît sensiblement en activant HairWorks sur des GPU sans caméléon. Un des développeurs précise :

Many of you have asked us if AMD Radeon GPUs would be able to run NVIDIA’s HairWorks technology – the answer is yes! However, unsatisfactory performance may be experienced as the code of this feature cannot be optimized for AMD products. Radeon users are encouraged to disable NVIDIA HairWorks if the performance is below expectations.

De même, Project Cars a tendance à nettement moins bien fonctionner sur du matériel AMD que NVIDIA. Il utilise des technologies GameWorks, contrairement à d’autres jeux du même genre qui ne souffrent pas d’un grand écart de performance ; notamment, la simulation physique des voitures utilise PhysX, qui peut utiliser les cartes NVIDIA pour une partie des calculs grâce à CUDA, contrairement aux cartes AMD — désactiver les calculs physiques sur GPU pour une carte NVIDIA donne également des problèmes de performance.

D’autres jeux utilisant la même technologie n’ont pas ce genre de problème, comme FarCry 4 : activer HairWorks diminue certes le nombre d’images par seconde d’une dizaine d’unités, mais indépendamment de la marque du GPU utilisé, tant sur du matériel NVIDIA que AMD (récent et de haut de gamme des deux côtés), selon Far Cry 4 Graphics Features Performance Review: Fur Performance.

Ces critiques ne sont pas récentes, mais ce n’est qu’en avril 2014 que NVIDIA a commencé à offrir des licences pour ces technologies incluant le code source, en fonction du degré de maturité du code, soit après les premières utilisations dans des jeux finalisés. Peu après, deux ingénieurs ont avoué que les développeurs de jeux utilisant GameWorks n’étaient pas autorisés à travailler avec AMD pour optimiser leur code (en juillet 2014).

La réponse de NVIDIA à ce sujet apporte des précisions intéressantes à ce sujet :

We are not asking game developers do anything unethical.

GameWorks improves the visual quality of games running on GeForce for our customers. It does not impair performance on competing hardware.

Demanding source code access to all our cool technology is an attempt to deflect their performance issues. Giving away your IP, your source code, is uncommon for anyone in the industry, including middleware providers and game developers. Most of the time we optimize games based on binary builds, not source code.

GameWorks licenses follow standard industry practice. GameWorks source code is provided to developers that request it under license, but they can’t redistribute our source code to anyone who does not have a license.

The bottom line is AMD’s tessellation performance is not very good and there is not a lot NVIDIA can/should do about it. Using DX11 tessellation has sound technical reasoning behind it, it helps to keep the GPU memory footprint small so multiple characters can use hair and fur at the same time.

I believe it is a resource issue. NVIDIA spent a lot of artist and engineering resources to help make Witcher 3 better. I would assume that AMD could have done the same thing because our agreements with developers don’t prevent them from working with other IHVs. (See also, Project Cars)

Elle est en tout cas appuyée par des faits vérifiés à l’extérieur : la performance en tessellation est bien meilleure chez NVIDIA qu’à la concurrence. Ces différences en performance seraient donc dus à une exploitation intensive de la part de NVIDIA des parties qu’ils savent bien fonctionner chez eux. Sciemment ou non, cela a eu des impacts négatifs sur le matériel AMD — sans interdire toute optimisation par AMD.

Sources : Nvidia Responds To Witcher 3 GameWorks Controversy, PC Gamers On The Offensive, message de Marcin Momot, message de 007sk2, Far Cry 4 Graphics Features Performance Review: Fur Performance, NVIDIA and AMD Fight over NVIDIA GameWorks Program: Devil in the Details, The NVIDIA GeForce GTX 980 Review: Maxwell Mark 2

PEEL, un outil de comparaison de moteurs physiques

NVIDIA avait développé un outil pour comparer les performances de différents moteurs physiques, notamment pour situer son moteur maison (PhysX) par rapport à la concurrence, mais aussi pour repérer les régressions en performances (certaines ont déjà été repérées pour PhysX 3.4 et sont en cours de correction). Il avait déjà été utilisé pour la sortie de PhysX 3.3. Cet outil, nommé PEEL, est maintenant disponible gratuitement pour tous, sources incluses (sous une licence zlib). Des binaires sont fournis pour Windows.

Une série de moteurs est déjà incluse dans la distribution : Newton (3.13, 3.9), Bullet (2.79, 2.81, 2.82) et PhysX (2.8.4, 3.1, 3.2, 3.3.0, 3.3.1, 3.3.2, 3.4). Les sources pour intégrer Havok (6.6.0, 2011.3.0, 2011.3.1, 2012.1.0, 2012.2.0, 2013.1.0) sont incluses, mais pas de source ou de binaire pour Havok lui-même, pour des raisons de licence.

Télécharger PEEL.

Source : http://physxinfo.com/news/12580/physics-engine-evaluation-lab-peel-is-released/.