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

使用するシステム メモリ (RAM) の最大許容物理アドレスを示す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

表示パイプラインのガンマ変換機能と色空間変換機能を記述するためのフラグ。 注: このフィールドは、この構造体の WDDM 2.2 より前のバージョンの GammaRampCaps を置き換えます。

[out] PresentationCaps

ドライバーがサポートできる表示機能をビット フィールド フラグで識別するDXGK_PRESENTATIONCAPS構造体。

[out] MaxQueuedFlipOnVSync

グラフィックス ハードウェアでキューに入れ、保留中にできるフリップの数。 グラフィックスハードウェアがフリップをキューに入れているので、各フリップは、VSync割り込みごとにデジタルアナログコンバータ(DAC)にラッチされます。

[out] FlipCaps

ドライバーがサポートできる反転機能をビット フィールド フラグで識別するDXGK_FLIPCAPS構造体。

[out] SchedulingCaps

ドライバーがサポートできるグラフィックス処理装置 (GPU) スケジューリング機能をビット フィールド フラグで識別するDXGK_VIDSCHCAPS構造。

[out] MemoryManagementCaps

ドライバー サポートできるビデオ メモリ管理機能を識別するDXGK_VIDMMCAPS構造。

[out] GpuEngineTopology

ドライバー サポートできる GPU エンジン トポロジを記述するDXGK_GPUENGINETOPOLOGY構造。

[out] WDDMVersion

WDDM のバージョンを識別する DXGK_WDDMVERSION 値。 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

ドライバーがサポートする GPU グラフィックス要求のプリエンプションの機能を記述する D3DKMDT_PREEMPTION_CAPS 構造体。

Windows 8 以降でサポートされています。

[out] SupportNonVGA

TRUE の場合、ドライバーは、DxgkDdiStopDeviceAndReleasePostDisplayOwnership 関数を使用して、ディスプレイ デバイスをリセットし、現在の電源オン セルフテスト (POST) デバイスの所有権を解放することをサポートします。

Windows 8 以降でサポートされています。

[out] SupportSmoothRotation

TRUE の場合、ドライバーは DxgkDdiUpdateActiveVidPnPresentPath 関数を使用してアダプターのパスのローテーションを更新できますが、新しい VidPN の作成と設定は必要ありません。

Windows 8 以降でサポートされています。

[out] SupportPerEngineTDR

TRUE の場合、ドライバーは個々の GPU エンジンのリセットをサポートします。

このメンバーが設定されている場合、ディスプレイ ミニポート ドライバーは 、DxgkDdiQueryDependentEngineGroupDxgkDdiQueryEngineStatus、および DxgkDdiResetEngine 関数を実装する必要があります。

Windows 8 以降でサポートされています。

[out] SupportDirectFlip

TRUE の場合、ドライバーは共有マネージド プライマリ割り当ての作成とオープンをサポートします。 TRUE の値は、次のことも示します。

  • ディスプレイ ミニポート ドライバーでは、 DxgkDdiSetVidPnSourceAddress 関数が呼び出されると、ドライバーはビデオ メモリを互換性のない割り当てに反転できないことを保証します。
  • ユーザー モード ドライバーは、デスクトップ Windows マネージャー (DWM) が使用する前に Direct Flip リソースを検証します。

ビデオ メモリを Direct Flip リソースに反転できるのは DWM だけです。 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

SupportRuntimePowerManagementTRUE の場合、ディスプレイ ミニポート ドライバーは MaxOverlayPlanes を、サポートできる 1 つの出力 (プライマリ サーフェスを含む) で同時に表示できるオーバーレイ プレーンの最大数に設定する必要があります。 使用可能なプレーンの数が操作モードの変更時に変更される場合、ドライバーは最適なシナリオを反映する数値を使用する必要があります。

Windows 8.1 以降でサポートされます。

HybridIntegrated

現在の GPU がハイブリッドであるかどうかを示します。

InternalGpuVirtualAddressRangeStart

内部 GPU 仮想アドレス範囲が開始します。

InternalGpuVirtualAddressRangeEnd

内部 GPU 仮想アドレス範囲の終了。

SupportSurpriseRemoval

TRUE の場合、ディスプレイ ミニポート ドライバーは、突然の削除をサポートします。

[out] SupportMultiPlaneOverlayImmediateFlip

TRUE の場合、表示ミニポート ドライバーは、変更する値が表示される物理アドレスである限り、マルチプレーン オーバーレイ プレーンへの即時反転をサポートします。

[out] CursorScaledWithMultiPlaneOverlayPlane0

TRUE の場合、ディスプレイ ハードウェアは、平面ごとにマルチプレーン オーバーレイ ストレッチが適用されている場合、平面 0 に適用されるのと同じ拡大縮小率をハードウェア カーソルに常に適用します。

HybridAcpiChainingRequired

このハイブリッド ディスクリート ドライバーには、統合アダプターでトリガーされる ACPI イベントのチェーンが必要であることを示します。

[out] MaxQueuedMultiPlaneOverlayFlipVSync

1 つのプレーンに対する更新の最大数を 1 つの Vsync 期間内に作成できることを示します。この場合、最新の更新プログラムは以前の更新プログラムをオーバーライドします。 ドライバーが ハードウェア フリップ キューをサポートしている場合、OS はこの値を無視します。

MiscCaps

その他の機能。

MiscCaps.SupportContextlessPresent

DDI 呼び出しで null コンテキストをサポートします。 この値を設定すると、OS は現在の関連 DDI で NULL コンテキストを渡します。 WDDM 2.4 以降でサポートされています。

MiscCaps.Detachable

取り外し可能、つまりホットプラグ可能。 アダプターがホット プラグ可能な場合、ドライバーはアダプターの初期化中にこのビットを設定します。 WDDM 2.4 以降でサポートされています。

MiscCaps.VirtualGpuOnly

アダプターは、ホスト上の Direct3D アプリケーションで使用しないでください。 WDDM 2.5 以降でサポートされています。

MiscCaps.ComputeOnly

WDDM のレンダリング専用デバイス機能をレンダリングすることで、Compute-Only デバイスをサポートします。 Windows 10 バージョン 1901 (WDDM 2.6) 以降でサポートされます

MiscCaps.IndependentVidPnVSyncControl

この機能を設定するドライバーは、DdiControlInterrupt3 で指定された VidPnSourceId を読み取り、前述の VidPnSourceId で VSync を制御する必要があります。 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

ドライバーがサポートするハードウェア フリップ キューの最大数。 OS でハードウェア フリップ キューのサポートが許可されている場合、ドライバーは 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
Header 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