この記事では、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 が実装する必要がある関数が含まれています。
Direct3D: UMD は、UMD の CreateDevice 関数の呼び出しのD3DDDI_DEVICEFUNCS構造体のメンバーを介して D3D MPO 関数へのポインターを提供します。
DXGI: UMD は、アダプター固有の CreateDevice(D3D10) 関数が呼び出されたときに、DXGI1_3_DDI_BASE_FUNCTIONS構造体のメンバーを介して DXGI MPO 関数へのポインターを提供します。 詳細については、「 DXGI DDI のサポート」を参照してください。
次の表に、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_TYPE の D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS 値は、MPO に対する UMD サポートを示します。