共用方式為


多平面疊加支援

本文說明 Windows 8.1 (WDDM 1.3) 中引進的多平面重疊 (MPO) 功能。 它會列出系統提供的和驅動程序實作的函式,用來在WDDM 1.3和更新版本中,在使用者模式顯示驅動程式 (UMD) 和內核模式顯示迷你埠驅動程式 (KMD) 中支援此功能。 它也會列出與 MPO 搭配使用的結構和列舉。

MPO 支援可讓圖形硬體將多層內容組成單一影像,然後可在畫面上顯示。 它基本上是一種利用硬體加速來組合不同平面內容的方法,而不需要涉及 CPU 或使用其他系統資源在軟體中進行混合。 平面可以是影片、桌面、應用程式視窗等等。 然後,硬體可以將這些平面結合成傳送至顯示器的單一影像。

使用者模式顯示器驅動程式呼叫的 MPO 功能

下表列出作業系統所實作的使用者模式 MPO 函式,以及使用者模式顯示驅動程式(UMD)可以調用。

功能 說明
D3D: pfnPresentMultiPlaneOverlayCb 將來源 MPO 設定的內容複製到目的地配置。
DXGI:pfnPresentMultiPlaneOverlayCb 將內容從來源 MPO 分配複製到目的地分配。

UMD 所執行的 MPO 功能

本節包含 WDDM 1.3 和更新版本的 UMD 必須實作才能支援 MPO 的函式。

必須由 UMD 實作以支援 MPO 的功能列於下表。

功能 說明
pfnCheckMultiPlaneOverlaySupport (D3D) 由 D3D 運行時呼叫,以檢查硬體對 MPO 的支援詳情。
pfnCheckMultiPlaneOverlaySupport (DXGI) DirectX Graphics Infrastructure(DXGI)運行時期被呼叫,以檢查 MPO 硬體支援的詳細資訊。
pfnPresentMultiplaneOverlay(D3D) 由 D3D 執行時間呼叫,以通知 UMD 應用程式完成轉譯,並要求 UMD 顯示來源介面。 驅動程式應該藉由複製、翻轉或執行色彩填滿作業來顯示此表面。
pfnPresentMultiplaneOverlay (DXGI) DXGI 執行階段呼叫以通知 UMD,表明應用程式已完成渲染,並要求 UMD 顯示來源表面。 UMD 應該藉由複製、翻轉或執行色彩填滿作業來顯示表面。

下表列出 UMD 可以選擇性實作的 DXGI DDI 函式。

功能 說明
pfnGetMultiPlaneOverlayCaps 由 DXGI 執行時間呼叫,要求 UMD 取得基本重疊平面功能。
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_MULTIPLANE_OVERLAY_YCbCr_FLAGS 識別描述 MPO 的 YUV 範圍和轉換資訊。
D3DDDI_PRESENT_MULTIPLANE_OVERLAY 指定要顯示的重疊平面。
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT 用於呼叫 pfnCheckMultiPlaneOverlaySupport (D3D) 函式,以檢查 MPO 硬體支援的詳細數據。
D3DDDIARG_PRESENTMULTIPLANEOVERLAY 指定要顯示的 MPO 資源。
D3DDDICB_PRESENTMULTIPLANEOVERLAY 描述內容被複製到和複製自的 MPO 分配。

MPO 核心模式驅動程式實作的函式

下表列出核心模式顯示迷你埠驅動程式 (KMD) 實作的 MPO 函式。

功能 說明
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT DirectX 圖形核心子系統呼叫,以檢查 MPO 的硬體支援詳細數據。
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 指定 MPO 硬體支援的限制。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES KMD 用以指定重疊平面屬性。
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 KMD 會使用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描述多平面重疊平面屬性、配置和視訊呈現網路來源標識碼。
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO 指定要在 VSync 間隔期間顯示的重疊平面。
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS 識別描述 MPO 的 YUV 範圍和轉換資訊。
DXGK_PRESENTMULTIPLANEOVERLAYINFO 指定要顯示之 VidPN 輸入和重疊平面的資訊。
DXGK_PRESENTMULTIPLANEOVERLAYLIST 指定要在 DxgkDdiPresent 函式呼叫中顯示的重疊平面。
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT 用於呼叫 DxgkDdiCheckMultiPlaneOverlaySupport 函式,以檢查 MPO 硬體支援的詳細數據。
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 支援。