Freigeben über


Unterstützung der mehrschichtigen Überlagerung

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.

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.