マルチプレーン オーバーレイのサポート

マルチプレーン オーバーレイは、Windows ディスプレイ ドライバー モデル (WDDM) 1.3 以降のドライバーでサポートできます。 この機能は Windows 8.1 以降の新機能です。

これらのセクションでは、ドライバーにこの機能を実装する方法について説明します。

ユーザー モード ディスプレイ ドライバーによって呼び出されるマルチプレーン オーバーレイ関数

オペレーティング システムによって実装される、すべてのユーザー モード マルチプレーン オーバーレイ機能を掲載しています。

関数 説明
pfnPresentMultiPlaneOverlayCb (D3D) ソース マルチプレーン オーバーレイの割り当てからコピー先の割り当てにコンテンツをコピーします。 Windows ディスプレイ ドライバー モデル (WDDM) 1.3 以降のユーザー モード ディスプレイ ドライバーで呼び出せます。
pfnPresentMultiPlaneOverlayCb (DXGI) ソース マルチプレーン オーバーレイの割り当てからコピー先の割り当てにコンテンツをコピーします。 WDDM 1.3 以降のユーザー モード ディスプレイ ドライバーで呼び出せます。

ユーザー モード ドライバーによって実装されるマルチプレーン オーバーレイ関数

このセクションでは、Windows ディスプレイ ドライバー モデル (WDDM) 1.3 以降のユーザー モード ディスプレイ ドライバーでマルチプレーン オーバーレイをサポートするために実装する必要がある関数について解説します。

ドライバーは、ユーザー モード ディスプレイ ドライバーのアダプター固有の CreateDevice(D3D10) 関数の呼び出しで、DXGI1_3_DDI_BASE_FUNCTIONS 構造体のメンバーを通じて DXGI マルチプレーン オーバーレイ関数へのポインターを提供します。 詳細については、「DXGI DDI のサポート」を参照してください。

ドライバーは、ドライバーの CreateDevice 関数の呼び出しで、D3DDDI_DEVICEFUNCS 構造体のメンバーを通じて Microsoft Direct3D マルチプレーン オーバーレイ関数へのポインターを提供します。

マルチプレーン オーバーレイをサポートするためにユーザー モード ドライバーが実装する必要がある、すべての関数を掲載しています。

関数 説明
pfnCheckMultiPlaneOverlaySupport (D3D) マルチプレーン オーバーレイのハードウェア サポートの詳細をチェックするために、Direct3D ランタイムによって呼び出されます。
pfnCheckMultiPlaneOverlaySupport (DXGI) マルチプレーン オーバーレイのハードウェア サポートの詳細をチェックするために、Microsoft DirectX Graphics Infrastructure (DXGI) ランタイムによって呼び出されます。
pfnGetMultiPlaneOverlayCaps ユーザー モード ディスプレイ ドライバーによる基本的なオーバーレイ プレーン機能の取得を要求するために、DXGI ランタイムによって呼び出されます。 必要に応じて、WDDM 1.3 以降のユーザー モード ディスプレイ ドライバーによって実装されます。
pfnGetMultiplaneOverlayGroupCaps ユーザー モード ディスプレイ ドライバーによるオーバーレイ プレーン機能グループの取得を要求するために、DXGI ランタイムによって呼び出されます。 必要に応じて、WDDM 1.3 以降のユーザー モード ディスプレイ ドライバーによって実装されます。
pfnPresentMultiplaneOverlay (D3D) ユーザー モード ディスプレイ ドライバーにアプリケーションがレンダリングを完了したことを通知し、コピーか反転によってソース サーフェスを表示するか、色の塗りつぶし操作を実行するようドライバーに要求するために、Direct3D ランタイムによって呼び出されます。 マルチプレーン オーバーレイをサポートする WDDM 1.3 以降のドライバーによって実装される必要があります。
pfnPresentMultiplaneOverlay (DXGI) ユーザー モード ディスプレイ ドライバーにアプリケーションがレンダリングを完了したことを通知し、コピーか反転によってソース サーフェスを表示するか、色の塗りつぶし操作を実行するようドライバーに要求するために、DXGI ランタイムによって呼び出されます。 マルチプレーン オーバーレイをサポートする WDDM 1.3 以降のドライバーによって実装される必要があります。

マルチプレーン オーバーレイのユーザー モードの構造体と列挙型

マルチプレーン オーバーレイ デバイス ドライバー インターフェイス (DDI) で使用される、すべてのユーザー モードの構造体と列挙型を掲載しています。

DDI 説明
D3DDDI_MULTIPLANE_ALLOCATION_INFO マルチプレーン オーバーレイの割り当てに関する情報を指定します。
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES オーバーレイ プレーンの属性を指定するために、ユーザー モード ディスプレイ ドライバーによって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_BLEND オーバーレイ プレーンで実行されるブレンド操作を特定します。
D3DDDI_MULTIPLANE_OVERLAY_CAPS オーバーレイ プレーンの機能を指定するために、ユーザー モード ディスプレイ ドライバーによって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS オーバーレイ機能を特定します。
D3DDDI_MULTIPLANE_OVERLAY_FLAGS オーバーレイ プレーンで実行される反転操作を特定します。
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS オーバーレイ プレーンの機能グループを指定するために、ユーザー モード ディスプレイ ドライバーによって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT マルチプレーン オーバーレイ機能グループの情報を指定します。
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY ハードウェアがマルチプレーン オーバーレイ データを拡大または縮小するときに実行するフィルター処理を特定します。
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT オーバーレイ プレーンのビデオ フレーム形式を特定します。 D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE 値のみがサポートされています。
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS マルチプレーン オーバーレイを記述する YUV の範囲と変換情報を特定します。
D3DDDI_PRESENT_MULTIPLANE_OVERLAY 表示するオーバーレイ プレーンを指定します。
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT pfnCheckMultiPlaneOverlaySupport (D3D) 関数の呼び出しで、マルチプレーン オーバーレイのハードウェア サポートの詳細をチェックするために使用されます。
D3DDDIARG_PRESENTMULTIPLANEOVERLAY 表示するマルチプレーン オーバーレイ リソースを指定します。
D3DDDICB_PRESENTMULTIPLANEOVERLAY コンテンツのコピー先とコピー元のマルチプレーン オーバーレイの割り当てを記述します。

