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.
L'UMD fornisce puntatori alle funzioni MPO DXGI tramite i membri della struttura DXGI1_3_DDI_BASE_FUNCTIONS quando viene chiamata la funzione CreateDevice(D3D10) specifica dell'adattatore. Per altre info, vedi Supporto di DXGI DDI.
UMD fornisce puntatori alle funzioni MPO Direct3D tramite membri della struttura D3DDDI_DEVICEFUNCS in una chiamata alla funzione CreateDevice del driver.
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.