DXGKDDI_CONTROLINTERRUPT3 コールバック関数 (d3dkmddi.h)
DxgkDdi_ControlInterrupt3関数は、グラフィックス ハードウェア上の指定された VidPnSourceId に対して、指定された割り込みの種類を有効または無効にします。
構文
DXGKDDI_CONTROLINTERRUPT3 DxgkddiControlinterrupt3;
NTSTATUS DxgkddiControlinterrupt3(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_CONTROLINTERRUPT3 InterruptControl
)
{...}
パラメーター
[in] hAdapter
グラフィックス処理装置 (GPU) のアダプター オブジェクトへのハンドル。 ドライバーは、DxgkDdiAddDevice 関数の呼び出しから、MiniportDeviceContext パラメーターでこのハンドルを返しました。
[in] InterruptControl
割り込みタイプ、VSYNC 状態、および VidPnSourceId を提供するDXGKARG_CONTROLINTERRUPT3構造体。
戻り値
DxgkDdi_ControlInterrupt3 は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
STATUS_SUCCESS | グラフィックス ハードウェアで割り込みの種類が正常に有効または無効になりました。 |
STATUS_NOT_IMPLEMENTED | DxgkDdi_ControlInterrupt3 では、指定した割り込みタイプの有効化または無効化はサポートされていません。 |
注釈
VSync コントロールは、WDDM で VSync のオンとオフを切り替えるために使用され、シナリオによる VidPn ソースのアクティブな使用と、VSync をオフにすることで実現される省電力のバランスを取ります。 一般に、オペレーティング システムは、VSync をいつオンまたはオフにするかを制御し、DDI 呼び出しを介して IHV カーネル モード ドライバー (KMD) に通知します。 KMD は要求を実行します。 バージョン 2004 (WDDM 2.7) Windows 10より前のバージョンでは、VSync コントロールの粒度はアダプターごとです。つまり、特定のアダプターの場合、VSync コントロールはアダプターのすべての VidPn ソースに適用されます。 たとえば、2 つの VidPn ソースが 2 つの異なる出力に接続されているアダプターがあるとします。 1 つの出力にアクティビティがなく、VSync/VBlank のコンシューマーがない場合は、1 つのオプションしかありません。OS は非アクティブな出力に対して VSync ON を維持する必要があります。
デュアルスクリーンポータブルデバイスの場合、1つの画面でVSyncをオンにしておく必要がない場合は、大きな電力コストがかかります。 ディスプレイ コントローラー/ディスプレイ リンクはアクティブなままである必要があり、自己更新をサポートするパネルが低い頻度で低電力のセルフリフレッシュ モードになるのを防ぎます。 Windows 10 バージョン 2004 以降のバージョンでは、DxgkDdiControlInterrupt3 を使用すると、アダプターの VidPn ソースごとの VSync 制御の細分性を高めます。
アダプターの有効期間中に OS によって使用されるのは、 DxgkDdiControlInterrupt3 または DxgkDdi_ControlInterrupt2 のいずれか 1 つだけです。
DxgkDdi_ControlInterrupt3を実装していない WDDM 2.7 ドライバーは、独立した VidPn VSync コントロールをオプトアウトしており、OS は DxgkDdi_ControlInterrupt2のみを呼び出します。 DxgkDdi_ControlInterrupt3をサポートしていないドライバーでは、DXGK_DRIVERCAPS-IndependentVidPnVSync> 機能は 0 である必要があります。それ以外の場合、OS はアダプターの初期化に失敗します。 ドライバーが DxgkDdi_ControlInterrupt3を実装する場合、機能を 0 または 1 に設定して、サポート Per-VidPn 示すことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 2004 |
Header | d3dkmddi.h |