Поделиться через


структура DXGK_FLIPCAPS (d3dkmddi.h)

Структура DXGK_FLIPCAPS определяет возможности переверки драйвера мини-порта отображения, который драйвер предоставляет через вызов функции DxgkDdiQueryAdapterInfo.

Синтаксис

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;

Члены

FlipOnVSyncWithNoWait

Значение UINT, указывающее, поддерживает ли драйвер планирование команды flip, которая вступает в силу на следующий вертикальный период извлечения (вертикальная синхронизация), не вызывая остановку графического конвейера до тех пор, пока эта вертикальная синхронизация не будет выполнена. То есть графический конвейер должен продолжаться сразу после того, как драйвер записывает физический адрес поверхности переворачивания в ожидающие перевернутые регистры на оборудовании. Хотя большинство оборудования использует глубину одного регистра, ожидающего переворачивания, если оборудование использует несколько регистров, ожидающих переворачивания, драйвер должен указать номер в MaxQueuedFlipOnVSync член структуры DXGK_DRIVERCAPS.

Если FlipOnVSyncWithNoWait имеет значение 1 (TRUE), драйвер поддерживает этот механизм. Если FlipOnVSyncWithNoWait имеет значение 0 (FALSE), драйвер не поддерживает этот механизм. То есть графический конвейер должен ждать, пока следующая вертикальная синхронизация не будет выполнена после планирования команды перевернуть, чтобы выполнить следующую вертикальную синхронизацию.

Установка этого элемента эквивалентна настройке первого бита 32-разрядного значения значения (0x00000001).

FlipOnVSyncMmIo

Значение UINT, указывающее, поддерживает ли драйвер сопоставленный с памятью перевернутый ввод-вывод (MMIO), который вступает в силу при следующей вертикальной синхронизации. Чтобы поддерживать этот тип переверки, драйвер мини-порта дисплея должен поддерживать следующие операции:

  • Нет создания буфера DMA для передачи вызова функции DxgkDdiPresent (то есть NULL передается в pDmaBuffer член структуры DXGKARG_PRESENT).
  • Пролистывание вызова DxgkDdiSetVidPnSourceAddress функции на уровне запроса прерывания устройства (DIRQL). В вызове DxgkDdiSetVidPnSourceAddressдрайвер должен программировать цифровой аналоговый преобразователь (DAC) и использовать значение в PrimaryAddress член структуры DXGKARG_SETVIDPNSOURCEADDRESS, чтобы запустить сканирование. После вертикальной синхронизации драйвер должен уведомить планировщика GPU сообщить об эффективном адресе сканирования, вызвав функцию DxgkCbNotifyInterrupt со значением DXGK_INTERRUPT_CRTC_VSYNC, заданным в ПрерываниеType член структуры DXGKARGCB_NOTIFY_INTERRUPT_DATA. Затем драйвер должен вызвать функцию DxgkCbNotifyDpc, чтобы выполнить большую часть обработки сканирования.

FlipInterval

Значение UINT, указывающее, поддерживает ли драйвер планирование команды переворачивания после двух, трех или четырех вертикальных синхронизаций. Независимо от того, поддерживает ли драйвер интервал переверки двух или больше, драйвер должен поддерживать немедленный перевернутый и интервал переверки одного.

Установка этого элемента эквивалентна настройке третьего бита 32-разрядного элемента значения (0x00000004).

FlipImmediateMmIo

Значение UINT, указывающее, поддерживает ли драйвер немедленный перевернутый ввод-вывод памяти (MMIO). Этот тип перевершения действует сразу после вызова функции драйвера dxgkDdiSetVidPnSourceAddress, не ожидая следующей вертикальной синхронизации.

Установка этого элемента эквивалентна настройке четвертого бита 32-разрядного элемента значения (0x00000008).

Поддерживается начиная с Windows 7.

FlipIndependent

Значение UINT, указывающее, поддерживает ли драйвер независимый перевернутый. Драйверы WDDM 1.3 и более поздних версий должны иметь значение 1.

В независимом перевернутомоперационная система пытается обойти пользовательский вызов диспетчера окон рабочего стола (DWM) и переключается на буфер обратного приложения путем вызова DxgkDdiPresent и DxgkDdiSetVidPnSourceAddress в модели презентации Direct Flip и многоплановой наложения.

Обратите внимание, что в случае вызова в режиме пользователя DWM вызов выполняется даже при установке FlipIndependent. Драйвер должен по-прежнему обрабатывать такие случаи.

Установка этого элемента эквивалентна настройке пятого бита 32-разрядного элемента значения (0x00000010).

Поддерживается начиная с Windows 8.1.

DdiPresentForIFlip

FlipImmediateOnHSync

Reserved

Этот элемент зарезервирован и должен иметь значение нулю. Если этот элемент равен нулю, он эквивалентен настройке оставшихся 27 битов (0xFFFFFFE0) 32-разрядного элемента значение равным нулю.

Этот элемент зарезервирован и должен иметь значение нулю. Если этот элемент равен нулю, он эквивалентен настройке оставшихся 28 битов (0xFFFFFFF0) 32-разрядного значения значением нулю.

Value

Член объединения, который DXGK_FLIPCAPS содержит, которое может содержать 32-разрядное значение, определяющее возможности переверки.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
заголовка d3dkmddi.h (include D3dkmddi.h)

См. также

DXGKARGCB_NOTIFY_INTERRUPT_DATA

DXGKARG_PRESENT

DXGKARG_QUERYADAPTERINFO

DXGKARG_SETVIDPNSOURCEADDRESS

DXGK_DRIVERCAPS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiPresent

DxgkDdiQueryAdapterInfo

DxgkDdiSetVidPnSourceAddress