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

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

Синтаксис

typedef struct _DXGK_DRIVERCAPS {
  [out] PHYSICAL_ADDRESS                   HighestAcceptableAddress;
  [out] UINT                               MaxAllocationListSlotId;
  [out] SIZE_T                             ApertureSegmentCommitLimit;
  [out] UINT                               MaxPointerWidth;
  [out] UINT                               MaxPointerHeight;
  [out] DXGK_POINTERFLAGS                  PointerCaps;
  [out] UINT                               InterruptMessageNumber;
  [out] UINT                               NumberOfSwizzlingRanges;
  [out] UINT                               MaxOverlays;
  union {
    [out] DXGK_GAMMARAMPCAPS      GammaRampCaps;
    [out] DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
  };
  [out] DXGK_PRESENTATIONCAPS              PresentationCaps;
  [out] UINT                               MaxQueuedFlipOnVSync;
  [out] DXGK_FLIPCAPS                      FlipCaps;
  [out] DXGK_VIDSCHCAPS                    SchedulingCaps;
  [out] DXGK_VIDMMCAPS                     MemoryManagementCaps;
  [out] DXGK_GPUENGINETOPOLOGY             GpuEngineTopology;
  [out] DXGK_WDDMVERSION                   WDDMVersion;
        DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
        DXGK_DMABUFFERCAPS_DEPRECATED      Reserved1;
  [out] D3DKMDT_PREEMPTION_CAPS            PreemptionCaps;
  [out] BOOLEAN                            SupportNonVGA;
  [out] BOOLEAN                            SupportSmoothRotation;
  [out] BOOLEAN                            SupportPerEngineTDR;
  [out] BOOLEAN                            SupportDirectFlip;
  [out] BOOLEAN                            SupportMultiPlaneOverlay;
  [out] BOOLEAN                            SupportRuntimePowerManagement;
  [out] BOOLEAN                            SupportSurpriseRemovalInHibernation;
  [out] BOOLEAN                            HybridDiscrete;
  [out] UINT                               MaxOverlayPlanes;
        BOOLEAN                            HybridIntegrated;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeStart;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeEnd;
        BOOLEAN                            SupportSurpriseRemoval;
  [out] BOOLEAN                            SupportMultiPlaneOverlayImmediateFlip;
  [out] BOOLEAN                            CursorScaledWithMultiPlaneOverlayPlane0;
        BOOLEAN                            HybridAcpiChainingRequired;
  [out] UINT                               MaxQueuedMultiPlaneOverlayFlipVSync;
  union {
    struct {
      UINT SupportContextlessPresent : 1;
      UINT Detachable : 1;
      UINT VirtualGpuOnly : 1;
      UINT ComputeOnly : 1;
      UINT IndependentVidPnVSyncControl : 1;
      UINT NoHybridDiscreteDListDllSupport : 1;
      UINT DisplayableSupport : 1;
#if ...
      UINT Reserved : 25;
#elif
      UINT Reserved : 26;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 30;
#endif
    };
          UINT Value;
  } MiscCaps;
        UINT                               MaxHwQueuedFlips;
        DXGK_HWQUEUEDFLIP_CAPS             HwQueuedFlipCaps;
} DXGK_DRIVERCAPS;

Члены

[out] HighestAcceptableAddress

Тип данных PHYSICAL_ADDRESS (который определяется как LARGE_INTEGER), указывающий наивысший допустимый физический адрес используемой системной памяти (ОЗУ).

[out] MaxAllocationListSlotId

Максимальное число идентификаторов слотов списка выделения. Слот списка выделения представляет, где выделение направляется в буферизации прямого доступа к памяти (DMA).

[out] ApertureSegmentCommitLimit

Максимальное количество байтов физической памяти, которое драйвер мини-порта дисплея поддерживает для сопоставления с сегментом диафрагмы. Диспетчер видеопамяти не будет сопоставлять больше физической памяти с сегментом диафрагмы, чем ограничение, указанное ApertureSegmentCommitLimit .

[out] MaxPointerWidth

Максимальная ширина указателя мыши в пикселях.

[out] MaxPointerHeight

Максимальная высота указателя мыши в линиях сканирования.

[out] PointerCaps

Структура DXGK_POINTERFLAGS, которая определяет возможности указателя мыши в флагах битовых полей, которые может поддерживать драйвер.

[out] InterruptMessageNumber

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

[out] NumberOfSwizzlingRanges

Количество диапазонов поворота, которые может поддерживать драйвер.

[out] MaxOverlays

Максимальное количество наложений, которое может поддерживать драйвер.

[out] GammaRampCaps

Структура DXGK_GAMMARAMPCAPS, определяющая возможности гамма-рампы в флагах битовых полей, которые может поддерживать драйвер.

[out] ColorTransformCaps

Флаги для описания возможностей преобразования гамма- и цветового пространства конвейеров отображения. Примечание. Это поле заменяет GammaRampCaps в предварительной версии WDDM 2.2 этой структуры.

[out] PresentationCaps

Структура DXGK_PRESENTATIONCAPS, определяющая возможности представления в флагах битовых полей, которые может поддерживать драйвер.