マルチプレーン オーバーレイ カーネル モード ドライバー実装関数

ディスプレイ ミニポート ドライバーが実装する、すべてのマルチプレーン オーバーレイ関数を記載しています。

関数 説明
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT マルチプレーン オーバーレイのハードウェア サポートの詳細をチェックするために、Microsoft DirectX グラフィックス カーネル サブシステムによって呼び出されます。
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 次の新しい関数は、特定のマルチプレーン オーバーレイ構成がサポートされているかどうかを判断するために呼び出されます。
DXGKDDI_GETMULTIPLANEOVERLAYCAPS マルチプレーン オーバーレイ機能を取得するために呼び出されます。 複数のプレーンをサポートする WDDM 2.2 ドライバーでは、この DDI のサポートが必要です。
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT ドライバーがハードウェアの状態を最適化できるようにするために、新しいマルチプレーン オーバーレイ構成が有効になった後で呼び出されます。 マルチプレーン オーバーレイをサポートする Windows Display Driver Model (WDDM) 2.0 以降のドライバーの場合は省略可能です。
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 表示されているオーバーレイ構成を変更するために呼び出されます。
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 は、特定のマルチプレーン オーバーレイ構成がサポートされているかどうかを判断するために呼び出されます。
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY デスクトップ ウィンドウ マネージャー (DWM) のスワップチェーンなど、特定のビデオの存在のソースに関連付けられている複数のサーフェスのアドレスを設定します。 この関数は、複数のサーフェス (DWM のスワップチェーンなど) を画面に表示するために使用されます。
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 は、表示されているオーバーレイ構成を変更するために呼び出されます。

マルチプレーン オーバーレイ カーネル モードの構造体

ディスプレイ ミニポート ドライバーによって使用される、すべての構造体を掲載しています。

構造体 説明
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE ハードウェアがマルチプレーン オーバーレイに提供するサポート属性を指定します。
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO マルチプレーン オーバーレイのハードウェア サポートに関する制限を指定します。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES オーバーレイ プレーンの属性を指定するために、ディスプレイ ミニポート ドライバーによって使用されます。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 は、オーバーレイ プレーン属性を指定するために、ディスプレイ ミニポート ドライバーによって使用されます。
DXGK_MULTIPLANE_OVERLAY_BLEND オーバーレイ プレーンで実行されるブレンド操作を特定します。
DXGK_MULTIPLANE_OVERLAY_FLAGS オーバーレイ プレーンで実行される反転操作を特定します。
DXGK_MULTIPLANE_OVERLAY_PLANE DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 関数の呼び出しで表示するオーバーレイ プレーンを指定します。
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 は、表示するオーバーレイ プレーンを指定するために、DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 関数と組み合わせて使用します。
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE は、マルチプレーン オーバーレイ プレーンの属性、割り当て、Video Present Network のソース識別番号を記述します。
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO VSync 間隔中に表示するオーバーレイ プレーンを指定します。
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS マルチプレーン オーバーレイを記述する YUV の範囲と変換情報を特定します。
DXGK_PRESENTMULTIPLANEOVERLAYINFO VidPN 入力と表示するオーバーレイ プレーンに関する情報を指定します。
DXGK_PRESENTMULTIPLANEOVERLAYLIST DxgkDdiPresent 関数の呼び出しで表示するオーバーレイ プレーンを指定します。
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT DxgkDdiCheckMultiPlaneOverlaySupport 関数の呼び出しで、マルチプレーン オーバーレイのハードウェア サポートの詳細をチェックするために使用されます。
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 は、特定のマルチプレーン オーバーレイ構成がサポートされているかどうかを判断するために、DxgkDdiCheckMultiPlaneOverlaySupport2 関数に渡されます。
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 関数の引数を格納します。
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 は、表示されているオーバーレイ構成を変更するために、DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 関数に渡されます。

マルチプレーン オーバーレイ カーネル モードの列挙型

ディスプレイ ミニポート ドライバーによって使用される、すべての列挙型を掲載しています。

列挙 説明
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE オーバーレイ プレーンのステレオ フリップ モードを特定します。 DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE 値のみがサポートされています。
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT オーバーレイ プレーンのステレオ表示形式を特定します。 DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO 値のみがサポートされています。
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY ハードウェアがマルチプレーン オーバーレイ データを拡大または縮小するときに実行するフィルター処理を特定します。
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT オーバーレイ プレーンのビデオ フレーム形式を特定します。 DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE 値のみがサポートされています。

次のユーザー モードの列挙型は、マルチプレーン オーバーレイをサポートしていて、Windows 8.1 の新機能です。