Supporto della sovrimpressione multiplane

Il supporto della sovrimpressione multiplane (MPO) è una funzionalità WDDM che consente all'hardware grafico di comporre più livelli di contenuto in un'unica immagine che può quindi essere visualizzata su uno schermo. Si tratta essenzialmente di un metodo accelerato dall'hardware di composizione di diversi "piani" di contenuto , dove un piano può essere un video, il desktop, una finestra dell'applicazione e così via, senza dover coinvolgere la CPU o usare altre risorse di sistema per eseguire la fusione nel software.

La funzionalità MPO è disponibile a partire da Windows 8.1 (WDDM 1.3). Questo articolo descrive come implementare questa funzionalità nel driver.

Funzioni MPO chiamate dai driver di visualizzazione in modalità utente

Nella tabella seguente sono elencate le funzioni MPO in modalità utente implementate dal sistema operativo e che i driver di visualizzazione in modalità utente possono chiamare.

Funzione Descrizione
pfnPresentMultiPlaneOverlayCb (D3D) Copia il contenuto da un'allocazione MPO di origine a un'allocazione di destinazione.
pfnPresentMultiPlaneOverlayCb (DXGI) Copia il contenuto da un'allocazione MPO di origine a un'allocazione di destinazione.

Funzioni MPO implementate dalla messaggistica unificata

Questa sezione contiene funzioni che devono essere implementate da wdDM 1.3 e versioni successive per supportare gli oggetti MPO.

Nella tabella seguente sono elencate le funzioni che un UMD deve implementare per supportare gli MPO.

Funzione Descrizione
pfnCheckMultiPlaneOverlaySupport (D3D) Chiamato dal runtime Direct3D per controllare i dettagli sul supporto hardware per gli MPO.
pfnCheckMultiPlaneOverlaySupport (DXGI) Chiamato dal runtime DXGI (DirectX Graphics Infrastructure) per controllare i dettagli sul supporto hardware per gli MPO.
pfnPresentMultiplaneOverlay (D3D) Chiamato dal runtime Direct3D per notificare al UMD che un'applicazione ha completato il rendering e richiesto che la messaggistica unificata visualizzi la superficie di origine. Il driver deve visualizzare questa superficie copiando, capovolgendo o eseguendo un'operazione di riempimento a colori.
pfnPresentMultiplaneOverlay (DXGI) Chiamato dal runtime DXGI per notificare all'UMD che un'applicazione ha completato il rendering e richiede che la messaggistica unificata visualizzi la superficie di origine. Il driver deve visualizzare la superficie copiando, capovolgendo o eseguendo un'operazione di riempimento a colori.

Nella tabella seguente sono elencate le funzioni che un UMD può implementare facoltativamente.

Funzione Descrizione
pfnGetMultiPlaneOverlayCaps Chiamato dal runtime DXGI per richiedere che UMD ottenga le funzionalità di base del piano di sovrimpressione.
pfnGetMultiplaneOverlayGroupCaps Chiamato dal runtime DXGI per richiedere che l'UMD ottenga un gruppo di funzionalità del piano di sovrimpressione.

Strutture ed enumerazioni in modalità utente MPO

Tutte le strutture e le enumerazioni in modalità utente usate con le interfacce dei driver di dispositivo MPO (DDI).

DDI Descrizione
D3DDDI_MULTIPLANE_ALLOCATION_INFO Specifica informazioni su un'allocazione MPO.
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES Usato dalla MESSAGGISTICA unificata per specificare gli attributi del piano di sovrimpressione.
D3DDDI_MULTIPLANE_OVERLAY_BLEND Identifica un'operazione di fusione da eseguire su un piano di sovrapposizione.
D3DDDI_MULTIPLANE_OVERLAY_CAPS Usato dalla MESSAGGISTICA unificata per specificare le funzionalità del piano di sovrapposizione.
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS Identifica le funzionalità di sovrapposizione.
D3DDDI_MULTIPLANE_OVERLAY_FLAGS Identifica un'operazione di scorrimento da eseguire su un piano di sovrimpressione.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS Usato dalla MESSAGGISTICA unificata per specificare un gruppo di funzionalità del piano di sovrimpressione.
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT Specifica informazioni su un gruppo di funzionalità MPO.
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identifica i processi di filtro che l'hardware deve eseguire quando si estende o riduce i dati MPO.
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identifica il formato dei fotogrammi video del piano di sovrimpressione. È supportato solo il valore D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE.
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identifica le informazioni di conversione e intervallo YUV che descrivono un MPO.
D3DDDI_PRESENT_MULTIPLANE_OVERLAY Specifica un piano di sovrimpressione da visualizzare.
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT Usato in una chiamata alla funzione pfnCheckMultiPlaneOverlaySupport (D3D) per controllare i dettagli sul supporto hardware per MPO.
D3DDDIARG_PRESENTMULTIPLANEOVERLAY Specifica una risorsa MPO da visualizzare.
D3DDDICB_PRESENTMULTIPLANEOVERLAY Descrive le allocazioni MPO copiate da e verso il contenuto.

