Paging delle risorse di memoria video

A differenza del modello di driver visualizzato di Microsoft Windows 2000, il modello di driver di visualizzazione di Windows Vista consente di creare più risorse di memoria video rispetto alla quantità totale di memoria video fisica disponibile, che vengono quindi visualizzati in e fuori memoria video in base alle esigenze. In altre parole, non tutte le risorse di memoria video si trovano contemporaneamente nella memoria video.

La GPU può avere più buffer DMA nella pipeline. Le risorse di memoria video a cui si fa riferimento questi buffer DMA attivi devono trovarsi in memoria video. Altre risorse di memoria video inattive possono essere visualizzate nella memoria di sistema.

Prima che l'utilità di pianificazione GPU possa chiamare la funzione DxgkDdiSubmitCommand del driver di visualizzazione per inviare un buffer DMA alla GPU, l'utilità di pianificazione deve assicurarsi che tutte le risorse di memoria video usate dal buffer DMA siano effettivamente presenti nella memoria video. Se alcune risorse non sono in memoria video, devono essere pageate dalla memoria di sistema. L'utilità di pianificazione GPU deve chiamare la gestione memoria video per trovare spazio nella memoria video per trasferire i dati delle risorse di memoria video necessari dalla memoria video alla memoria video. Quando la domanda di memoria video è elevata, l'utilità di pianificazione GPU deve chiamare la gestione memoria video per trasferire i dati delle risorse di memoria video inattive alla memoria di sistema per rendere disponibile i dati delle risorse di memoria video necessari. I buffer DMA speciali che contengono i comandi per il trasferimento dei dati tra video e memoria di sistema sono noti come buffer di paging. La gestione memoria video chiama la funzione DxgkDdiBuildPagingBuffer del driver di visualizzazione per creare buffer di paging a cui il driver scrive comandi di trasferimento dati specifici dell'hardware.