次の方法で共有


DXGK_VIDSCHCAPS構造体 (d3dkmddi.h)

DXGK_VIDSCHCAPS 構造体には、カーネル モードディスプレイ ミニポート ドライバー (KMD) でサポートできる GPU のスケジューリング機能を識別するビット フィールド フラグがあります。

構文

typedef struct _DXGK_VIDSCHCAPS {
  union {
    struct {
      UINT MultiEngineAware : 1;
      UINT VSyncPowerSaveAware : 1;
      UINT PreemptionAware : 1;
      UINT NoDmaPatching : 1;
      UINT CancelCommandAware : 1;
      UINT No64BitAtomics : 1;
      UINT LowIrqlPreemptCommand : 1;
      UINT HwQueuePacketCap : 4;
      UINT NativeGpuFence : 1;
      UINT OptimizedNativeFenceSignaledInterrupt : 1;
#if ...
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 25;
#elif
      UINT Reserved : 27;
#else
      UINT Reserved : 30;
#endif
    };
    UINT Value;
  };
} DXGK_VIDSCHCAPS;

メンバーズ

MultiEngineAware

ドライバーがデバイス コンテキストの作成と破棄 (DxgkDdiCreateContext 関数と dxgkDdiDestroyContext関数) とデバイス コンテキストの使用 (DxgkDdiPresent および dxgkDdiRender関数) をサポートするかどうかを指定する UINT 値。 ドライバーがコンテキストの作成をサポートしていない場合、コンテキストにハンドルを渡すドライバーの呼び出しごとに、Microsoft DirectX グラフィックス カーネル サブシステムは、コンテキストへのハンドルをデバイスへのハンドルに置き換えます。

VSyncPowerSaveAware

ドライバーが垂直同期の省電力機能をサポートするかどうかを指定する UINT 値。

VSyncPowerSaveAware が 1 (TRUE) に設定されている場合、OS は、一部のアプリケーションの使用によって発生する垂直同期割り込みを無効にして有効にすることで、電力を節約できます。 VSyncPowerSaveAware が 0 (FALSE) に設定されている場合、OS は垂直同期割り込みを発生させる可能性があるアプリケーションの垂直同期割り込みを無効にしません。 Windows Server 2008 および Windows Vista SP1 以降でサポートされます。

PreemptionAware

ドライバーが Windows 8 以降のバージョンの Windows の GPU プリエンプション ポリシーをサポートするかどうかを指定する UINT 値。 このポリシーでは、OS は常に、**タイムアウト検出および回復 (TDR) プロセスを開始する前に、GPU にプリエンプション要求を発行します。 Windows 8 以降でサポートされています。

PreemptionAware が 1 (TRUE) に設定されている場合、ドライバーは Windows 8 以降のバージョンの Windows のプリエンプション ポリシーをサポートします。 PreemptionAware が 1 に設定されている場合、MultiEngineAware メンバーも値 1 に設定する必要があります。 PreemptionAware が 1 に設定されていても、MultiEngineAware が 0 に設定されている場合、OS はドライバーの初期化プロセスを停止し、エラー コードを返します。

PreemptionAware が 0 (FALSE) に設定されている場合、ドライバーは Windows 7 のプリエンプション ポリシーをサポートします。 このポリシーでは、実行時間の長い操作が GPU で実行されている可能性がある間、OS はプリエンプション要求を発行しない可能性があります。 その結果、TDR プロセスが開始される前に、これらの GPU 要求は割り込まれません。 これにより、TDR プロセスによって GPU が繰り返しリセットされ、システム停止エラーが発生する可能性があります。

NoDmaPatching

ドライバーが複数の部分に分割されている DMA バッファーのリーク検出を無効にするかどうかを指定する UINT 値。 この検出は、ドライバーの DxgkDdiPatch 関数を呼び出して、DMA バッファーの各部分に物理アドレスを割り当てるか、パッチ した後に実行されます。 Windows 8 以降でサポートされています。

