Udostępnij przez


Obsługa nakładki wieloplatformowej

W tym artykule opisano funkcję nakładki wieloplanowej (MPO) wprowadzoną w systemie Windows 8.1 (WDDM 1.3). Zawiera listę funkcji dostarczanych przez system i implementowanych przez sterownik, używanych do obsługi tego w sterowniku wyświetlania w trybie użytkownika (User-Mode Driver, UMD) oraz sterowniku miniportu wyświetlania w trybie jądra (Kernel-Mode Miniport Driver, KMD) w WDDM 1.3 i nowszych. Zawiera również listę struktur i wyliczeń, które są używane z MPOs.

Obsługa MPO umożliwia sprzętowi graficznemu tworzenie wielu warstw zawartości w jeden obraz, który następnie może być wyświetlany na ekranie. Jest to zasadniczo przyspieszona sprzętowo metoda kompozycji różnych warstw zawartości bez konieczności angażowania procesora ani używania innych zasobów systemowych do wykonywania mieszania w oprogramowaniu. Płaszczyzna może być filmem wideo, pulpitem, oknem aplikacji itd. Sprzęt może następnie przejąć te płaszczyzny i połączyć je w jeden obraz, który jest wysyłany do wyświetlacza.

Funkcje MPO wywoływane przez sterowniki wyświetlania w trybie użytkownika

W poniższej tabeli wymieniono funkcje MPO trybu użytkownika, które system operacyjny implementuje, a sterowniki wyświetlania w trybie użytkownika (UMD) mogą wywoływać.

Funkcja Opis
D3D: pfnPresentMultiPlaneOverlayCb Kopiuje zawartość ze źródłowej alokacji MPO do alokacji docelowej.
DXGI: pfnPresentMultiPlaneOverlayCb Kopiuje zawartość ze źródłowej alokacji MPO do alokacji docelowej.

Funkcje MPO implementowane przez UMD

Ta sekcja zawiera funkcje, które WDDM 1.3 lub nowsze UMD muszą implementować w celu obsługi MPO.

W poniższej tabeli wymieniono funkcje, które muszą zostać zaimplementowane przez UMD w celu obsługi MPO.

Funkcja Opis
pfnCheckMultiPlaneOverlaySupport (D3D) Wywoływane przez środowisko uruchomieniowe D3D w celu sprawdzenia szczegółowych informacji na temat obsługi sprzętu dla MPO.
pfnCheckMultiPlaneOverlaySupport (DXGI) Wywoływana przez runtime infrastruktury grafiki DirectX (DXGI) w celu sprawdzenia szczegółów dotyczących wsparcia sprzętowego dla MPO.
pfnPresentMultiplaneOverlay (D3D) Wywoływana przez środowisko uruchomieniowe D3D w celu powiadomienia UMD o zakończeniu renderowania aplikacji i żądaniu wyświetlenia powierzchni źródłowej przez UMD. Sterownik powinien wyświetlić tę powierzchnię, kopiując, przerzucając lub wykonując operację wypełniania kolorami.
pfnPresentMultiplaneOverlay (DXGI) Wywoływana przez środowisko uruchomieniowe DXGI w celu powiadomienia UMD, że aplikacja zakończyła renderowanie i prosi o wyświetlenie powierzchni źródłowej. Funkcja UMD powinna wyświetlać powierzchnię poprzez kopiowanie, odwracanie lub wypełnianie kolorem.

W poniższej tabeli wymieniono funkcje DDI DXGI, które UMD mogą opcjonalnie implementować.

Funkcja Opis
pfnGetMultiPlaneOverlayCaps Wywoływane przez środowisko wykonawcze DXGI w celu zażądania, aby sterownik UMD sprawdził podstawowe możliwości płaszczyzny nakładki.
pfnGetMultiplaneOverlayGroupCaps Wywoływane przez środowisko uruchomieniowe DXGI do zażądania, aby sterownik UMD pobrał grupę właściwości płaszczyzny nakładki.

Struktury i wyliczenia w trybie użytkownika MPO

W tej sekcji wymieniono struktury i wyliczenia trybu użytkownika, które są używane z interfejsami MPO DDI.

Struktura/Enum Opis
D3DDDI_MULTIPLANE_ALLOCATION_INFO Określa informacje o alokacji MPO.
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES Używany przez UMD do określania atrybutów płaszczyzny nakładki.
D3DDDI_MULTIPLANE_OVERLAY_BLEND Identyfikuje operację mieszania do wykonania na płaszczyźnie nakładki.
D3DDDI_MULTIPLANE_OVERLAY_CAPS Używany przez moduł UMD do określania możliwości płaszczyzny nakładki.
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS Identyfikuje możliwości nakładki.
D3DDDI_MULTIPLANE_OVERLAY_FLAGS Określa operację obracania do wykonania na płaszczyźnie nakładki.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS Używane przez UMD do określenia grupy możliwości płaszczyzny nakładki.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT Określa informacje dotyczące grupy możliwości MPO.
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identyfikuje procesy filtrowania, które sprzęt powinien wykonywać podczas rozciągania lub zmniejszania danych MPO.
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identyfikuje format klatki wideo płaszczyzny nakładki. Obsługiwana jest tylko wartość D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE.
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identyfikuje zakres YUV i informacje o konwersji opisujące MPO.
D3DDDI_PRESENT_MULTIPLANE_OVERLAY Określa płaszczyznę nakładki do wyświetlenia.
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT Użyto w wywołaniu funkcji pfnCheckMultiPlaneOverlaySupport (D3D), aby sprawdzić szczegóły dotyczące obsługi sprzętu dla obiektów MPO.
D3DDDIARG_PRESENTMULTIPLANEOVERLAY Określa zasób MPO do wyświetlenia.
D3DDDICB_PRESENTMULTIPLANEOVERLAY Opisuje alokacje MPO, do których i z których kopiowana jest zawartość.

