Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Direct3D: UMD dostarcza wskaźniki do funkcji D3D MPO za pośrednictwem elementów struktury D3DDDI_DEVICEFUNCS w wywołaniu funkcji CreateDevice.
DXGI: UMD dostarcza wskaźniki do funkcji DXGI MPO poprzez elementy członkowskie struktury DXGI1_3_DDI_BASE_FUNCTIONS, gdy wywoływana jest specyficzna dla adaptera funkcja CreateDevice(D3D10). Aby uzyskać więcej informacji, zobacz Obsługa DDI DXGI.
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.