Funzioni implementate dal driver in modalità kernel MPO

Nella tabella seguente sono elencate le funzioni MPO implementate dal driver miniport (KMD) in modalità kernel.

Funzione Descrizione
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT Chiamato dal sottosistema del kernel grafico DirectX per controllare i dettagli del supporto hardware per gli MPO.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 La funzione seguente viene chiamata per determinare se è supportata una configurazione di sovrapposizione multiplano specifica.
DXGKDDI_GETMULTIPLANEOVERLAYCAPS Chiamato per recuperare le funzionalità MPO. Il supporto per questa DDI è necessario per qualsiasi driver WDDM 2.2 che vuole supportare più piani.
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT Chiamato dopo che è stata applicata una nuova configurazione di sovrapposizione multiplano, consentendo al driver di ottimizzare lo stato hardware. Facoltativo per i driver WDDM 1.3 2.0 o versioni successive che supportano sovrapposizioni multiplano.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 Chiamato per modificare la configurazione della sovrimpressione visualizzata.
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 DxgkDdiCheckMultiPlaneOverlaySupport2 viene chiamato per determinare se è supportata una configurazione di sovrapposizione multipiano specifica.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Imposta gli indirizzi di più superfici, tra cui la porta di scambio di Desktop Window Manager (DWM), associata a una particolare origine video presente. Questa funzione viene usata per presentare più superfici (inclusa la porta di scambio di DWM) sullo schermo.
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DxgkDdiSetVidSourceAddressWithMultiPlaneOverlay2 viene chiamato per modificare la configurazione della sovrimpressione visualizzata.

Strutture in modalità kernel MPO

Nella tabella seguente sono elencate le strutture usate dal KmD.

Struttura Descrizione
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE Specifica gli attributi di supporto forniti dall'hardware per gli MPO.
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO Specifica le limitazioni sul supporto hardware di MPO.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES Usato dal KmD per specificare gli attributi del piano di sovrapposizione.
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 viene usato dal KMD per specificare gli attributi del piano di sovrapposizione.
DXGK_MULTIPLANE_OVERLAY_BLEND Identifica un'operazione di fusione da eseguire su un piano di sovrapposizione.
DXGK_MULTIPLANE_OVERLAY_FLAGS Identifica un'operazione di scorrimento da eseguire su un piano di sovrimpressione.
DXGK_MULTIPLANE_OVERLAY_PLANE Specifica un piano di sovrimpressione da visualizzare in una chiamata alla funzione DxgkDdiSetVidSourceAddressWithMultiPlaneOverlay.
DXGK_MULTIPLANE_OVERLAY_PLANE2 DXGK_MULTIPLANE_OVERLAY_PLANE2 viene usato con la funzione DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 per specificare un piano di sovrimpressione da visualizzare.
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE descrive gli attributi del piano di sovrapposizione multiplano, l'allocazione e il video presentano il numero di identificazione dell'origine di rete.
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO Specifica un piano di sovrimpressione da visualizzare durante un intervallo VSync.
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS Identifica le informazioni di conversione e intervallo YUV che descrivono un MPO.
DXGK_PRESENTMULTIPLANEOVERLAYINFO Specifica informazioni su un input VidPN e su un piano di sovrapposizione da visualizzare.
DXGK_PRESENTMULTIPLANEOVERLAYLIST Specifica un piano di sovrimpressione da visualizzare in una chiamata alla funzione DxgkDdiPresent.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT Usato in una chiamata alla funzione DxgkDdiCheckMultiPlaneOverlaySupport per controllare i dettagli sul supporto hardware per mpo.
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 viene passato alla funzione DxgkDdiCheckMultiPlaneOverlaySupport2 per determinare se è supportata una configurazione di sovrapposizione multipiano specifica.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY Contiene argomenti per la funzione DxgkDdiSetVidSourceAddressWithMultiPlaneOverlay.
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 viene passato alla funzione DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 per modificare la configurazione della sovrimpressione visualizzata.

Enumerazioni in modalità kernel MPO

Nella tabella seguente sono elencate le enumerazioni usate dal KmD.

Enumerazione Descrizione
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE Identifica la modalità di scorrimento stereo del piano di sovrimpressione. È supportato solo il valore DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE.
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT Identifica il formato di presentazione stereo del piano di sovrapposizione. È supportato solo il valore DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO.
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY Identifica i processi di filtro che l'hardware deve eseguire quando si estende o riduce i dati MPO.
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT Identifica il formato dei fotogrammi video del piano di sovrimpressione. È supportato solo il valore DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE.

Il valore D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS in D3DDDICAPS_TYPE indica il supporto UMD per mpo.