Microsoft introduit le Variable Rate Shading dans DirectX 12

Microsoft introduit le Variable Rate Shading dans DirectX 12

VRS pour tous !

Avatar de l'auteur
David Legrand

Publié dans

Hardware

19/03/2019 4 minutes
2

Microsoft introduit le Variable Rate Shading dans DirectX 12

Les solutions permettant de trouver un meilleur équilibre entre qualité d'image et performance des GPU ne manquent pas. Mais Microsoft ajoute une nouvelle corde à l'arc de DirectX 12 avec le Variable Rate Shading, qui pourra ainsi être exploité plus largement.

Lors de l'annonce de son architecture Turing, NVIDIA a principalement axé sa communication sur l'arrivée du ray tracing. Mais bien d'autres nouveautés intéressantes étaient au programme, de l'amélioration de l'efficacité de l'architecture en passant par le Mesh Shading ou le Variable Rate Shading (VRS).

Cette dernière, regroupant en réalité plusieurs solutions pouvant être exploitées par les développeurs, doit être adoptée par d'autres. Intel en parle effectivement pour sa Gen11 devant être dévoilée demain. AMD n'a par contre encore rien dit pour Navi. De quoi inciter Microsoft à standardiser tout ça avec DirectX 12.

Adapter la répartition de l'effort à l'image

Comme tous les acteurs, le géant de Redmond y voit un intérêt principal : la performance. « Dans l'image ci-dessous, une partie bénéficie d'un rendu 14 % plus rapide sur la même machine, pouvez-vous voir la différence ? » demande l'éditeur, affichant une scène de Civilization VI. Un brevet a d'ailleurs été déposé en ce sens dès 2016.

De manière générale, l'idée derrière le variable shading est d'adapter l'utilisation du GPU de manière plus fine. Plutôt que de répartir de manière égale toute la puissance de calcul sur l'ensemble de la scène, certaines zones peuvent être traitées en priorité. Ou tout du moins, bénéficier d'une attention particulière.

Ainsi, le VRS permet au développeur de définir des portions de l'image où le shading rate sera plus ou moins important. Les shaders y seront appliqués, non pas de manière plus ou moins récurrente, mais plus ou moins régulière. De quoi permettre de mieux équilibrer les performances en fonction des besoins.

Lors de la présentation de Turing, NVIDIA évoquait différents cas : réduire le shading rate là où l'image évolue peu, les éléments en mouvement ou éloignés du focus de l'utilisateur. Bref, se concentrer sur le plus visible, où l'œil de l'utilisateur aura tendance à se tourner, plutôt que sur des zones annexes nécessitant moins de précision.

NVIDIA Turing Variable Rate Shading VRSNVIDIA Turing Variable Rate Shading VRS

Différentes méthodes pour les développeurs

Microsoft précise que l'API mise en place pour la gestion de VRS et la définition du shading rate permettra une gestion par draw (Tier 1 et 2), ou au sein d'un draw (Tier 2) : par primitive ou via une image de référence. Des solutions qui peuvent être combinées. Selon les cas, les GPU DirectX 12 pourront gérer l'une ou l'autre de ces possibilités. 

Firaxis a par exemple travaillé à intégrer un support Tier 1 et Tier 2 dans Civilization VI, des tests ayant été menés sur une GeForce RTX 2060 en 4K. Avec la première implémentation (Tier 1), l'eau et le terrain ont été définis avec un shading rate de 2x2, contre 1x1 pour les plus petits éléments (bâtiments, véhicules, interface).

Le gain relevé est d'environ 20 % sur l'image affichée permettant de passer la barre des 60 fps (53 fps au départ). Mais si l'on est attentif (voir l'image), on note une dégradation nette de la qualité d'image sur certains éléments, comme la délimitation des frontières par exemple. 

Avec l'intégration Tier 2, l'objectif était d'obtenir de meilleures performances, tout en améliorant le rendu final. Ici, c'est une image de référence qui est utilisée, avec un filtre permettant de détecter les zones à risque. On ne relève alors plus les mêmes soucis de qualité du rendu, les performances étant améliorées de 14 % :

DirectX 12 Variable Rate Shading VRSDirectX 12 Variable Rate Shading VRS

Vers une généralisation du VRS

Microsoft détaillera le fonctionnement de VRS lors d'une session à la GDC demain. PIX permettant aux développeurs de fouiner dans les appels relatifs à VRS. Pour le moment, seul Wolfenstein II : The New Colossus utilise cette technique sur les dernières GeForce (GTX 16, RTX 20) à travers l'Adaptative Content Shading.

Mais Microsoft promet que cela va s'accélérer avec le support via DirectX 12, plusieurs moteurs de jeux et éditeurs étant mentionnés : 343 Industries, Activision, Epic, MAssive Entertainment, Playground Games, Stardock, Ubisoft, Unity, etc.

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Adapter la répartition de l'effort à l'image

Différentes méthodes pour les développeurs

Vers une généralisation du VRS

Fermer

Commentaires (2)


Bon autant ne pas proposer le DXR a ma GTX960m fait sens (même si je pense que l’option devrait être accessible à tous) autant le VRS deviendra accessible à toutes les cartes DX12, c’est bien ça ?



(quote:40383:Pieryck A.)




De ce que j’en comprends oui, au moins en Tier 1. Mais il faudra attendre une annonce plus détaillée de MS là dessus et la communication des constructeurs concernant l’évolution de leurs pilotes pour en être sûr :chinois: