Partager via


Prise en charge des superpositions multiplanes

La prise en charge de superposition multiplane (MPO) est une fonctionnalité WDDM qui permet au matériel graphique de composer plusieurs couches de contenu en une seule image qu’il peut ensuite afficher sur un écran. Il s’agit essentiellement d’une méthode d’accélération matérielle de composition de différents « plans » de contenu , où un plan peut être une vidéo, le bureau, une fenêtre d’application, etc. - sans avoir à impliquer l’UC ou à utiliser d’autres ressources système pour effectuer la fusion dans les logiciels.

La fonctionnalité MPO est disponible à partir de Windows 8.1 (WDDM 1.3). Cet article explique comment implémenter cette fonctionnalité dans votre pilote.

Fonctions MPO appelées par les pilotes d’affichage en mode utilisateur

Le tableau suivant répertorie les fonctions MPO en mode utilisateur que le système d’exploitation implémente et que les pilotes d’affichage en mode utilisateur (UMD) peuvent appeler.

Fonction Description
pfnPresentMultiPlaneOverlayCb (D3D) Copie le contenu d’une allocation MPO source vers une allocation de destination.
pfnPresentMultiPlaneOverlayCb (DXGI) Copie le contenu d’une allocation MPO source vers une allocation de destination.

Fonctions MPO implémentées par l’UMD

Cette section contient des fonctions qu’une UMD WDDM 1.3 et ultérieure doit implémenter pour prendre en charge les MPOs.

Le tableau suivant répertorie les fonctions qu’un UMD doit implémenter pour prendre en charge les MPO.

Fonction Description
pfnCheckMultiPlaneOverlaySupport (D3D) Appelé par le runtime Direct3D pour vérifier les détails de la prise en charge matérielle des MPOs.
pfnCheckMultiPlaneOverlaySupport (DXGI) Appelé par le runtime DirectX Graphics Infrastructure (DXGI) pour vérifier les détails de la prise en charge matérielle des MPOs.
pfnPresentMultiplaneOverlay (D3D) Appelé par le runtime Direct3D pour informer l’UMD qu’une application a terminé le rendu et demande que l’UMD affiche l’aire source. Le pilote doit afficher cette surface en copiant, en retournant ou en effectuant une opération de remplissage de couleur.
pfnPresentMultiplaneOverlay (DXGI) Appelé par le runtime DXGI pour informer l’UMD qu’une application a terminé le rendu et demande que l’UMD affiche la surface source. Le pilote doit afficher la surface en copiant, en retournant ou en effectuant une opération de remplissage de couleur.

Le tableau suivant répertorie les fonctions qu’un UMD peut éventuellement implémenter.

Fonction Description
pfnGetMultiPlaneOverlayCaps Appelé par le runtime DXGI pour demander que l’UMD obtienne les fonctionnalités de plan de superposition de base.
pfnGetMultiplaneOverlayGroupCaps Appelé par le runtime DXGI pour demander que l’UMD obtienne un groupe de fonctionnalités de plan de superposition.

Structures et énumérations en mode utilisateur DU MPO

Toutes les structures et énumérations en mode utilisateur utilisées avec des interfaces de pilote de périphérique (DDIS) MPO.

DDI Description
D3DDDI_MULTIPLANE_ALLOCATION_INFO Spécifie des informations sur une allocation MPO.
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES Utilisé par l’UMD pour spécifier des attributs de plan de superposition.
D3DDDI_MULTIPLANE_OVERLAY_BLEND Identifie une opération de fusion à effectuer sur un plan de superposition.
D3DDDI_MULTIPLANE_OVERLAY_CAPS Utilisé par l’UMD pour spécifier les fonctionnalités du plan de superposition.
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS Identifie les fonctionnalités de superposition.
D3DDDI_MULTIPLANE_OVERLAY_FLAGS Identifie une opération de retournement à effectuer sur un plan de superposition.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS Utilisé par l’UMD pour spécifier un groupe de fonctionnalités de plan de superposition.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT Spécifie des informations sur un groupe de capacités MPO.
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identifie les processus de filtrage que le matériel doit effectuer lorsqu’il étire ou réduit les données MPO.
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identifie le format de trame vidéo du plan de superposition. Seule la valeur D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE est prise en charge.
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identifie les informations de conversion et de plage YUV qui décrivent un MPO.
D3DDDI_PRESENT_MULTIPLANE_OVERLAY Spécifie un plan de superposition à afficher.
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT Utilisé dans un appel à la fonction pfnCheckMultiPlaneOverlaySupport (D3D) pour vérifier les détails de la prise en charge matérielle des MPOs.
D3DDDIARG_PRESENTMULTIPLANEOVERLAY Spécifie une ressource MPO à afficher.
D3DDDICB_PRESENTMULTIPLANEOVERLAY Décrit les allocations MPO vers et depuis lesquelles le contenu est copié.

