Aperçu des nouvelles fonctionnalités de l'architecture Maxwell 2 de NVIDIA
Découvrez la seconde génération de l'architecture Maxwell

Le , par LittleWhite, Responsable 2D/3D/Jeux
NVIDIA vient de dévoiler la nouvelle version de l'architecture Maxwell pour ses cartes graphiques. La première puce embarquant Maxwell 2 est la GM204 et est disponible dans les cartes graphiques GeForce GTX 970 et GeForce GTX 980. Une des particularités de celle-ci est l'efficacité accrue de la puce et NVIDIA annonce un gain de deux en termes de performance par watt. De plus, elle est entièrement compatible avec CUDA 6.5.

Du côté du rendu, de nouvelles extensions OpenGL sont supportées et déjà présente dans le pilote r344. Vous pouvez les tester à travers le SDK proposé par NVIDIA.

Faisons donc un tour de ces nouveautés.

Target-independent multisampling control and mixed samples
(NV_framebuffer_mixed_samples et EXT_raster_multisample)

Le rasterizer peut maintenant agir à une fréquence plus élevée que le nombre d'échantillons dans le tampon de rendu des couleurs et cela, avec le support du test de profondeur et du stencil (si cette fréquence est un multiple du nombre d'échantillons du tampon de couleur). Toutefois, il reste quelques contraintes, notamment que tous les tampons de couleurs doivent avoir le même nombre d'échantillons et le nombre d'échantillon du raster doit correspondre au nombre d'échantillons du tampon de profondeur et de stencil (si ces tests sont activés) et doivent toujours être supérieurs ou égales au nombre d'échantillons du tampon de couleur.

De plus, une nouvelle étape de "réduction de la couverture" est ajoutée après le fragment shader (ajout dans les opérations par fragment), qui convertit un ensemble d'échantillon du raster/depth/stencil en un ensemble d'échantillons de couleurs couverts. La couverture de couleur réduite est calculée afin que le bit de couverture pour chaque échantillon de couleur soit 1, si chacun des bits associés dans la couverture du fragment est activé, sinon cela sera 0. Cette fonctionnalité peut être utilisée avec la fonctionnalité de couverture de couleur (expliquée ci-dessus) afin d'avoir un masque de couverture en sortie du fragment shader automatiquement transformé en une couleur par le ROP.

Coverage to color conversion
(NV_fragment_coverage_to_color)

Cela permet au ROP de convertir automatiquement le masque du test de couverture issue du depth/stencil/alpha en une couleur et de l'écrire dans la cible de rendu de couleur. Cette étape est effectuée avant le processus de réduction de la couverture. Cela peut être utile pour le deferred shading.

Post-depth coverage
(EXT_post_depth_coverage)

Cette extension permet au fragment shader d'obtenir le masque de couverture après le test de profondeur comme entrée dans le fragment actuel (gl_SampleMaskIn[]) lors d'un fonctionnement en mode test de profondeur précoce. Ce comportement est contraire au standard d'OpenGL 4.5 qui fournit la couverture avant le test de profondeur (couverture de triangle).

Multisample coverage override
(NV_sample_mask_override_coverage)

Le standard OpenGL indique que le masque de couverture en sortie du fragment shader (gl_SampleMask[]) doit être associé avec un ET logique avec le masque de couverture de la primitive. Cette extension désactive cette opération, permettant au fragment shader d'écraser complètement la couverture des primitives et potentiellement d'activer des bits qui n'étaient pas activés dans le masque d'entrée. Cela est très pratique, notamment car cela active un routage des valeurs de sortie des couleurs dans des échantillons précis dans une cible de rendu multi-échantillonnée.

Programmable sample locations
(NV_sample_locations)


Permet aux applications de définir explicitement la position de l'échantillon de sous-pixel pour la rasterization multi-échantillonnée, fournissant ainsi un pattern d'échantillonnage complètement programmable. Il semble que les positions sont toutefois contrainte à une grille de 16x16 et que le pattern d’échantillonnage ne peut être que défini dans une grille 2x2 des pixels adjacents.

Conservative rasterization
(NV_conservative_raster)


Permet à la rasterization de générer des fragments de n'importe quel pixel en contact avec un triangle, même si aucun échantillon n'est couvert dans ce pixel. Un nouveau contrôle est fournit pour modifier la précision de la fenêtre de capture afin de permettre à l'application de correspondre la capture conservatrice de la rasterization du triangle avec la capture qui aurait eu lieu à une plus haute résolution. Les polygones sans zone ne génère pas de fragments. N'importe quelle position dans un pixel peut être utilisée pour interpoler des attributs et potentiellement provoquer une extrapolation des attributs s'il se trouve hors d'un triangle.

Fragment Shader Interlock
(NV_fragment_shader_interlock)

