Glossaire Direct3D 12

Ces termes sont distincts de Direct3D 12.

Contraignant

Processus d’attachement de la mémoire au pipeline graphique. La liaison de ressources, par exemple, implique la liaison d’une ressource telle qu’une texture au pipeline, pour une utilisation dans le rendu d’un objet.

Tampon

Type de ressource D3D synonyme d’une allocation de mémoire contiguë.

Paquet

Mémoire tampon de commandes que l’unité de traitement graphique (GPU) peut exécuter directement uniquement via une liste de commandes directes. Un bundle hérite de tout l’état GPU (à l’exception de l’objet d’état du pipeline et de la topologie primitive actuellement définis).

allocateur de commande

Allocations de mémoire sous-jacentes dans lesquelles les commandes GPU sont stockées. L’objet d’allocation de commande s’applique à la fois aux listes de commandes directes et aux bundles.

liste de commandes

Une liste de commandes correspond à un ensemble de commandes que le GPU exécute. Celles-ci incluent des commandes telles que pour définir l’état, dessiner, effacer et copier. L’interface de liste de commandes D3D12 est sensiblement différente de l’interface de liste de commandes D3D11. L’interface de liste de commandes D3D12 contient des API similaires aux API de rendu du contexte d’appareil D3D11.

Une liste de commandes D3D12 ne mappe pas les ressources, ne modifie pas les mappages de vignettes, redimensionne des pools de vignettes, obtient des données de requête et n’envoie jamais implicitement des commandes au GPU pour exécution.

Contrairement aux contextes différés D3D11, les listes de commandes D3D12 ne prennent en charge que deux niveaux d’indirection. Une liste de commandes directes correspond à une mémoire tampon de commandes que le GPU peut exécuter. Un bundle peut être exécuté directement via une liste de commandes directes.

Une liste de commandes directes n’hérite d’aucun état GPU. Un bundle hérite de tout l’état GPU (à l’exception de l’objet d’état du pipeline et de la topologie primitive actuellement définis).

La mémoire d’une liste de commandes est définie par l’allocateur de commandes. L’objectif des listes de commandes est qu’elles peuvent être envoyées à un GPU en tant que requête de rendu unique.

file d’attente de commandes

Une file d’attente de commandes répertorie les listes que le GPU exécute successivement. Les applications doivent explicitement envoyer des listes de commandes à une file d’attente de commandes pour exécution. Il existe généralement trois files d’attente de commandes : graphiques 3D, calcul et copie, correspondant au pipeline graphique 3D, au moteur de calcul et à un ou plusieurs moteurs de copie, sur le GPU.

rastérisation conservatrice

La rastérisation conservatrice est un mode de fonctionnement pour l’étape de rastériseur du pipeline graphique Direct3D. Il désactive la rastérisation basée sur l’exemple standard et rastérise à la place un pixel couvert par une primitive. Une distinction importante est que, bien que toute couverture produise un pixel rastérisé, cette couverture ne peut pas être caractérisée par le matériel, de sorte que la couverture apparaît toujours binaire à un nuanceur de pixels : entièrement couverte ou non couverte. Il est laissé au code du nuanceur de pixels de déterminer analytiquement la couverture réelle.

La rastérisation conservatrice peut aider à résoudre des problèmes tels que la détection des collisions et des coups, le binning et l’élimination de l’occlusion, où la couleur d’un pixel est plus certaine et les cas de bord peuvent être éliminés. Voir Rastérisation conservatrice.

Affichage de la mémoire tampon constante (CBV)

Les mémoires tampons constantes contiennent des données constantes du nuanceur, telles qu’une vue de caméra, des matrices de projection et des matrices mondiales. Une « vue de mémoire tampon constante » est la vue spécifique au format de la mémoire tampon, telle qu’elle est vue par le pipeline graphique.

tas par défaut

Segment de mémoire en mode utilisateur qui se concentre sur la prise en charge des types de ressources GPU persistants, y compris les ressources écrites par GPU.

Descripteur

Les descripteurs sont l’unité principale de liaison pour une ressource unique dans D3D12. Un descripteur est un bloc de données relativement petit qui décrit entièrement un objet au GPU, dans un format spécifique au GPU. Il existe de nombreux types de descripteurs différents : les vues de ressources du nuanceur (SRV), les vues d’accès non ordonnées (UAV), les vues de mémoire tampon constante (CBV) et les exemples sont quelques exemples.

tas de descripteur

Un tas de descripteurs est une collection d’allocations contiguës de descripteurs, une allocation pour chaque descripteur. Le point principal d’un tas de descripteurs est d’englober la majeure partie de l’allocation de mémoire requise pour stocker les spécifications de descripteur des types d’objets que les nuanceurs référencent pour une fenêtre de rendu aussi grande que possible (idéalement un cadre entier de rendu ou plus).

