Compartilhar via


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)

Consulte também

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress