Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird die in Windows 8.1 (WDDM 1.3) eingeführte MPO-Funktion (Multiplane Overlay) beschrieben. Es listet die vom System bereitgestellten und vom Treiber implementierten Funktionen auf, die verwendet werden, um dieses Feature in einem Benutzermodusanzeigetreiber (UMD) und einem Kernelmodus-Miniporttreiber (KMD) in WDDM 1.3 und höher zu unterstützen. Außerdem werden die Strukturen und Enumerationen aufgeführt, die mit MPOs verwendet werden.
Die MPO-Unterstützung ermöglicht es Grafikhardware, mehrere Inhaltsebenen in ein einzelnes Bild zu erstellen, das dann auf einem Bildschirm angezeigt werden kann. Es handelt sich im Wesentlichen um eine hardwarebeschleunigte Methode zum Kompositing verschiedener Inhaltsebenen , ohne die CPU einbeziehen oder andere Systemressourcen verwenden zu müssen, um die Mischung in der Software durchzuführen. Eine Ebene kann ein Video, der Desktop, ein Anwendungsfenster usw. sein. Die Hardware kann diese Flugzeuge dann aufnehmen und zu einem einzigen Bild kombinieren, das an die Anzeige gesendet wird.
MPO-Funktionen, die von Anzeigetreibern im Benutzermodus aufgerufen werden
In der folgenden Tabelle sind Benutzermodus-MPO-Funktionen aufgeführt, die vom Betriebssystem implementiert werden und von Benutzermodusanzeigetreibern (UMDs) aufgerufen werden können.
| Funktion | BESCHREIBUNG |
|---|---|
| D3D: pfnPresentMultiPlaneOverlayCb | Kopiert Inhalte aus einer Quell-MPO-Zuweisung in eine Ziel-MPO-Zuweisung. |
| DXGI: pfnPresentMultiPlaneOverlayCb | Kopiert Inhalte aus einer Quell-MPO-Zuordnung in eine Zielzuordnung. |
Von der UMD implementierte MPO-Funktionen
Dieser Abschnitt enthält Funktionen, die ein WDDM 1.3 und höher UMD implementieren muss, um MPOs zu unterstützen.
Direct3D: Die UMD liefert Zeiger auf D3D-MPO-Funktionen durch Mitglieder der D3DDDI_DEVICEFUNCS-Struktur, wenn die CreateDevice-Funktion der UMD aufgerufen wird.
DXGI: Die UMD stellt Zeiger auf DXGI-MPO-Funktionen über Member der DXGI1_3_DDI_BASE_FUNCTIONS Struktur bereit, wenn die adapterspezifische CreateDevice(D3D10) -Funktion aufgerufen wird. Weitere Informationen finden Sie unter Unterstützen von DXGI DDI.
In der folgenden Tabelle sind die Funktionen aufgeführt, die eine UMD implementieren muss, um MPOs zu unterstützen.
| Funktion | BESCHREIBUNG |
|---|---|
| pfnCheckMultiPlaneOverlaySupport (D3D) | Wird von der D3D-Laufzeit aufgerufen, um die Details zur Hardwareunterstützung für MPOs zu überprüfen. |
| pfnCheckMultiPlaneOverlaySupport (DXGI) | Wird von der DirectX Graphics Infrastructure (DXGI)-Laufzeit aufgerufen, um die Details zur Hardwareunterstützung für MPOs zu überprüfen. |
| pfnPresentMultiplaneOverlay (D3D) | Wird von der D3D-Laufzeit aufgerufen, um die UMD zu benachrichtigen, dass das Rendern einer Anwendung abgeschlossen ist und die UMD auffordern, die Quelloberfläche anzuzeigen. Der Treiber sollte diese Oberfläche anzeigen, indem er sie kopiert, spiegelt oder mit Farbe füllt. |
| pfnPresentMultiplaneOverlay (DXGI) | Wird von der DXGI-Laufzeit aufgerufen, um die UMD zu benachrichtigen, dass das Rendern einer Anwendung abgeschlossen ist, und fordert an, dass die UMD die Quelloberfläche anzeigt. Die UMD sollte die Oberfläche durch Kopieren, Kippen oder Ausführen eines Farbfüllvorgangs anzeigen. |
In der folgenden Tabelle sind die DXGI DDI-Funktionen aufgeführt, die eine UMD optional implementieren kann.
| Funktion | BESCHREIBUNG |
|---|---|
| pfnGetMultiPlaneOverlayCaps | Wird von der DXGI-Laufzeit aufgerufen, um anzufordern, dass die UMD grundlegende Überlagerungsebenenfunktionen erhält. |
| pfnGetMultiplaneOverlayGroupCaps | Wird von der DXGI-Laufzeit aufgerufen, um anzufordern, dass die UMD eine Gruppe von Überlagerungsebenenfunktionen erhält. |
MPO-Benutzermodusstrukturen und Enumerationen
In diesem Abschnitt werden die Benutzermodusstrukturen und Enumerationen aufgeführt, die mit MPO-DDIs verwendet werden.
| Struktur/Enum | BESCHREIBUNG |
|---|---|
| D3DDDI_MULTIPLANE_ALLOCATION_INFO | Gibt Informationen zu einer MPO-Zuordnung an. |
| D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES | Wird von der UMD zum Angeben von Überlagerungsebenenattributen verwendet. |
| D3DDDI_MULTIPLANE_OVERLAY_BLEND | Gibt einen Mischvorgang an, der auf einer Überlagerungsebene ausgeführt werden soll. |
| D3DDDI_MULTIPLANE_OVERLAY_CAPS | Wird von der UMD verwendet, um Überlagerungsebenenfunktionen anzugeben. |
| D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS | Identifiziert Überlagerungsfunktionen. |
| D3DDDI_MULTIPLANE_OVERLAY_FLAGS | Identifiziert einen Flip-Vorgang, der auf einer Überlagerungsebene ausgeführt werden soll. |
| D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS | Wird von der UMD verwendet, um eine Gruppe von Überlagerungsebenenfunktionen anzugeben. |
| D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT | Gibt Informationen zu einer MPO-Funktionsgruppe an. |
| D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY | Identifiziert Filterprozesse, die die Hardware ausführen soll, wenn sie MPO-Daten streckt oder verkleinert. |
| D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT | Identifiziert das Videoframeformat der Überlagerungsebene. Nur der Wert D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE wird unterstützt. |
| D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Identifiziert YUV-Bereichs- und Konvertierungsinformationen, die ein MPO beschreiben. |
| D3DDDI_PRESENT_MULTIPLANE_OVERLAY | Gibt eine anzuzeigende Überlagerungsebene an. |
| D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT | Wird in einem Aufruf der PfnCheckMultiPlaneOverlaySupport (D3D)-Funktion verwendet, um Details zur Hardwareunterstützung für MPOs zu überprüfen. |
| D3DDDIARG_PRESENTMULTIPLANEOVERLAY | Gibt eine anzuzeigende MPO-Ressource an. |
| D3DDDICB_PRESENTMULTIPLANEOVERLAY | Beschreibt MPO-Zuordnungen, in die und aus denen Inhalte kopiert werden. |
Vom Kernelmodus-Treiber implementierte MPO-Funktionen
In der folgenden Tabelle sind die MPO-Funktionen aufgeführt, die der Kernel-Mode-Display-Miniporttreiber (KMD) implementiert.
| Funktion | BESCHREIBUNG |
|---|---|
| DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT | Vom DirectX-Grafik-Kernelsubsystem aufgerufen, um die Details der Hardwareunterstützung für MPOs zu überprüfen. |
| DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 | Die folgende Funktion wird aufgerufen, um zu bestimmen, ob eine bestimmte Mehrebenenüberlagerungskonfiguration unterstützt wird. |
| DXGKDDI_GETMULTIPLANEOVERLAYCAPS | Wird aufgerufen, um MPO-Funktionen abzurufen. Unterstützung für diesen DDI ist für alle WDDM 2.2 KMD erforderlich, die mehrere Ebenen unterstützen möchten. |
| DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT | Wird aufgerufen, nachdem eine neue Mehrebenenüberlagerungskonfiguration wirksam wird, sodass die KMD den Hardwarezustand optimieren kann. Optional für WDDM 1.3 oder höhere KMDs, die Mehrebenenüberlagerungen unterstützen. |
| DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 | Wird aufgerufen, um die angezeigte Überlagerungskonfiguration zu ändern. |
| DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 | DxgkDdiCheckMultiPlaneOverlaySupport2 wird aufgerufen, um zu bestimmen, ob eine bestimmte Mehrebenenüberlagerungskonfiguration unterstützt wird. |
| DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY | Legt die Adressen mehrerer Oberflächen fest, die einer bestimmten Videoquelle zugeordnet sind. Diese Oberflächen umfassen die Swapchain des Desktop Window Managers (DWM). Diese Funktion wird verwendet, um mehrere Oberflächen (einschließlich der Swapchain des DWM) auf dem Bildschirm darzustellen. |
| DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 | DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 wird aufgerufen, um die angezeigte Overlaykonfiguration zu ändern. |
MPO-Kernelmodus-Strukturen
In der folgenden Tabelle sind die Strukturen aufgeführt, die KMD verwendet.
| Struktur | BESCHREIBUNG |
|---|---|
| DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE | Gibt die Unterstützungsattribute an, die von der Hardware für MPOs bereitgestellt werden. |
| DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO | Gibt Einschränkungen für die Hardwareunterstützung von MPOs an. |
| DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES | Wird von der KMD zum Angeben von Überlagerungsebenenattributen verwendet. |
| DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 | DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 wird von der KMD verwendet, um Überlagerungsebenenattribute anzugeben. |
| DXGK_MULTIPLANE_OVERLAY_BLEND | Gibt einen Mischvorgang an, der auf einer Überlagerungsebene ausgeführt werden soll. |
| DXGK_MULTIPLANE_OVERLAY_FLAGS | Identifiziert einen Flip-Vorgang, der auf einer Überlagerungsebene ausgeführt werden soll. |
| DXGK_MULTIPLANE_OVERLAY_PLANE | Gibt eine Überlagerungsebene an, die in einem Aufruf der DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay-Funktion angezeigt werden soll. |
| DXGK_MULTIPLANE_OVERLAY_PLANE2 | DXGK_MULTIPLANE_OVERLAY_PLANE2 wird mit der DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2-Funktion verwendet, um eine anzuzeigende Überlagerungsebene anzugeben. |
| DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE | DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE beschreibt die Attribute der mehrebenen Überlagerungsebene, die Zuordnung und das Video, die die Identifikationsnummer der Netzwerkquelle darstellen. |
| DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO | Gibt eine Überlagerungsebene an, die während eines VSync-Intervalls angezeigt werden soll. |
| DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Identifiziert YUV-Bereichs- und Konvertierungsinformationen, die ein MPO beschreiben. |
| DXGK_PRESENTMULTIPLANEOVERLAYINFO | Gibt Informationen zu einer VidPN-Eingabe und einer Anzuzeigenden Überlagerungsebene an. |
| DXGK_PRESENTMULTIPLANEOVERLAYLIST | Gibt eine Überlagerungsebene an, die in einem Aufruf der DxgkDdiPresent-Funktion angezeigt werden soll. |
| DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT | Wird in einem Aufruf der DxgkDdiCheckMultiPlaneOverlaySupport-Funktion verwendet, um Details zur Hardwareunterstützung für MPOs zu überprüfen. |
| DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 | DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 wird an die DxgkDdiCheckMultiPlaneOverlaySupport2-Funktion übergeben, um zu bestimmen, ob eine bestimmte Mehrebenenüberlagerungskonfiguration unterstützt wird. |
| DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY | Enthält Argumente für die Funktion DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay. |
| DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 | DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 wird an die Funktion DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 übergeben, um die Konfiguration des angezeigten Overlays zu ändern. |
MPO-Kernelmodus-Enumerationen
In der folgenden Tabelle sind die von KMD verwendeten Enumerationen aufgeführt.
| Aufzählung | BESCHREIBUNG |
|---|---|
| DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE | Identifiziert den Stereo-Flip-Modus der Überlagerungsebene. Nur der DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE Wert wird unterstützt. |
| DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT | Identifiziert das Stereopräsentationsformat der Überlagerungsebene. Nur der DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO Wert wird unterstützt. |
| DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY | Identifiziert Filterprozesse, die die Hardware ausführen soll, wenn sie MPO-Daten streckt oder verkleinert. |
| DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT | Identifiziert das Videoframeformat der Überlagerungsebene. Nur der DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE Wert wird unterstützt. |
Der D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS Wert in D3DDDICAPS_TYPE gibt die UMD-Unterstützung für MPOs an.