table de descripteur

Une table de descripteur est logiquement un tableau de descripteurs. Chaque table de descripteur stocke des descripteurs d’un ou plusieurs types, y compris les SSR, uaVe, cbV et samplers. Une table de descripteur n’est pas une allocation de mémoire, il s’agit simplement d’un décalage et d’une longueur dans un tas de descripteur.

direct command list

Mémoire tampon de commandes que le GPU peut exécuter. Une liste de commandes directes n’hérite d’aucun état GPU.

Clôture

Mécanisme permettant de synchroniser le GPU et le processeur. Le GPU et le processeur peuvent être invités à attendre à une clôture, en attendant que l’autre processeur se rattrape. Consultez Synchronisation multi-moteur.

danger, suivi des risques

Un danger se produit lorsqu’une ressource a été utilisée à une fin et que l’application a l’intention de la réutiliser à d’autres fins. Pour pouvoir réutiliser la ressource, les caches intermédiaires doivent être vidés ou invalidés, les exigences de compression doivent être cohérentes avec la deuxième utilisation, et la ressource doit être dans l’état requis pour éviter de lire la ressource une fois qu’elle a été écrite et invalidée dans le but prévu.

Le processus de gestion des ressources et d’évitement de ces problèmes de synchronisation est appelé suivi des risques. S’il n’y a pas de suivi des risques par le conducteur, l’application en est responsable. Dans la plupart des versions antérieures de DirectX, le suivi des risques était géré par le conducteur. Pour améliorer les performances, des méthodes sans suivi des risques sont disponibles dans DirectX 12.

Langage HLSL (High-Level Shader Language)

Langage informatique, similaire mais distinct à bien des égards de C, qui est utilisé pour écrire du code de nuanceur. Les nuanceurs de vertex, de pixels, de géométrie, de calcul, de domaine et de coque sont tous écrits à l’aide de HLSL. Un compilateur convertit la source HLSL dans un format binaire que le GPU peut utiliser.

multiengine

Les différentes instances et types de moteurs dans un gpu unique. Les types de moteurs sont les suivants : graphiques, calcul et copie.

MultiGPU

Configuration matérielle dans laquelle il existe plusieurs cartes graphiques. Les adaptateurs distincts sont parfois appelés nœuds. Le fait d’avoir plusieurs GPU peut rendre la tâche de les synchroniser avec le processeur, et les uns avec les autres, beaucoup plus complexe qu’avec un seul GPU.

Objet État du pipeline (PSO)

Une partie importante de l’état du GPU. Cet état inclut tous les nuanceurs actuellement définis et certains objets d’état à fonction fixe. La seule façon de modifier les états contenus dans l’objet pipeline consiste à modifier l’objet pipeline actuellement lié.

Prédication

La prédication est une fonctionnalité qui permet au GPU plutôt qu’au processeur de déterminer de ne pas dessiner, copier ou distribuer un objet. Par exemple, si un cadre englobant d’un objet est totalement obstrué par un autre objet ou si une perspective a réduit l’objet à une taille inférieure à celle d’un pixel, il peut être inutile de tenter de dessiner l’objet masqué. Consultez Prédication.

Affichage de l’ordre du rastériseur (ROV)

Les pipelines graphiques standard peuvent avoir des difficultés à composer correctement plusieurs textures qui contiennent de la transparence. Les objets tels que les clôtures métalliques, la fumée, le feu, la végétation et le verre coloré utilisent la transparence pour obtenir l’effet souhaité. Des problèmes surviennent lorsque plusieurs textures qui contiennent de la transparence sont alignées les unes avec les autres (fumée devant une clôture devant un bâtiment en verre contenant de la végétation, par exemple). Les vues ordonnées de rastériseur (ROV) permettent aux algorithmes oit (Order Independent Transparency) sous-jacents d’utiliser les fonctionnalités du matériel pour tenter de résoudre correctement l’ordre de transparence. La transparence est gérée par le nuanceur de pixels.

Les vues triées par rastériseur (ROV) permettent au code du nuanceur de pixels de marquer les liaisons de vue d’accès non ordonnée (UAV) avec une déclaration qui modifie les exigences normales pour l’ordre des résultats du pipeline graphique pour les UAV.

tas de lecture différée

Tas en mode utilisateur qui se concentre sur le transfert de données du GPU vers le processeur.

Ressource

Entité qui fournit des données au pipeline et définit ce qui est rendu pendant votre scène. Les ressources peuvent être chargées à partir de votre média de jeu ou créées dynamiquement au moment de l’exécution. En règle générale, les ressources incluent des données de texture, des données de vertex et des données de nuanceur. La plupart des applications Direct3D créent et détruisent des ressources en grande partie tout au long de leur durée de vie.

