Compartilhar via


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)

Confira também

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress