Usando recursos de adaptador cruzado em um sistema híbrido

A partir do Windows 8.1, um driver WDDM (Modelo de Driver de Exibição do Windows) pode dar suporte a um sistema híbrido, em que os recursos entre adaptadores são compartilhados entre uma GPU integrada e uma GPU discreta, e um aplicativo pode ser executado em qualquer GPU, dependendo das necessidades do aplicativo. O sistema operacional e o driver juntos determinam em qual GPU um aplicativo deve ser executado.

O driver de miniporto de exibição deve expressar suporte para recursos de adaptador cruzado definindo o membro CrossAdapterResource da estrutura DXGK_VIDMMCAPS .

Os drivers obtêm informações de maneiras diferentes, dependendo do tipo de alocação. Se a alocação for uma primária de tela inteira tradicional, o driver de exibição do modo de usuário obterá as informações que geralmente são fornecidas quando o primário é criado, como o sinalizador primário, a ID de origem da VidPN (rede presente no vídeo), a taxa de atualização e as informações de rotação. No entanto, se a alocação for uma primária de inversão direta, a alocação entre adaptadores poderá ser usada como primária, mas o driver de exibição do modo de usuário não obterá as informações usuais fornecidas quando o primário for criado. Além disso, nesse caso, o driver de exibição discreto do modo de usuário recebe informações sobre o primário, mas não deve validá-lo. O driver integrado não recebe informações que indicam que ele é primário.

Estes tópicos subsequentes fornecem mais detalhes sobre a implementação do driver para sistemas híbridos:

Definição e propriedades de um sistema híbrido:

  • O sistema contém uma única GPU integrada e uma ÚNICA GPU discreta: a GPU integrada é integrada ao chipset de CPU e gera saídas a um painel de exibição integrado, como um painel LCD. A GPU discreta normalmente é uma cartão removível que se conecta à ponte norte de um chipset de placa-mãe através de um ônibus como o PCI.
  • A GPU discreta tem um desempenho significativamente maior do que a GPU integrada.
  • A GPU discreta é um dispositivo somente renderização e nenhuma saída de exibição está conectada a ele.
  • Ambas as GPUs são fisicamente colocadas na mesma casa e a GPU discreta não pode ser conectada ou desconectada enquanto o computador está em execução.
  • O sistema operacional detecta a configuração de um sistema híbrido quando executa rotinas post (teste automático de ativação), quando um novo driver é instalado ou quando um adaptador de vídeo está habilitado ou desabilitado.

Definição e propriedades de um recurso de adaptador cruzado:

  • Um recurso de adaptador cruzado só está disponível a partir de Windows 8.1.
  • Ele pode ser paginado somente para o segmento de memória de GPU de abertura.
  • Ele é alocado como um recurso compartilhado.
  • Ele tem apenas uma alocação, em um formato linear.
  • Ele tem um alinhamento de tom padrão de 128 bytes (definido pela constante D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT ).
  • Ele tem um alinhamento de altura padrão de 4 linhas (definido pela constante D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT ).
  • Seu endereço inicial de memória está alinhado a um limite de uma página.
  • Ele pode ser criado como uma alocação padrão do modo kernel pelo driver de miniporto de exibição e, em seguida, ser aberto posteriormente pelo driver de exibição do modo de usuário.
  • Ele pode ser criado pelo driver de exibição do modo de usuário.