本文說明 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 的函式。
Direct3D:UMD 會透過呼叫 UMD 的 CreateDDevice 函式中的D3DDDI_DEVICEFUNCS結構成員,提供 D3D MPO 函式的指標。
DXGI:UMD 會在呼叫其配接器特定 CreateDevice(D3D10) 函式時,透過DXGI1_3_DDI_BASE_FUNCTIONS結構的成員,提供 DXGI MPO 函式的指標。 如需詳細資訊,請參閱 支援 DXGI DDI。
必須由 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 支援。