Partilhar via


Paginação de recursos de memória de vídeo

Ao contrário do Microsoft Windows 2000 Display Driver Model, o modelo de driver de vídeo do Windows Vista permite que mais recursos de memória de vídeo sejam criados do que a quantidade total de memória de vídeo física disponível, que são paginados dentro e fora da memória de vídeo conforme necessário. Em outras palavras, nem todos os recursos de memória de vídeo estão na memória de vídeo simultaneamente.

A GPU pode ter vários buffers DMA em seu pipeline. Os recursos de memória de vídeo que são referenciados por esses buffers DMA ativos devem estar na memória de vídeo. Outros recursos de memória de vídeo ociosos podem ser paginados para a memória do sistema.

Antes de o agendador da GPU poder chamar a função DxgkDdiSubmitCommand de do driver de miniporta de exibição para enviar um buffer DMA para a GPU, o agendador deve garantir que todos os recursos de memória de vídeo usados pelo buffer DMA estejam realmente na memória de vídeo. Se alguns recursos não estiverem na memória de vídeo, eles deverão ser paginados a partir da memória do sistema. O agendador da GPU deve chamar o gerenciador de memória de vídeo para encontrar espaço na memória de vídeo para transferir os dados de recursos de memória de vídeo necessários da memória do sistema para a memória de vídeo. Quando a demanda de memória de vídeo é alta, o agendador da GPU deve chamar o gerenciador de memória de vídeo para transferir dados de recursos de memória de vídeo ociosos para a memória do sistema para abrir espaço para os dados de recursos de memória de vídeo necessários. Os buffers DMA para fins especiais que contêm os comandos para transferir dados entre vídeo e memória do sistema são conhecidos como buffers de paginação. O gerenciador de memória de vídeo chama a função de DxgkDdiBuildPagingBuffer do driver de miniporta de vídeo para criar buffers de paginação nos quais o driver grava comandos de transferência de dados específicos de hardware.