Cette extension expose une section critique au niveau du matériel accélérateur dans le fragment shader permettant ainsi des opérations de lecture, modification et écriture sans risque sur une base du pixel. Cela permet de forcer l’ordonnancement des primitives dans les threads avant d'entrer dans une section critique. Pour cela, le GLSL accueille les nouvelle fonctions beginInvocationInterlockNV() et endInvocationInterlockNV() définissant la section critique qui ne sera exécutée que par un unique fragment à la fois. Ce verrou peut être effectué au niveau du pixel ou de l'échantillon si la rasterization multi-échantillonnée est utilisée. C'est pratique pour les algorithmes nécessitant un accès aux structures de données à travers des opérations de chargement et de sauvegarde au niveau du pixel.

Screen-space bounding-box rasterization
(NV_fill_rectangle)

Cela permet la rasterization de la boite englobante dans l'espace écran alignée aux axes des triangles envoyés, sans s'occuper des côtés des triangles. Cela peut être pratique pour l'affichage des interfaces utilisateur.

Geometry Shader Passthrough
(NV_geometry_shader_passthrough)

Permet d'écrite des geometry shader plus simple lorsqu'il y a une correspondance un à un des primitives d'entrée et de sortie. Les attributs par sommet sont simplement copiés de la primitive d'entrée vers les sorties correspondantes dans les sommets de la primitive de sortie. Le geometry shader est seulement utilisé pour définir des attributs par primitive (comme gl_Layer).

Enhanced sparse textures
(EXT_sparse_texture2)

Amélioration de ARB_sparse_texture qui sépare l'allocation de l'espace d'adresse virtuelle de l'espace mémoire physique pour les textures. Cette nouvelle extension ajoute la possibilité de récupérer les informations d'accès de la texture résidente dans le GLSL, de spécifier le niveau de détail minimum alloué aux accès aux textures et de retourner zéro pour les accès sur les pages non allouées. Finalement, le support des textures multi-échantillonnées a été ajouté.

Texture Filter min/max
(EXT_texture_filter_minmax)

Fournit un nouveau paramètre d'échantillonneur permettant d'effectuer une réduction min ou max des valeurs échantillonnées dans le filtrage de texture, au lieu de l'interpolation linéaire.

FP16 global atomics
(NV_shader_atomic_fp16_vector)

Cette extension fournit un nouvel ensemble d'opérations atomiques sur deux et quatre composants de vecteurs pour les images, les pointeurs sans liaisons à la mémoire globale et les tampons de stockage.

Votre opinion

Allez-vous acheter ces nouvelles cartes graphiques ?
Quelles sont les prochaines évolutions que vous attendez ?

Voir aussi

Série d'article sur le fonctionnement des cartes graphiques

Source

Billet de Cyril Crassin sur Icare3D


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de mintho carmo mintho carmo - Membre actif http://www.developpez.com
le 21/09/2014 à 13:05
Le titre de l'article n'est pas très bien choisit (le titre de l'article de Cyril est "Maxwell GM204 OpenGL extensions"), je m'attendais à un article sur l'architecture Maxwell 2, pas sur les extensions OpenGL NV_ (pour l'architecture de Maxwell 2, voir les 2 articles cités par Cyril : Maxwell: The Most Advanced CUDA GPU Ever Made et The NVIDIA GeForce GTX 980 Review: Maxwell Mark 2.

Sinon, article très intéressant.
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 21/09/2014 à 13:11
Oui, en effet.
Notez que ce ne sont pas que des extensions OpenGL, car certaines fonctionnalités peuvent tout de même être exposées dans Direct3D.
Avatar de TiranusKBX TiranusKBX - Membre expert http://www.developpez.com
le 22/09/2014 à 12:14

c'est trop dense en termes trop pointus pour que j'assimile la
Avatar de wax78 wax78 - Modérateur http://www.developpez.com
le 24/09/2014 à 15:19
Petite correction a faire dans la phrase : "Permet d'écrite des geometru shader plus simple"
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 24/09/2014 à 16:10
Corrigé
Merci.
Avatar de PilloBuenaGente PilloBuenaGente - Membre éclairé http://www.developpez.com
le 28/09/2014 à 22:29
Je me suis fait avoir avec la dx11, les jeunes technologies maintenant j'attends

La technologie présentée la plus impressionnante est pour moi le "Voxel Global Illumination"

Vous aviez (Monsieur Little White) mis un article parlant du raytracing, on s'en approche carrement

On va attendre gentiment voire comment les choses évolues, mais sans doute que d'ici deux / trois ans, des jeux seront full lumières dynamiques
Offres d'emploi IT
Architecte de données (H/F)
Société Générale - Ile de France - Ile de France
Chef de projet SI confirmé (H/F)
Société Générale - Ile de France - Val-de-Fontenay
Data scientist H/F
Safran - Ile de France - Magny-les-Hameaux (78114)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -