Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para GPUs (unidades de processamento de elementos gráficos) discretas do sistema operacional de 32-bit, que não dão suporte a BAR redimensionável ou quando o redimensionamento do BAR de buffer de quadros falha, o WDDM v2 (Modelo de Driver de Exibição do Windows) oferecerá um mecanismo alternativo no qual a VRAM de uma GPU discreta pode ser acessada de forma eficiente. Para GPUs que oferecem suporte a um espaço de endereço BAR programável, uma nova funcionalidade de Abertura de Anfitrião da CPU é introduzida no WDDM v2 para abstrair essa funcionalidade.
Ao expor uma abertura de host de CPU, o driver do modo kernel preenche uma nova estrutura de limites de DXGK_CPUHOSTAPERTURE para cada segmento que dá suporte a uma abertura de host de CPU. Isso define o tamanho da abertura de host da CPU, isso permite ao driver reservar parte do BAR para fins internos. O tamanho da página é o mesmo que as páginas de GPU do segmento de memória.
O driver do modo kernel então expõe duas novas DDIs (interfaces de driver de dispositivo) para gerenciar o espaço de endereço BAR, em particular DxgkDdiMapCpuHostAperture e DxgkDdiUnmapCpuHostAperture.
A memória da tabela de páginas por trás da abertura do host da CPU é gerenciada pelo driver e configurada antecipadamente durante a inicialização do driver. Espera-se que DxgkDdiMapCpuHostAperture e DxgkDdiUnmapCpuHostAperture estejam operacionais imediatamente após a enumeração do segmento e sejam usados durante a inicialização do gerenciador de memória de vídeo para mapear o endereço virtual da CPU para o diretório de páginas e a tabela de páginas do processo de paginação do sistema durante a inicialização do adaptador.
Quando é necessário que a CPU acesse um segmento de memória, o gerenciador de memória de vídeo reserva páginas na Abertura do Host da CPU e mapeia as páginas do segmento de memória através dela. Isso é ilustrado abaixo.
Na configuração do adaptador de exibição vinculado, os detalhes são semelhantes, exceto pelo que segue.
- Alocações padrão ou LinkMirrored são sempre mapeadas para GPU0.
- A alocação LinkInstanced tem um intervalo de endereço virtual de AllocationSize*NumberOfGPUInLink associado a ela, com várias partes da alocação sendo mapeadas para diferentes GPUs.
Isso é ilustrado abaixo: