estructura DXGK_FLIPCAPS (d3dkmddi.h)

La estructura de DXGK_FLIPCAPS identifica las funciones de volteo del controlador de minipuerto de pantalla que proporciona el controlador a través de una llamada a su función DxgkDdiQueryAdapterInfo .

Sintaxis

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;

Miembros

FlipOnVSyncWithNoWait

Valor UINT que especifica si el controlador admite la programación de un comando flip que surtirá efecto en el siguiente período de retroceso vertical (sincronización vertical) sin hacer que la canalización de gráficos se detenga hasta que se produzca esa sincronización vertical. Es decir, la canalización de gráficos debe continuar inmediatamente después de que el controlador escriba la dirección física de la superficie de volteo en registros pendientes invertida en el hardware. Aunque la mayoría del hardware usa una profundidad de un registro pendiente de volteo, si el hardware usa más de un registro pendiente de volteo, el controlador debe especificar el número en el miembro MaxQueuedFlipOnVSync de la estructura DXGK_DRIVERCAPS .

Si FlipOnVSyncWithNoWait está establecido en 1 (TRUE), el controlador admite este mecanismo. Si FlipOnVSyncWithNoWait está establecido en 0 (FALSE), el controlador no admite este mecanismo. Es decir, la canalización de gráficos debe esperar hasta que se produzca la siguiente sincronización vertical después de la programación de un comando flip para surtir efecto en la siguiente sincronización vertical.

Establecer este miembro equivale a establecer el primer bit del miembro Value de 32 bits (0x00000001).

FlipOnVSyncMmIo

Valor UINT que especifica si el controlador admite un volteo basado en E/S asignado a memoria (MMIO) que surte efecto en la siguiente sincronización vertical. Para admitir este tipo de volteo, el controlador de minipuerto de pantalla debe admitir las siguientes operaciones:

  • Ninguna generación de un búfer DMA para pasar una llamada a su función DxgkDdiPresent (es decir, NULL se pasa en el miembro pDmaBuffer de la estructura DXGKARG_PRESENT ).
  • Una llamada a su función DxgkDdiSetVidPnSourceAddress en el nivel de solicitud de interrupción del dispositivo (DIRQL). En la llamada a DxgkDdiSetVidPnSourceAddress, el controlador debe programar el convertidor digital a analógico (DAC) y usar el valor en el miembro PrimaryAddress de la estructura DXGKARG_SETVIDPNSOURCEADDRESS para iniciar el examen. Después de la sincronización vertical, el controlador debe notificar al programador de GPU que informe de la dirección de examen eficaz llamando a la función DxgkCbNotifyInterrupt con el valor DXGK_INTERRUPT_CRTC_VSYNC establecido en el miembro InterruptType de la estructura DXGKARGCB_NOTIFY_INTERRUPT_DATA . A continuación, el controlador debe llamar a la función DxgkCbNotifyDpc para realizar la mayoría del procesamiento de exploración.

FlipInterval

Valor UINT que especifica si el controlador admite la programación de un comando flip para surtir efecto después de que se produzcan dos, tres o cuatro sincronizaciones verticales. Independientemente de si el controlador admite un intervalo de volteo de dos o más, el controlador debe admitir un volteo inmediato y un intervalo de volteo de uno.

Establecer este miembro equivale a establecer el tercer bit del miembro Value de 32 bits (0x00000004).

FlipImmediateMmIo

Valor UINT que especifica si el controlador admite un volteo inmediato basado en E/S asignada por memoria (MMIO). Este tipo de volteo surte efecto inmediatamente después de una llamada a la función DxgkDdiSetVidPnSourceAddress del controlador sin esperar a que se produzca la siguiente sincronización vertical.

Establecer este miembro equivale a establecer el cuarto bit del miembro Value de 32 bits (0x00000008).

Se admite a partir de Windows 7.

FlipIndependent

Valor UINT que especifica si el controlador admite un volteo independiente. WDDM 1.3 y controladores posteriores deben establecer este miembro en 1.

En un volteo independiente, el sistema operativo intenta omitir una llamada del modo de usuario del Administrador de ventanas de escritorio (DWM) y voltea al búfer de reserva de la aplicación llamando a DxgkDdiPresent y DxgkDdiSetVidPnSourceAddress en los modelos de presentación de superposición de direct flip y multiplane.

Tenga en cuenta que habrá casos en los que se realice una llamada en modo de usuario DWM incluso cuando se establezca FlipIndependent . El controlador todavía debe controlar estos casos.

Establecer este miembro equivale a establecer el quinto bit del miembro Value de 32 bits (0x00000010).

Se admite a partir de Windows 8.1.

DdiPresentForIFlip

FlipImmediateOnHSync

Reserved

Este miembro está reservado y debe establecerse en cero. Establecer este miembro en cero equivale a establecer los 27 bits restantes (0xFFFFFFE0) del miembro Value de 32 bits en ceros.

Este miembro está reservado y debe establecerse en cero. Establecer este miembro en cero equivale a establecer los 28 bits restantes (0xFFFFFFF0) del miembro Value de 32 bits en ceros.

Value

Miembro de la unión que DXGK_FLIPCAPS contiene que puede contener un valor de 32 bits que identifica las funcionalidades de volteo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dkmddi.h (incluye D3dkmddi.h)

Consulte también

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress