Prise en charge du système et du pilote pour la barre redimensionnable

Une unité de traitement graphique discrète (GPU) n’a généralement qu’une petite partie de sa mémoire tampon d’images exposée sur le bus PCI. Pour la compatibilité avec les systèmes d’exploitation 32 bits, les GPU discrets réclament généralement une région d’E/S de 256 Mo pour leurs mémoires tampons d’images. Cette valeur est utilisée pour la configuration par microprogramme standard.

Sur les GPU qui prennent en charge un registre d’adresses de base redimensionnable (BAR), Windows renégocie la taille de la barre 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 redimensionnable, consultez la spécification de fonctionnalité BAR redimensionnable dans la bibliothèque de spécifications PCI SIG.

Un GPU qui prend en charge la BAR redimensionnable doit s’assurer que l’affichage continue de montrer une image statique pendant le processus de reprogrammation de la BAR. L'affichage ne doit pas s'éteindre ni scintiller au cours de ce processus. Il est important d’avoir 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. Aucune transaction PCI ne se produit vers le GPU pendant la renégociation.

La renégociation est principalement invisible pour le pilote en mode noyau. Lorsque la renégociation réussit, le pilote en mode noyau observe que la barre GPU est redimensionnée à sa taille maximale pour exposer l’intégralité de la mémoire virtuelle du GPU discret.

Après un redimensionnement réussi, le pilote en mode noyau doit exposer un segment de mémoire unique CPUVisible au gestionnaire de mémoire vidéo. Le gestionnaire de mémoire vidéo associe les adresses virtuelles du CPU directement à cette plage lorsque le CPU doit accéder au contenu du segment de mémoire. Pour plus d’informations, consultez DXGK_SEGMENTFLAGS structure - Membre CPUVisible.