次の方法で共有


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

この記事では、Windows 8.1 (WDDM 1.3) で導入されたマルチプレーン オーバーレイ (MPO) 機能について説明します。 WDDM 1.3 以降のユーザー モード ディスプレイ ドライバー (UMD) とカーネル モードディスプレイ ミニポート ドライバー (KMD) でこの機能をサポートするために使用されるシステム提供およびドライバー実装関数の一覧を示します。 また、MPO で使用される構造体と列挙も一覧表示されます。

MPO のサポートにより、グラフィックス ハードウェアは複数のコンテンツ レイヤーを 1 つのイメージに作成し、画面に表示できます。 これは基本的に、CPU を使用したり、他のシステム リソースを使用してソフトウェアのブレンドを行ったりすることなく、さまざまな コンテンツプレーン を合成するハードウェアアクセラレータ方式です。 平面には、ビデオ、デスクトップ、アプリケーション ウィンドウなどを指定できます。 ハードウェアはこれらの平面を取り、ディスプレイに送信される 1 つの画像に結合できます。

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

次の表に、オペレーティング システムが実装するユーザー モードの MPO 関数と、ユーザー モード ディスプレイ ドライバー (UMD) が呼び出すことができるユーザー モードの MPO 関数を示します。

機能 説明
D3D: pfnPresentMultiPlaneOverlayCb ソースMPOアロケーションからコピー先のアロケーションにコンテンツをコピーします。
DXGI: pfnPresentMultiPlaneOverlayCb MPO ソース割り当てから宛先割り当てにコンテンツをコピーします。

UMD によって実装される MPO 関数

このセクションには、MPO をサポートするために WDDM 1.3 以降の UMD が実装する必要がある関数が含まれています。

次の表に、MPO をサポートするために UMD が実装する必要がある関数の一覧を示します。

機能 説明
pfnCheckMultiPlaneOverlaySupport (D3D) MTO のハードウェア サポートの詳細を確認するために D3D ランタイムによって呼び出されます。
pfnCheckMultiPlaneOverlaySupport (DXGI) DirectX グラフィックス インフラストラクチャ (DXGI) ランタイムによって呼び出され、MPO のハードウェア サポートの詳細を確認します。
pfnPresentMultiplaneOverlay (D3D) アプリケーションがレンダリングを完了したことを UMD に通知し、UMD にソース サーフェスを表示するよう要求するために、D3D ランタイムによって呼び出されます。 ドライバーは、コピー、反転、またはカラーフィル操作を実行して、この画面を表示する必要があります。
pfnPresentMultiplaneOverlay (DXGI) アプリケーションがレンダリングを完了したことを UMD に通知し、UMD にソース サーフェスを表示するよう要求するために、DXGI ランタイムによって呼び出されます。 UMD では、カラー フィル操作をコピー、反転、または実行して、サーフェスを表示する必要があります。

次の表に、UMD が必要に応じて実装できる DXGI DDI 関数を示します。

機能 説明
pfnGetMultiPlaneOverlayCaps UMD が基本的なオーバーレイ プレーン機能を取得するように要求するために、DXGI ランタイムによって呼び出されます。
pfnGetMultiplaneOverlayGroupCaps DXGI ランタイムによって呼び出され、UMD がオーバーレイ プレーン機能のグループを取得するよう要求されます。

MPO ユーザー モードの構造体と列挙型

このセクションでは、MPO DDI で使用されるユーザー モードの構造と列挙体の一覧を示します。

構造体/列挙型 説明
D3DDDI_MULTIPLANE_ALLOCATION_INFO MPO 割り当てに関する情報を指定します。
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES オーバーレイ 平面属性を指定するために UMD によって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_BLEND オーバーレイ 平面で実行するブレンド操作を識別します。
D3DDDI_MULTIPLANE_OVERLAY_CAPS オーバーレイ 平面の機能を指定するために UMD によって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS オーバーレイ機能を識別します。
D3DDDI_MULTIPLANE_OVERLAY_FLAGS オーバーレイ 平面で実行するフリップ操作を識別します。
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS - これはマルチプレーンオーバーレイグループの能力を示す技術的な仕様です。 オーバーレイ プレーン機能のグループを指定するために UMD によって使用されます。
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT MPO 機能グループに関する情報を指定します。
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY MPO データを拡張または縮小するときにハードウェアが実行する必要があるフィルター処理プロセスを識別します。
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT オーバーレイ プレーンのビデオ フレーム形式を識別します。 D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE値のみがサポートされています。
D3DDDI_マルチプレーンオーバーレイ_YCbCr_フラグ MPO を記述する YUV 範囲と変換情報を識別します。
D3DDDI_PRESENT_MULTIPLANE_OVERLAY 表示するオーバーレイ平面を指定します。
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT pfnCheckMultiPlaneOverlaySupport (D3D) 関数の呼び出しで、MTO のハードウェア サポートの詳細を確認するために使用されます。
D3DDDIARG_PRESENTMULTIPLANEOVERLAY 表示する MPO リソースを指定します。
D3DDDICB_PRESENTMULTIPLANEOVERLAY コンテンツのコピーの送受信を行う MPO 割り当てについて説明します。

MPO カーネルモード ドライバーで実装された関数

次の表に、カーネル モードディスプレイ ミニポート ドライバー (KMD) が実装する MPO 関数の一覧を示します。

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

MPO カーネル モード 構造体

次の表に、KMD で使用される構造を示します。

構造 説明
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE ハードウェアが MPO に提供するサポート属性を指定します。
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO MTO のハードウェア サポートに関する制限事項を指定します。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES オーバーレイ 平面属性を指定するために KMD によって使用されます。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2は、オーバーレイ 平面属性を指定するために KMD によって使用されます。
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では、マルチプレーン オーバーレイ プレーンの属性、割り当て、およびビデオ提示ネットワーク ソース識別番号について説明します。
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO VSync 間隔中に表示するオーバーレイ 平面を指定します。
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS MPO を記述する YUV 範囲と変換情報を識別します。
DXGK_PRESENTMULTIPLANEOVERLAYINFO VidPN 入力と表示するオーバーレイ 平面に関する情報を指定します。
DXGK_PRESENTMULTIPLANEOVERLAYLIST DxgkDdiPresent 関数の呼び出しで表示するオーバーレイ 平面を指定します。
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT DxgkDdiCheckMultiPlaneOverlaySupport 関数の呼び出しで使用され、MTO のハードウェア サポートの詳細を確認します。
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2は DxgkDdiCheckMultiPlaneOverlaySupport2 関数に渡され、特定のマルチプレーン オーバーレイ構成がサポートされているかどうかを判断します。
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay 関数の引数を格納します。
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 が、表示されるオーバーレイ構成を変更するために、DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 関数に渡されます。

MPOカーネルモード列挙型

次の表に、KMD で使用される列挙体を示します。

列挙 説明
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 MPO データを拡張または縮小するときにハードウェアが実行する必要があるフィルター処理プロセスを識別します。
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT オーバーレイ プレーンのビデオ フレーム形式を識別します。 DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE値のみがサポートされています。

D3DDDICAPS_TYPED3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS 値は、MPO に対する UMD サポートを示します。