仮想アドレスをサポートするディスプレイ デバイスは、DMA バッファー アドレスの値に修正プログラムを適用しなくても、仮想アドレスを新しいビデオ メモリの場所に再プログラミングできます。 このような種類のディスプレイ デバイスの場合、ドライバーは NoDmaPatching 1 に設定する必要があります。

NoDmaPatching が 1 (TRUE) に設定されている場合、ドライバーはリーク検出を無効にし、DMA バッファー分割の動作は Windows 7 と同じです。 NoDmaPatching が 1 に設定されている場合、PreemptionAware と multiEngineAware メンバー も 1 に設定する必要があることに注意してください。 NoDmaPatching が 1 に設定されていても、PreemptionAware または MultiEngineAware が 0 に設定 場合、OS はドライバーの初期化プロセスを停止し、エラー コードを返します。

NoDmaPatching が 0 (FALSE) に設定されている場合、ドライバーは修正プログラムが適用された DMA バッファー アドレスのリーク検出を有効にします。 OS は、ドライバーの DxgkDdiPatch 関数を呼び出す前に、リーク検出を実行します。

CancelCommandAware

ハードウェア キューからコマンドを削除した後、ドライバーが内部リソースのクリーンアップをサポートするかどうかを指定する UINT 値 (dxgkDdiCancelCommand 関数を使用)。 Windows 8 以降でサポートされています。

CancelCommandAware が 1 (TRUE) に設定されている場合、ドライバーは、取り消された DMA パケットに関連付けられているリソースのクリーンアップをサポートします。 CancelCommandAware が 1 に設定されている場合、MultiEngineAware メンバーも 1 に設定する必要があります。 CancelCommandAware が 1 に設定されていても、MultiEngineAware 0 に設定されている場合、OS はエラー コードを返します。

CancelCommandAware が 0 (FALSE) に設定されている場合、ドライバーはリソースのクリーンアップをサポートしていません。

No64BitAtomics

No64BitAtomics が 1 (TRUE) に設定されている場合、ドライバーは GPU が 32 ビット値のみをアトミックに更新できることを示します。 この場合、OS はフェンスラップアラウンド ケースを自動的に処理しますが、未処理の待機とシグナル フェンスの値は、最後のシグナルフェンス値とは別にUINT_MAX/2 を超えることはできません。 Windows 10 以降でサポートされています。

No64BitAtomics が 0 (FALSE) に設定されている場合、ドライバーは、GPU が CPU から見える 64 ビット値をアトミックに更新できることを示します。

LowIrqlPreemptCommand

HwQueuePacketCap

ノードにキューに登録できる DMA パケットの最大数。

NativeGpuFence

OS で DXGK_FEATURE_NATIVE_FENCE 機能が有効になっている場合、ドライバーは、NativeGpuFence ビットを 1 に設定することで、アダプターの初期化中にネイティブ GPU フェンス機能のサポートを宣言できます。 この機能は、対応する D3DKMT_WDDM_3_1_CAPS::NativeGpuFenceSupported ビットを介してユーザー モードに公開されます。 詳細については、「ネイティブ GPU フェンス オブジェクト 」を参照してください。 Windows 11 バージョン 22H2 (WDDM 3.1) 以降で使用できます。

OptimizedNativeFenceSignaledInterrupt

ドライバーは、シグナル割り込みで、GPU が実行されていた HWQueue の KMD ハンドルのみをDXGKARGCB_NOTIFY_INTERRUPT_DATA::NativeFenceSignaled で指定できる場合、この TRUE を設定します。 詳細については、「ネイティブ GPU フェンス オブジェクト 」を参照してください。 Windows 11 バージョン 22H2 (WDDM 3.1) 以降で使用できます。

Reserved

このメンバーは予約されており、0 に設定する必要があります。

Value

共用体のビット フィールド フラグにアクセスする別の方法。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ヘッダー d3dkmddi.h (D3dkmddi.h を含む)

関連項目

DXGK_DRIVERCAPS

DxgkDdiCancelCommandする

DxgkDdiCreateContext

DxgkDdiDestroyContextする

DxgkDdiPatchする

DxgkDdiPresentする

DxgkDdiRenderする