[out] MaxQueuedFlipOnVSync

Количество сальто, которое может быть поставлено в очередь и ожидалось на графическом оборудовании. Каждый флип помещается в цифровой аналоговый преобразователь (DAC) при каждом прерывании VSync по порядку, так как графическое оборудование помещает его в очередь.

[out] FlipCaps

Структура DXGK_FLIPCAPS , определяющая возможности переворачивания в флагах битовых полей, которые может поддерживать драйвер.

[out] SchedulingCaps

Структура DXGK_VIDSCHCAPS, определяющая возможности планирования графического процессора (GPU) в флагах битовых полей, которые может поддерживать драйвер.

[out] MemoryManagementCaps

Структура DXGK_VIDMMCAPS , определяющая возможности управления видеопамятью, которые может поддерживать драйвер.

[out] GpuEngineTopology

Структура DXGK_GPUENGINETOPOLOGY, описывающая топологию обработчика GPU, которую может поддерживать драйвер.

[out] WDDMVersion

Значение DXGK_WDDMVERSION , определяющее версию WDDM. Поддерживается начиная с Windows 7.

Если драйвер поддерживает функции Windows 7 или более поздних версий (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7), этот элемент зарезервирован и должен иметь нулевое значение.

Для старых драйверов, которые не поддерживают функции Windows 7 или более поздних версий (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7):

  • Чтобы скомпилировать драйвер с windows 7 WDK (версия 7600), задайте для этого элемента значение DXGKDDI_WDDMv1.
  • Чтобы скомпилировать драйвер с помощью Windows 8 WDK, задайте для этого элемента значение DXGKDDI_WDDMv1_2.

Reserved

Зарезервировано.

Reserved1

Зарезервировано.

[out] PreemptionCaps

Структура D3DKMDT_PREEMPTION_CAPS, описывающая возможности вытеснения графических запросов GPU, поддерживаемых драйвером.

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

[out] SupportNonVGA

Если задано значение TRUE, драйвер поддерживает сброс устройства дисплея и освобождение прав владения текущим устройством самопроверки с включением питания (POST) с помощью функции DxgkDdiStopDeviceAndReleasePostDisplayOwnership .

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

[out] SupportSmoothRotation

Если задано значение TRUE, драйвер поддерживает обновление поворота пути на адаптере с помощью функции DxgkDdiUpdateActiveVidPnPresentPath , но не требует создания и установки нового VidPN.

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

[out] SupportPerEngineTDR

Если задано значение TRUE, драйвер поддерживает сброс отдельных обработчиков GPU.

Если этот элемент задан, драйвер мини-порта дисплея должен реализовывать функции DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatus и DxgkDdiResetEngine .

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

[out] SupportDirectFlip

Если задано значение TRUE, драйвер поддерживает создание и открытие общих управляемых первичных выделений. Значение TRUE также указывает на следующее:

  • Драйвер мини-порта дисплея гарантирует, что при вызове функции DxgkDdiSetVidPnSourceAddress драйвер не разрешает переключение видеопамяти на несовместимое выделение.
  • Драйвер пользовательского режима проверяет ресурсы Direct Flip, прежде чем диспетчер Windows (DWM) использует их.

Только DWM может переворачивать видеопамять в ресурсы Direct Flip. DWM проверяет эти ресурсы с помощью функции CheckDirectFlipSupport в пользовательском режиме.

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

[out] SupportMultiPlaneOverlay

Если задано значение TRUE, драйвер мини-порта дисплея поддерживает многоплановые наложения, и драйвер также должен задать значение для элемента MaxOverlayPlanes . Если значение РАВНО FALSE, подсистема графического ядра DirectX не будет вызывать функции многопланового наложения.

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

[out] SupportRuntimePowerManagement

Если задано значение TRUE, драйвер мини-порта дисплея поддерживает управление питанием во время выполнения.

Если этот элемент задан, драйвер мини-порта дисплея должен реализовывать функции DxgkDdiSetPowerComponentFState и DxgkDdiPowerRuntimeControlRequest .

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

[out] SupportSurpriseRemovalInHibernation

Если задано значение TRUE, драйвер мини-порта дисплея поддерживает очистку программных ресурсов после отключения внешнего устройства дисплея в режиме гибернации от системы.

Если этот элемент задан, драйвер мини-порта дисплея должен реализовать функцию DxgkDdiNotifySurpriseRemoval с параметром RemovalType , равным DxgkRemovalHibernation.

Дополнительные сведения см. в статье Использование ресурсов между адаптерами в гибридной системе.

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

[out] HybridDiscrete

Если задано значение TRUE, драйвер мини-порта дисплея является дискретным GPU в гибридной системе.

Если этот элемент задан, драйвер мини-порта дисплея должен:

  • поддержка WDDM 1.3
  • поддержка ресурсов между адаптерами
  • не имеют отображаемых выходных данных

Дополнительные сведения см. в статье Использование ресурсов между адаптерами в гибридной системе.

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

[out] MaxOverlayPlanes