Funkcje zaimplementowane przez sterownik trybu jądra MPO

W poniższej tabeli wymieniono funkcje MPO implementowane przez sterownik miniportu wyświetlania w trybie jądra (KMD).

Funkcja Opis
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT Wywoływany przez podsystem jądra grafiki DirectX w celu sprawdzenia szczegółów obsługi sprzętu dla MPO.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 Poniższa funkcja jest wywoływana w celu określenia, czy jest obsługiwana określona konfiguracja nakładki wielowarstwowej.
DXGKDDI_GETMULTIPLANEOVERLAYCAPS Wywoływane w celu pobrania możliwości MPO. Obsługa tego DDI jest wymagana dla dowolnego WDDM 2.2 KMD, który pragnie obsługiwać wiele płaszczyzn.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT Wywoływane po wprowadzeniu nowej konfiguracji nakładki wielowarstwowej, dzięki czemu usługa KMD może zoptymalizować stan sprzętu. Opcjonalnie w przypadku dysków KMDM w wersji 1.3 lub nowszej, które obsługują nakładki wielowarstwowe.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 Wywołanie w celu zmiany konfiguracji nakładki wyświetlanej na ekranie.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 jest wywoływany w celu określenia, czy jest obsługiwana określona konfiguracja nakładki wielowarstwowej.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Ustawia adresy wielu powierzchni skojarzonych z konkretnym źródłem prezentacji wideo. Te powierzchnie obejmują łańcuch wymiany (swapchain) programu Desktop Window Manager (DWM). Ta funkcja służy do prezentowania wielu powierzchni (w tym łańcucha wymiany DWM) na ekranie.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 jest wywoływana w celu zmiany wyświetlanej konfiguracji nakładki.

Struktury trybu jądra MPO

W poniższej tabeli wymieniono struktury używane przez KMD.

Struktura Opis
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE Określa atrybuty wsparcia zapewniane przez sprzęt dla MPO.
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO Określa ograniczenia wsparcia sprzętowego dla MPO.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES Używany przez KMD do określania atrybutów płaszczyzny nakładki.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 jest używany przez KMD do określania atrybutów płaszczyzny nakładki.
DXGK_MULTIPLANE_OVERLAY_BLEND Identyfikuje procedurę mieszania, którą należy wykonać na płaszczyźnie nakładki.
DXGK_MULTIPLANE_OVERLAY_FLAGS Określa operację odwracania do wykonania na płaszczyźnie nakładki.
DXGK_MULTIPLANE_OVERLAY_PLANE Określa płaszczyznę nakładki do wyświetlenia w wywołaniu funkcji DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 jest używany z funkcją DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2, aby określić płaszczyznę nakładki do wyświetlenia.
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE opisuje atrybuty płaszczyzny nakładki wielopłaszczyznowej, alokację i numer identyfikacyjny źródła sieci wideo.
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO Określa płaszczyznę nakładki do wyświetlenia podczas interwału VSync.
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identyfikuje zakres YUV i informacje o konwersji, które opisują MPO.
DXGK_PRESENTMULTIPLANEOVERLAYINFO Określa informacje dotyczące wejścia VidPN i płaszczyzny nakładki do wyświetlenia.
DXGK_PRESENTMULTIPLANEOVERLAYLIST Określa płaszczyznę nakładki do wyświetlenia w wywołaniu funkcji DxgkDdiPresent.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT Używane w wywołaniu funkcji DxgkDdiCheckMultiPlaneOverlaySupport do sprawdzenia szczegółów dotyczących obsługi sprzętowej dla wielopłaszczyznowych nakładek MPO.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 jest przekazywany do funkcji DxgkDdiCheckMultiPlaneOverlaySupport2 w celu określenia, czy jest obsługiwana określona konfiguracja nakładki wielowarstwowej.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Zawiera argumenty funkcji DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 jest przekazywany do funkcji DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 w celu zmiany wyświetlanej konfiguracji nakładki.

Enumeracje trybu jądra MPO

W poniższej tabeli wymieniono wyliczenia używane przez KMD.

Wyliczenie Opis
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE Określa tryb stereoskopowego przerzucania płaszczyzny nakładki. Obsługiwana jest tylko wartość DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE.
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT Identyfikuje format prezentacji stereo płaszczyzny nakładki. Obsługiwana jest tylko wartość DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO.
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identyfikuje procesy filtrowania, które sprzęt powinien wykonywać podczas rozciągania lub zmniejszania danych MPO.
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identyfikuje format ramki wideo płaszczyzny nakładki. Obsługiwana jest tylko wartość DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE.

Wartość D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS w D3DDDICAPS_TYPE określa obsługę UMD dla MPO.