Supporto del sistema e del driver per la barra resizable
È tipico oggi per un'unità di elaborazione grafica discreta (GPU) avere solo una piccola parte del suo buffer di frame esposto sul bus PCI. Per la compatibilità con I/O a 32 bit, le GPU discrete in genere dichiarano un'area di I/O di 256 MB per i buffer frame e si tratta di come vengono configurati in genere i firmware tipici.
Nelle GPU che supportano un registro indirizzi di base ridimensionabile (BAR), Windows rinegozia le dimensioni della barra della GPU dopo l'inizializzazione del firmware in Windows Display Driver Model (WDDM) v2 e versioni successive. Per altre informazioni sulla barra ridimensionabile, vedere la specifica Funzionalità BAR resizable nella libreria delle specifiche DI PCI SIG.
Una GPU che supporta il ridimensionamento BAR deve garantire che possa mantenere la visualizzazione e visualizzare un'immagine statica durante la riprogrammazione della BARRA. La visualizzazione non deve essere vuota e quindi eseguire il backup durante questo processo. È importante avere una transizione uniforme tra l'immagine visualizzata dal firmware, l'immagine del caricatore di avvio e la prima immagine generata dal driver in modalità kernel. Si noti che non si verificherà alcuna transazione PCI verso la GPU mentre si sta verificando la rinegoziazione.
Questa rinegoziazione è principalmente invisibile al driver in modalità kernel. Quando la rinegoziazione ha esito positivo, il driver in modalità kernel osserverà che la BARRA della GPU è stata ridimensionata alla dimensione massima per esporre l'intera VRAM della GPU discreta.
Al termine del ridimensionamento, il driver in modalità kernel deve esporre un singolo segmento di memoria CPUVisible alla gestione memoria video. La gestione memoria video esegue il mapping degli indirizzi virtuali della CPU direttamente a questo intervallo quando la CPU deve accedere al contenuto del segmento di memoria.