Если параметру SupportRuntimePowerManagement присвоено значение TRUE, драйвер мини-порта дисплея должен задать maxOverlayPlanes максимальное количество плоскостей наложения, которые могут одновременно отображаться на одном выходе, включая основную поверхность, которые он может поддерживать. Если количество доступных плоскостей изменится при изменении режима работы, драйвер должен использовать число, отражающее оптимальный сценарий.

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

HybridIntegrated

Указывает, является ли текущий GPU гибридным.

InternalGpuVirtualAddressRangeStart

Запуск внутреннего диапазона виртуальных адресов GPU.

InternalGpuVirtualAddressRangeEnd

Конец внутреннего диапазона виртуальных адресов GPU.

SupportSurpriseRemoval

Если задано значение TRUE, драйвер мини-порта дисплея поддерживает неожиданное удаление.

[out] SupportMultiPlaneOverlayImmediateFlip

Если задано значение TRUE, драйвер мини-порта дисплея поддерживает немедленное переворачивание в плоскость многопланового наложения, если единственным изменением значения является отображаемый физический адрес.

[out] CursorScaledWithMultiPlaneOverlayPlane0

Если задано значение TRUE, оборудование дисплея всегда будет применять тот же коэффициент масштабирования к аппаратному курсору, что и к плоскости 0 при применении растяжения многопланового наложения плоскости.

HybridAcpiChainingRequired

Указывает, что для этого гибридного дискретного драйвера требуется цепочка событий ACPI, активированных на интегрированном адаптере.

[out] MaxQueuedMultiPlaneOverlayFlipVSync

Указывает максимальное количество обновлений для одной плоскости, которое может быть выполнено в течение одного периода Vsync, когда последнее обновление переопределяет предыдущее обновление. Если драйвер поддерживает очередь аппаратного переворачивания, операционная система игнорирует это значение.

MiscCaps

Прочие возможности.

MiscCaps.SupportContextlessPresent

Поддерживает контекст NULL в вызовах DDI. Если это значение задано, ОС передает контекст NULL в имеющихся связанных DDIs. Поддерживается начиная с WDDM 2.4.

MiscCaps.Detachable

Отсоединяемый, т. е. с горячей заменой. Драйверы задают этот бит во время инициализации адаптера, если адаптер поддерживает горячее подключение. Поддерживается начиная с WDDM 2.4.

MiscCaps.VirtualGpuOnly

Адаптер не должен использоваться приложениями Direct3D на узле. Поддерживается начиная с WDDM 2.5.

MiscCaps.ComputeOnly

Поддерживает Compute-Only устройства путем отрисовки возможностей устройств WDDM только для отрисовки. Поддерживается с Windows 10 версии 1901 (WDDM 2.6)

MiscCaps.IndependentVidPnVSyncControl

Драйверы, задающие эту возможность, должны считывать указанный VidPnSourceId в DdiControlInterrupt3 и управлять VSync на указанном VidPnSourceId. Поддерживается начиная с Windows 10 версии 2004 (WDDM 2.7).

MiscCaps.NoHybridDiscreteDListDllSupport

Указывает, поддерживает ли драйвер d-List. Поддерживается начиная с Windows 10 версии 2004 (WDDM 2.8).

MiscCaps.DisplayableSupport

Указывает, поддерживает ли драйвер отображаемую функцию. Поддерживается начиная с Windows 11 (WDDM 3.0).

MiscCaps.Reserved

Зарезервировано.

MiscCaps.Value

Альтернативный способ доступа к битам MiscCaps .

MaxHwQueuedFlips

Максимальное количество аппаратных очередей переворачивания, поддерживаемых драйвером. Если ОС разрешает поддержку аппаратной очереди переворачивания, драйвер может задать для MaxHwQueuedFlips значение больше 1. Добавлено в Windows Server 2022 (WDDM 2.9); поддерживается начиная с Windows 11 (WDDM 3.0).

HwQueuedFlipCaps

Значение DXGK_HWQUEUEDFLIP_CAPS , описывающее возможности очереди перевернутого оборудования. Добавлено в Windows Server 2022 (WDDM 2.9); поддерживается начиная с Windows 11 (WDDM 3.0).

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

См. также раздел

DxgkDdiUpdateActiveVidPnPresentPath

DXGK_VIDSCHCAPS

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

CheckDirectFlipSupport

DXGK_POINTERFLAGS

D3DKMDT_PREEMPTION_CAPS

DXGK_GAMMARAMPCAPS

DxgkDdiQueryAdapterInfo

DXGK_PRESENTATIONCAPS

DXGK_VIDMMCAPS

DXGK_GPUENGINETOPOLOGY

DxgkDdiQueryEngineStatus

DxgkDdiSetPowerComponentFState

DxgkDdiSetVidPnSourceAddress

DxgkDdiResetEngine

DxgkDdiPowerRuntimeControlRequest

DxgkCbNotifyInterrupt

DxgkDdiNotifySurpriseRemoval

DxgkDdiQueryDependentEngineGroup

DXGK_FLIPCAPS

DXGKARG_QUERYADAPTERINFO