Fonctions implémentées par le pilote en mode noyau MPO

Le tableau suivant répertorie les fonctions MPO que le pilote miniport en mode noyau (KMD) implémente.

Fonction Description
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT Appelé par le sous-système du noyau graphique DirectX pour vérifier les détails de la prise en charge matérielle des MPOs.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 La fonction suivante est appelée pour déterminer si une configuration de superposition multiplan spécifique est prise en charge.
DXGKDDI_GETMULTIPLANEOVERLAYCAPS Appelé pour récupérer les fonctionnalités de MPO. La prise en charge de cette DDI est requise pour tout pilote WDDM 2.2 qui souhaite prendre en charge plusieurs plans.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT Appelé après qu’une nouvelle configuration de superposition multiplan a pris effet, ce qui permet au pilote d’optimiser l’état du matériel. Facultatif pour les pilotes WDDM 1.3 2.0 ou ultérieur qui prennent en charge les superpositions multiplan.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 Appelé pour modifier la configuration de superposition affichée.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 est appelé pour déterminer si une configuration de superposition multiplan spécifique est prise en charge.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Définit les adresses de plusieurs surfaces, y compris la chaîne d’échange du Gestionnaire de fenêtres de bureau (DWM), qui sont associées à une vidéo spécifique présente la source. Cette fonction est utilisée pour présenter plusieurs surfaces (y compris la chaîne d’échange de DWM) à l’écran.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 est appelé pour modifier la configuration de superposition affichée.

Structures en mode noyau MPO

Le tableau suivant répertorie les structures que KMD utilise.

Structure Description
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE Spécifie les attributs de prise en charge que le matériel fournit pour les mpos.
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO Spécifie les limitations relatives à la prise en charge matérielle des MPO.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES Utilisé par le KMD pour spécifier des attributs de plan de superposition.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 est utilisé par le KMD pour spécifier des attributs de plan de superposition.
DXGK_MULTIPLANE_OVERLAY_BLEND Identifie une opération de fusion à effectuer sur un plan de superposition.
DXGK_MULTIPLANE_OVERLAY_FLAGS Identifie une opération de retournement à effectuer sur un plan de superposition.
DXGK_MULTIPLANE_OVERLAY_PLANE Spécifie un plan de superposition à afficher dans un appel à la fonction DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 est utilisé avec la fonction DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 pour spécifier un plan de superposition à afficher.
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE décrit les attributs de plan de superposition multiplan, l’allocation et la vidéo présentent le numéro d’identification de la source réseau.
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO Spécifie un plan de superposition à afficher pendant un intervalle VSync.
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identifie les informations de conversion et de plage YUV qui décrivent un MPO.
DXGK_PRESENTMULTIPLANEOVERLAYINFO Spécifie des informations sur une entrée VidPN et un plan de superposition à afficher.
DXGK_PRESENTMULTIPLANEOVERLAYLIST Spécifie un plan de superposition à afficher dans un appel à la fonction DxgkDdiPresent.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT Utilisé dans un appel à la fonction DxgkDdiCheckMultiPlaneOverlaySupport pour vérifier les détails de la prise en charge matérielle des MPOs.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 est passé à la fonction DxgkDdiCheckMultiPlaneOverlaySupport2 pour déterminer si une configuration de superposition multiplan spécifique est prise en charge.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Contient des arguments pour la fonction DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 est passé à la fonction DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 pour modifier la configuration de superposition affichée.

Énumérations en mode noyau MPO

Le tableau suivant répertorie les énumérations utilisées par KMD.

Énumération Description
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE Identifie le mode de retournement stéréo du plan de superposition. Seule la valeur DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE est prise en charge.
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT Identifie le format de présentation stéréo du plan de superposition. Seule la valeur DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO est prise en charge.
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identifie les processus de filtrage que le matériel doit effectuer lorsqu’il étire ou réduit les données MPO.
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identifie le format de trame vidéo du plan de superposition. Seule la valeur DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE est prise en charge.

La valeur D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS dans D3DDDICAPS_TYPE indique la prise en charge UMD pour les mpOs.