Non je pense que c’est bien ce que je dis: la VRAM sert principalement à stocker les textures, avec un swap (paging) depuis le disque dur des textures inutilisées quand la mémoire est pleine.
Jacques, je vais me servir de cette phrase comme point de départ à cette petite explication de texte.
Alors déjà, dans la construction même de ta phrase tu mélanges des mécanismes de la CG et ceux de l'Opérating System (anciennement swap -> Fichier d'échange). Mais sur ce point, j'y reviendrai plus tard...
En avant propos, je voudrai préciser le terme "Texture".
En effet, ce terme sur la plupart des forums est mal utilisé. Il fait majoritairement référence au fichier qui est "
sensé" être plaquer sur une surface. Ce fichier, nous devrions l’appeler :
Fichier bitmap de texture.
Ce fichier
n'est pas la texture au sens informatique du terme!...
La '
vraie' texture, elle est créée dans le pipe-line graphique et n'a de vie que dans les mémoires de ton ordinateur. Malheureusement pour toi, comme tu as pris le texte sur un site de développeur... Et bien, lui, l'a utilisé à bon escient.
Texture paging is when textures are moved between the memory on your graphics card (VRAM) and the memory in your computer (“s'ystem memory”).
Donc, sa phrase est tout à fait exacte puisque pour être affichée une texture doit passer du
System Memory (RAM) à la
Video Memory (VRAM).
Petit rappel
Pour manipuler des données, un processeur doit avoir un espace mémoire vive adressable.
Donc le CPU a son System Memory (RAM) et le GPU a le pendant avec la Video Memory (VRAM).
Si l'on regarde de plus prêt, nous nous apercevons que nous avons deux systèmes identiques au niveau de leurs structures dans la même boite (CPU-RAM / GPU-VRAM) et bien séparés au niveau des espaces mémoires. Et comme les ingénieurs ont très bien fait les choses, ces deux systèmes aujourd'hui, travaillent de manières pratiquement "
indépendantes". Et OUI, ces deux ensembles travaillent de manière
as'ynchrone.
Pour en finir pour ce soir, tu remarqueras que je n'évoque pas les couches
DirectX, OpenGL/Vulcan. En effet, que ce soit l'une ou l'autre, elles font exactement la même chose à niveau équivalent.
Honnêtement la VRAM sur une machine est surtout utilisée (en dehors des échanges inter process entre cores, mais c’est marginal) pour stocker les textures à appliquer sur les objets du décor.
Ce d’autant plus qu’avec les textures haute résolution et l’environnent mapping des derniers jeux, on recrée en permanence un « cube « d’espace au tour de l’utilisateur afin de pouvoir gérer réflexions et autres effets. Et ça ça prend de l’espace même si la plupart du temps les textures sont compressées d’une manière ou d’une autre.
Jacques, je m’appuie sur tes écris (et, ce sera la dernière fois...) afin d'initier cette nouvelle partie de réponse, non pas pour te pointer du doigt mais simplement parce que tu as exprimé ce que beaucoup de personnes pensent sur les forums concernant les CG et plus largement comment tout cela travaille avec le logiciel qui lui donne à manger, sans oublier bien sûr l'OS dans tout ce merdier.
Comme cela va être plus long (Beaucoup plus long...) que prévu initialement, Windy si tu trouves que ce n'est pas l'emplacement adéquate, tu le translates et je m'adapte.
Commençons donc à nous poser la question :
Quelle est la fonction "primaire" d'une carte graphique en 2020?
Je précise vol'ontairement "
de nos jours" car celles-ci embarquent de plus en plus de fonctions au fil des générations successives.
En réponse,
vol'ontairement très simple :
- C'est de traiter des données dentrées qui sont dans un environnement 3 D afin de pourvoir restituer celles-ci sur des supports (devices) qui sont exclusivement en environnement 2D. (Les lunettes 3D, vu de la CG, sont considérés comme deux devices 2D.)
- Et, rajouter en prime une collection de traitements qui permettent d'améliorer le rendu visuel.
Donc, le plus simple c'est de se créer un exemple "fictif" (Nous ne ferons aucunes lignes de code...
) le plus simple possible et de voir ce qu'il se passe tout au long de la chaine de traitement du pipe-line graphique.
Comme nous sommes dans un espace 3D, il faut nous imaginer un espace tridimensionnel (XYZ), dans lequel nous voulons dessiner un triangle quelconque.
Pour cela, nous allons jeté 3 points au hasard dans cet espace et les relier entre eux.
Afin que cela soit plus joli, joli... Nous allons peindre cette surface dans une couleur quelconque (ex. : Rouge).
Réponse en cours d'écriture... Merci de ne pas intervenir.