estrutura DXGK_FLIPCAPS (d3dkmddi.h)
A estrutura DXGK_FLIPCAPS identifica as funcionalidades 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 valor UINT que especifica se o driver dá suporte ao agendamento de um comando flip que entrará em vigor no próximo período de novo rastreamento 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 inversão, se o hardware usar mais de um registro pendente de inversão, o driver deverá especificar o número no membro MaxQueuedFlipOnVSync da estrutura DXGK_DRIVERCAPS .
Se FlipOnVSyncWithNoWait estiver definido como 1 (TRUE), 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 de inversão 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 valor UINT que especifica se o driver dá suporte a uma inversão baseada em MMIO (E/S mapeada na memória) que entra em vigor na próxima sincronização vertical. Para dar suporte a esse tipo de inversão, o driver de miniporta 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 é passado 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 membro PrimaryAddress 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 membro InterruptType 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 valor UINT 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 mais, o driver deve dar suporte a uma inversão imediata 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 valor UINT que especifica se o driver dá suporte a uma inversão imediata baseada em MMIO (E/S mapeada na memória). Esse tipo de inversão entra em vigor imediatamente após uma chamada para a função DxgkDdiSetVidPnSourceAddress do driver sem esperar que a próxima sincronização vertical ocorra.
Definir esse membro é equivalente a definir o quarto bit do membro Value de 32 bits (0x00000008).
Com suporte a partir do Windows 7.
FlipIndependent
Um valor UINT 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 uma inversão independente, o sistema operacional tenta ignorar uma chamada presente no modo de usuário do DWM (Gerenciador de Janelas da Área de Trabalho) e inverte para o buffer de fundo do aplicativo chamando DxgkDdiPresent e DxgkDdiSetVidPnSourceAddress em modelos de apresentação de sobreposição multiplane e Flip Direto.
Observe que haverá casos em que uma chamada presente no modo de usuário dwm é feita mesmo quando FlipIndependent é definido. Seu driver ainda deve lidar com esses casos.
Definir esse membro é equivalente a definir o quinto bit do membro Value de 32 bits (0x00000010).
Suporte começando com 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 na união que DXGK_FLIPCAPS contém que pode conter um valor de 32 bits que identifica as funcionalidades de inversão.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |