estrutura DXGK_FLIPCAPS (d3dkmddi.h)
A estrutura DXGK_FLIPCAPS identifica os recursos de inversão do driver de miniporto de exibição que o driver fornece por meio de uma chamada para sua função DxgkDdiQueryAdapterInfo.
Sintaxe
typedef struct _DXGK_FLIPCAPS {
union {
struct {
UINT FlipOnVSyncWithNoWait : 1;
UINT FlipOnVSyncMmIo : 1;
UINT FlipInterval : 1;
UINT FlipImmediateMmIo : 1;
UINT FlipIndependent : 1;
UINT DdiPresentForIFlip : 1;
UINT FlipImmediateOnHSync : 1;
#if ...
UINT Reserved : 25;
#elif
UINT Reserved : 27;
#else
UINT Reserved : 28;
#endif
};
UINT Value;
};
} DXGK_FLIPCAPS;
Membros
FlipOnVSyncWithNoWait
Um UINT valor que especifica se o driver dá suporte ao agendamento de um comando flip que entrará em vigor no próximo período de retração vertical (sincronização vertical) sem fazer com que o pipeline de gráficos seja interrompido até que essa sincronização vertical ocorra. Ou seja, o pipeline gráfico deve continuar imediatamente após o driver gravar o endereço físico da superfície invertida em registros pendentes de inversão no hardware. Embora a maioria dos hardwares use uma profundidade de um registro pendente de lançamento, se o hardware usar mais de um registro pendente, o driver deverá especificar o número no MaxQueuedFlipOnVSync membro da estrutura DXGK_DRIVERCAPS.
Se FlipOnVSyncWithNoWait estiver definido como 1 (VERDADEIRO), o driver oferecerá suporte a esse mecanismo. Se FlipOnVSyncWithNoWait estiver definido como 0 (FALSE), o driver não oferecerá suporte a esse mecanismo. Ou seja, o pipeline de gráficos deve aguardar até que a próxima sincronização vertical ocorra após o agendamento de um comando flip para entrar em vigor na próxima sincronização vertical.
Definir esse membro é equivalente a definir o primeiro bit do membro Value de 32 bits (0x00000001).
FlipOnVSyncMmIo
Um UINT valor que especifica se o driver dá suporte a um flip baseado em E/S mapeado por memória (MMIO) que entra em vigor na próxima sincronização vertical. Para dar suporte a esse tipo de inversão, o driver de miniporto de exibição deve dar suporte às seguintes operações:
- Nenhuma geração de um buffer DMA para passar uma chamada para sua função DxgkDdiPresent (ou seja, NULL é passada no membro pDmaBuffer da estrutura DXGKARG_PRESENT).
- Um inverter uma chamada para sua função DxgkDdiSetVidPnSourceAddress no nível de solicitação de interrupção do dispositivo (DIRQL). Na chamada para DxgkDdiSetVidPnSourceAddress, o driver deve programar o DAC (conversor digital para analógico) e usar o valor no PrimaryAddress membro da estrutura DXGKARG_SETVIDPNSOURCEADDRESS para iniciar a verificação. Após a sincronização vertical, o driver deve notificar o agendador de GPU para relatar o endereço de verificação efetivo chamando a função DxgkCbNotifyInterrupt com o valor DXGK_INTERRUPT_CRTC_VSYNC definido no InterruptType membro da estrutura DXGKARGCB_NOTIFY_INTERRUPT_DATA. Em seguida, o driver deve chamar a função DxgkCbNotifyDpc para executar a maior parte do processamento de verificação.
FlipInterval
Um UINT valor que especifica se o driver dá suporte ao agendamento de um comando flip para entrar em vigor após duas, três ou quatro sincronizações verticais. Independentemente de o driver dar suporte a um intervalo de inversão de dois ou superiores, o driver deve dar suporte a um inverso imediato e um intervalo de inversão de um.
Definir esse membro é equivalente a definir o terceiro bit do membro Value de 32 bits (0x00000004).
FlipImmediateMmIo
Um UINT valor que especifica se o driver dá suporte a uma inversão imediata baseada em E/S mapeada por memória (MMIO). Esse tipo de inversão entra em vigor imediatamente após uma chamada para a função DxgkDdiSetVidPnSourceAddress do driver imediatamente sem esperar a próxima sincronização vertical ocorrer.
Definir esse membro é equivalente a definir o quarto bit do membro de valor de de 32 bits (0x00000008).
Com suporte a partir do Windows 7.
FlipIndependent
Um UINT valor que especifica se o driver dá suporte a uma inversão independente. Os drivers WDDM 1.3 e posteriores devem definir esse membro como 1.
Em um de inversão independente, o sistema operacional tenta ignorar uma chamada do modo de usuário do DWM (Gerenciador de Janelas da Área de Trabalho) e inverte o buffer de back do aplicativo chamando DxgkDdiPresent e DxgkDdiSetVidPnSourceAddress em modelos de apresentação de sobreposição de planos diretos e multiplano.
Observe que haverá casos em que uma chamada presente no modo de usuário dwm é feita mesmo quando FlipIndependent está definido. O driver ainda deve lidar com esses casos.
Definir esse membro é equivalente a definir o quinto bit do membro Value de 32 bits (0x00000010).
Com suporte a partir do Windows 8.1.
DdiPresentForIFlip
FlipImmediateOnHSync
Reserved
Esse membro é reservado e deve ser definido como zero. Definir esse membro como zero é equivalente a definir os 27 bits restantes (0xFFFFFFE0) do membro Value de 32 bits como zeros.
Esse membro é reservado e deve ser definido como zero. Definir esse membro como zero é equivalente a definir os 28 bits restantes (0xFFFFFFF0) do membro Value de 32 bits como zeros.
Value
Um membro no sindicato que DXGK_FLIPCAPS contém que pode conter um valor de 32 bits que identifica recursos de inversão.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista |
cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |