Consultando recursos de hardware do VidPN
A partir do Windows 7, os drivers de miniporto de exibição são necessários para relatar todos os recursos de hardware de um VidPN funcional especificado. Os drivers devem dar suporte à seguinte função de retorno de chamada e suas estruturas associadas:
Quando o driver relata os recursos de hardware, ele deve considerar a clonagem como um procedimento implícito que é feito como parte de transformações de rotação ou dimensionamento: uma fonte deve primeiro ser clonada antes de ser girada ou dimensionada.
Se qualquer um dos membros do D3DKMDT_VIDPN_HW_CAPABILITY não tiver nenhum significado no caminho VidPN especificado, o DMM (gerenciador de modo de exibição) não relatará erros se os membros estiverem definidos como valores diferentes de zero. O DMM limpará todos esses valores antes de reportá-los ao cliente do modo de usuário. No entanto, o driver é necessário para definir o valor do membro Reservado de D3DKMDT_VIDPN_HW_CAPABILITY como 0.
Cenário de exemplo
Para mostrar como o driver de miniporto de exibição deve relatar recursos de hardware, considere o seguinte conjunto de exemplos de configurações de hardware P1, P2 e P3:
P1: O Surface é clonado da Origem S1, girado em 90 graus e dimensionado para se ajustar ao destino.
P2: O Surface é clonado do Source S1, sem transformação aplicada.
P3: O Source S2 não tem nenhuma transformação aplicada.
Quando DxgkDdiQueryVidPnHWCapability é chamado, o driver deve retornar valores para os membros de rotação, dimensionamento e clonagem de D3DKMDT_VIDPN_HW_CAPABILITY de acordo com a tabela a seguir:
Valores retornados para membros de D3DKMDT_VIDPN_HW_CAPABILITY recursos de hardware Driver de caminho VidPN DriverScaling DriverCloning Hardware pode executar todas as transformações de rotação, dimensionamento e clonagem.
P₁
0
0
0
P₂
0
0
0
P₃
0
0
0
O hardware pode executar todas as transformações, exceto a clonagem
P₁
0
0
0
P₂
0
0
1
P₃
0
0
0
O hardware pode executar transformações de clonagem e dimensionamento, mas não rotação. O driver executa a rotação usando uma rotação intermediária blit.
P₁
1
0
0
P₂
0
0
0
P₃
0
0
0
O hardware não pode executar transformações de clonagem, dimensionamento ou rotação. Essas operações são executadas pelo driver.
P₁
1
1
0
P₂
0
0
1
P₃
0
0
0