Partilhar via


Suporte de sistema e driver para barra redimensionável

Uma unidade de processamento gráfico (GPU) discreta geralmente tem apenas uma pequena parte do seu buffer de quadros exposta no barramento PCI. Para compatibilidade com sistemas operacionais de 32 bits, GPUs discretas geralmente reivindicam uma região de E/S de 256 MB para seus buffers de quadros. Esse valor é usado para configuração pelo firmware típico.

Em GPUs que suportam um registo de endereço base (BAR) redimensionável, o Windows renegocia o tamanho do BAR de uma GPU após a inicialização do firmware no Windows Display Driver Model (WDDM) v2 e posterior. Para obter mais informações sobre barra redimensionável, consulte a especificação de capacidade de barra redimensionável na Biblioteca de especificações PCI SIG.

Uma GPU que suporte BAR redimensionável deve garantir que a tela continue a mostrar uma imagem estática durante o processo de reprogramação da BAR. O ecrã não deve ficar em branco ou cintilar durante este processo. É importante ter uma transição suave entre a imagem exibida pelo firmware, a imagem do carregador de inicialização e a primeira imagem gerada pelo driver de modo kernel. Nenhuma transação PCI ocorre em direção à GPU enquanto a renegociação está ocorrendo.

A renegociação é principalmente invisível para o driver de modo kernel. Quando a renegociação é bem-sucedida, o driver de modo kernel observa que a barra da GPU é redimensionada para seu tamanho máximo para expor toda a VRAM da GPU discreta.

Após um redimensionamento bem-sucedido, o driver de modo kernel deve expor um único CPUVisible segmento de memória para o gerenciador de memória de vídeo. O gestor de memória de vídeo mapeia endereços virtuais da CPU diretamente para esta gama quando a CPU precisa acessar o conteúdo do segmento de memória. Para obter mais informações, consulte a estrutura DXGK_SEGMENTFLAGS - membro CPUVisible.