Partager via


Prise en charge du système et des pilotes pour la barre d’accès redimensionnable

Il est aujourd’hui courant qu’une unité de traitement graphique discrète (GPU) n’ait qu’une petite partie de sa mémoire tampon d’image exposée sur le bus PCI. Pour la compatibilité avec les systèmes d’exploitation 32 bits, les GPU discrets revendiquent généralement une région d’E/S de 256 Mo pour leurs mémoires tampons d’images et c’est ainsi que le microprogramme standard les configure.

Sur les GPU qui prennent en charge un registre d’adresses de base redimensionnable (BAR), Windows renégocie la taille de la barre d’adresses d’un GPU après l’initialisation du microprogramme dans le modèle WDDM (Windows Display Driver Model) v2 et versions ultérieures. Pour plus d’informations sur la barre d’outils bar redimensionnable, consultez la spécification de la fonctionnalité BAR redimensionnable dans la bibliothèque de spécifications PCI SIG.

Un GPU qui prend en charge la barre d’outils bar redimensionnable doit s’assurer qu’il peut conserver l’affichage et afficher une image statique pendant la reprogrammation de la barre d’outils. L’affichage ne doit pas être vide, puis sauvegarder pendant ce processus. Il est important d’assurer une transition fluide entre l’image affichée par le microprogramme, l’image du chargeur de démarrage et la première image générée par le pilote en mode noyau. Notez qu’aucune transaction PCI ne se produit vers le GPU pendant la renégociation.

Cette renégociation est essentiellement invisible pour le pilote en mode noyau. Une fois la renégociation réussie, le pilote en mode noyau observe que la barre d’accès du GPU a été redimensionnée à sa taille maximale pour exposer l’ensemble de la VRAM du GPU discret.

Une fois le redimensionnement réussi, le pilote en mode noyau doit exposer un seul segment de mémoire CPUVisible au gestionnaire de mémoire vidéo. Le gestionnaire de mémoire vidéo mappe les adresses virtuelles du processeur directement à cette plage lorsque le processeur doit accéder au contenu du segment de mémoire.