barrière de ressources

Un obstacle aux ressources avertit le pilote que la synchronisation de plusieurs accès à une seule ressource peut être nécessaire, par exemple, la lecture et l’écriture dans la même texture.

liaison de ressources

La liaison de ressources est le processus de liaison de ressources (textures, mémoires tampons de vertex, mémoires tampons d’index, etc.) au pipeline graphique, ce qui permet aux nuanceurs du pipeline de traiter la ressource appropriée.

tas de ressources

Les tas de ressources sont un terme générique pour les tas qui sont des mémoires tampons mises de côté pour contenir les ressources à mesure qu’elles sont transférées vers et depuis le GPU. Un transfert vers le GPU nécessite un tas de chargement, du GPU vers le processeur nécessite un tas de lecture différée, et un tas persistant que le GPU doit gérer sur plusieurs trames de rendu est appelé tas par défaut.

signature racine

Les signatures racines définissent toutes les ressources qui doivent être liées aux pipelines graphiques ou de calcul. Une signature racine est configurée par l’application et lie les listes de commandes aux ressources dont les nuanceurs ont besoin En règle générale, il existe une signature graphique et une signature racine de calcul par application.

Sampler

Un échantillonneur est du code qui lit à partir d’une texture.

Vue des ressources du nuanceur (SRV)

Méthode spécifique au format pour examiner les données dans une ressource de nuanceur, telle qu’une texture.

tas statique

Tas en mode utilisateur qui se concentre sur plusieurs ressources GPU en lecture seule qui sont généralement utilisées en même temps et qui ne sont pas fréquemment modifiées.

permutation de la chaîne

Les chaînes d’échange contrôlent la rotation de la mémoire tampon d’arrière-plan, formant la base de l’animation graphique. Les chaînes d’échange sont gérées par l’ensemble d’API de bas niveau DXGI (voir Vue d’ensemble de DXGI).

swizzle

Technique consistant à localiser des données multidimensionnelles en mémoire de telle sorte que les données de dimensionnalité à proximité tendent à avoir des adresses proches. En particulier, toutes les données d’une ligne ne se trouvent pas contiguëment avant les données de la ligne suivante. Un « Swizzle paramétrable » décrit une façon standardisée de décrire les modèles swizzle.

Texture

Type de ressource D3D multidimensionnel et doté d’une disposition de mémoire optimisée pour l’accès multidimensionnel à partir du GPU. Les textures contiennent souvent l’image brute nécessaire au rendu sur une surface, avant l’éclairage et le mélange, mais elles peuvent contenir d’autres formes de données telles que les dégradés de couleurs et les couleurs de référence. Direct3D 12 prend en charge les textures à une, deux et trois dimensions.

Tuile

Page de mémoire vidéo, similaire à une page de mémoire processeur/système. La notation par vignette permet de distinguer le sous-système de mémoire virtuelle GPU du sous-système de mémoire virtuelle du processeur. Les GPU fournissent des fonctionnalités de mémoire virtuelle similaires à celles de la mémoire virtuelle système. Certains GPU ont des fonctionnalités de mémoire virtuelle partagées, qui permettent le partage de certaines pages du sous-système de mémoire virtuelle avec le processeur et le GPU.

ressources en mosaïque

Les ressources en mosaïque sont nécessaires afin de gaspiller moins de mémoire GPU pour stocker des régions de surfaces dont l’application sait qu’elles ne seront pas accessibles, et le matériel peut comprendre comment filtrer les vignettes adjacentes. Les ressources en mosaïque sont des ressources logiques volumineuses, mais nécessitant de petites quantités de mémoire physique.

Vue d’accès non ordonné (UAV)

Une vue d’accès non ordonnée dans une ressource (qui inclut des mémoires tampons, des textures et des tableaux de textures sans échantillonnage multiple), permet un accès en lecture/écriture non ordonné temporellement à partir de plusieurs threads. Cela signifie que ce type de ressource peut être lu/écrit simultanément par plusieurs threads sans générer de conflits de mémoire.

charger le tas

Segment de mémoire en mode utilisateur qui se concentre sur le transfert de données de l’UC vers le GPU.

segment de mémoire en mode utilisateur

Collection d’allocations de mémoire volumineuses et contiguës qui sont recyclées sans qu’aucun composant du noyau ne soit conscient : les méthodes d’allocation et de destruction n’appellent pas les méthodes d’allocation et de destruction du noyau pendant l’état stable. Les segments upload, Readback et Default sont des variantes des tas en mode utilisateur.

ressources en mosaïques de volume

Ressources tridimensionnelles en mosaïque.