Condividi tramite


Funzionalità aggiunte nelle versioni precedenti di WDDM 2.X

Questa pagina descrive le funzionalità dei driver grafici che sono state aggiunte nelle versioni precedenti di WDDM 2.X per Windows 10. Per visualizzare le funzionalità aggiunte per la versione WDDM 2.X più recente, vedere Novità per Windows 10 driver di visualizzazione e grafica.

WDDM 2.6

Inchiostro super bagnato

Super-Wet Ink è una funzionalità che ruota attorno al rendering del buffer front-buffer. I driver IHV possono supportare la creazione di trame "visualizzabili" di formati o modalità che non sono supportati dall'hardware. Possono eseguire questa operazione assegnando la trama richiesta dall'app, insieme a una trama "shadow" con un formato/layout che può essere visualizzato e quindi copiando tra i due al momento. Questa "ombreggiatura" potrebbe non essere necessariamente una trama nel modo normale, ma potrebbe essere solo dati di compressione. Inoltre, potrebbe non essere necessario esistere, ma potrebbe essere un'ottimizzazione.

Il runtime si evolverà per comprendere questi aspetti delle superfici visualizzabili:

  • Indica se esiste o meno un'ombreggiatura per la visualizzazione in un determinato piano VidPnSource/piano.

  • Indipendentemente dal fatto che sia più ottimale che esista un'ombreggiatura.

  • Quando trasferire il contenuto dalla superficie dell'applicazione alla superficie ombreggiatura. Il runtime sarà esplicito su questa operazione, anziché essere implicito all'interno di Present.

  • Come richiedere l'impostazione di una modalità o lo scorrimento dinamico tra le superfici originali e shadow.

L'analisi può iniziare poco dopo una VBlank, analizza verticalmente dall'alto verso il basso dell'immagine e completa poco prima della successiva VBlank. Questo non è sempre il caso, a seconda della tempistica dell'orologio pixel e del layout dei dati nella trama; soprattutto se è effettivamente disponibile la compressione.

Sono state aggiunte nuove DDI per separare e comprendere le trasformazioni che si verificano prima dell'analisi, per abilitare (quando possibile) il rendering del buffer front-buffer. Vedere D3DWDDM2_6DDI_SCANOUT_FLAGS e PFND3DWDDM2_6DDI_PREPARE_SCANOUT_TRANSFORMATION.

Ombreggiatura della frequenza variabile

L'ombreggiatura della frequenza variabile o l'ombreggiatura dei pixel grossolani è un meccanismo per abilitare l'allocazione delle prestazioni/potenza del rendering a tassi variabili tra immagini di cui è stato eseguito il rendering.

Nel modello precedente, per usare MSAA (anti-aliasing multi-sample) per ridurre l'aliasing geometrico:

  • La quantità in base alla quale ridurre l'aliasing geometrico deve essere nota in anticipo quando la destinazione viene allocata.
  • La quantità in base alla quale ridurre l'aliasing geometrico non può essere modificata una volta allocata la destinazione.

In WDDM 2.6 il nuovo modello estende MSAA alla direzione opposta e grossolana dei pixel aggiungendo un nuovo concetto di ombreggiatura grossolana. Questo è il punto in cui è possibile eseguire l'ombreggiatura a una frequenza grossolana rispetto a un pixel. Un gruppo di pixel può essere ombreggiato come una singola unità e il risultato viene quindi trasmesso a tutti gli esempi nel gruppo.

Un'API di ombreggiatura grossolana consente alle app di specificare il numero di pixel che appartengono a un gruppo ombreggiato. Le dimensioni di pixel grossolane possono essere variate dopo l'allocazione della destinazione di rendering. Quindi, diverse parti dello schermo o passaggi di disegno diversi possono avere tassi di ombreggiatura del corso diversi.

Un'implementazione a più livelli è disponibile con due limiti eseguibili dall'utente. Per i livelli 1 e 2, l'ombreggiatura grossolana è disponibile per le risorse a campione singolo e MSAA. Per le risorse MSAA, l'ombreggiatura può essere eseguita per pixel grossolano o per esempio come di consueto. Tuttavia, nei livelli 1 e 2, per le risorse MSAA, il campionamento grossolano non può essere usato per ombreggiatura in corrispondenza di una frequenza tra ogni pixel e per campione.

Livello 1:

  • La frequenza di ombreggiatura può essere specificata solo su base di disegno; niente di più granulare di quello

  • La velocità di ombreggiatura si applica in modo uniforme a ciò che viene disegnato in modo indipendente dal punto in cui si trova all'interno della destinazione di rendering

Livello 2:

  • La frequenza di ombreggiatura può essere specificata in base a un disegno, come nel livello 1. È anche possibile specificare una combinazione di base per disegno e di:

    • Semantica dal vertice per causante e
    • Immagine dello spazio dello schermo
  • I tassi di ombreggiatura dalle tre origini vengono combinati usando un set di combinatori

  • Le dimensioni del riquadro dell'immagine dello spazio dello schermo sono 16x16 o più piccole. La frequenza di ombreggiatura richiesta dall'app è garantita esattamente (per precisione temporale e altri filtri di ricostruzione)

  • SV_ShadingRate input PS è supportato. La frequenza dei vertici per causa, definita anche in questo caso una frequenza per primitiva, è valida solo quando viene usato un riquadro di visualizzazione e SV_ViewportIndex non viene scritto in.

  • La frequenza dei vertici per causa, definita anche frequenza per primitiva, può essere usata con più di un viewport se il limite SupportPerVertexShadingRateWithMultipleViewports è contrassegnato true. Inoltre, in questo caso, può essere usato quando SV_ViewportIndex viene scritto in.

Vedere PFND3D12DDI_RS_SET_SHADING_RATE_0062 e D3D12DDI_SHADING_RATE_0062.

Raccogliere informazioni di diagnostica

Raccogliere informazioni di diagnostica consente al sistema operativo di raccogliere dati privati dai driver per schede grafiche che sono costituiti sia dal rendering che dalle funzioni di visualizzazione. Questa nuova funzionalità è un requisito in WDDM 2.6.

Il nuovo DDI deve consentire al sistema operativo di raccogliere informazioni in qualsiasi momento in cui viene caricato un driver. Attualmente il sistema operativo usa la funzione DxgkDdiCollectDebugInfo implementata dal miniport per eseguire query sui dati privati del driver per i casi correlati di timeout (rilevamento timeout e ripristino). Il nuovo DDI verrà usato per raccogliere dati per diversi motivi. Il sistema operativo chiamerà questo DDI quando è necessaria la diagnostica fornendo un tipo di informazioni richieste. Il driver deve raccogliere tutte le informazioni private importanti per analizzare il problema e inviarlo al sistema operativo. DxgkDdiCollectDebugInfo sarà successivamente deprecato e sostituito con DxgkDdiCollectDiagnosticInfo.

Vedere DXGKDDI_COLLECTDIAGNOSTICINFO.

Elaborazione in background

L'elaborazione in background consente ai driver in modalità utente di esprimere il comportamento di threading desiderato e il runtime per controllarlo/monitorarlo. I driver in modalità utente usano thread in background e assegnano i thread il più basso possibile e si basano sull'utilità di pianificazione NT per garantire che questi thread non interrompano i thread critici, in genere con esito positivo.

Le API consentono alle app di modificare la quantità di elaborazione in background appropriata per i carichi di lavoro e quando eseguire tale lavoro.

Vedere PFND3D12DDI_QUEUEPROCESSINGWORK_CB_0062.

Aggiornamento frequente driver

L'aggiornamento frequente del driver riduce il tempo di inattività del server il più possibile quando è necessario aggiornare un componente del sistema operativo.

La patch ad accesso frequente del driver viene usata per applicare una patch di sicurezza al driver in modalità kernel. In questo caso viene richiesto al driver di salvare la memoria dell'adattatore, l'adattatore viene arrestato, il driver viene scaricato, viene caricato un nuovo driver e viene avviato di nuovo l'adattatore.

VedereDXGKDDI_SAVEMEMORYFORHOTUPDATE e DXGKDDI_RESTOREMEMORYFORHOTUPDATE.

WDDM 2.5

Carichi di lavoro monitorati

I carichi di lavoro monitorati sono una funzionalità sperimentale che fornisce un maggiore controllo sul compromesso tra l'esecuzione del processore più veloce e il consumo di energia inferiore e non è disponibile fino a un ulteriore avviso. L'implementazione è stata rimossa da Windows 10, versione 2003 e deprecata dalle versioni precedenti del sistema operativo come parte di una correzione di sicurezza.

Modifiche del contenuto

Argomento Data Descrizione
Estensione EDID (VSDB) per gli HMD e le visualizzazioni specializzate 03/12/2018 Specifica per i produttori di display
Sottosistema kernel della grafica DirectX (Dxgkrnl.sys) 12/04/2018 Interfacce in modalità kernel implementate dal sistema operativo Windows tramite il sottosistema kernel grafico Microsoft DirectX (Dxgkrnl.sys).
Funzionalità WDDM 2.1 01/10/2019 Descrive le nuove funzionalità e aggiornate per WDDM 2.1

Raytracing

I nuovi DDI Direct3D sono stati creati in parallelo dell'API Direct3D, per supportare il raytracing accelerato dall'hardware. Le DDI di esempio includono:

Per altre informazioni sul raytracing, vedere:

Visualizzazione sincronizzazione

Il sistema operativo verificherà le funzionalità per la sincronizzazione della visualizzazione quando lo schermo viene esposto dal driver al sistema operativo, quindi prima di abilitare la visualizzazione. Per i dispositivi figlio TypeIntegratedDisplay, viene segnalato tramite una chiamata a DxgkDdiQueryAdapterInfo con TipoDXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2 durante l'inizializzazione dell'adattatore. Per i dispositivi figlio TypeVideoOutput, supportati a partire da WDDM 2.5, le funzionalità vengono segnalate come parte dell'elaborazione del plug a caldo tramite DxgkDdiUpdateMonitorLinkInfo in modo che le funzionalità possano cambiare in base al monitoraggio di destinazione o connesso.

Il sistema operativo specifica la sincronizzazione della visualizzazione nella chiamata DxgkDdiSetTimingsFromVidPn nel campo Input nella struttura DXGK_SET_TIMING_PATH_INFO percorso.

WDDM 2.1

WDDM 2.1 consente nuovi scenari e offre miglioramenti significativi nelle aree delle prestazioni, dell'affidabilità, della resilienza dell'aggiornamento, dei miglioramenti di diagnostica e degli avanzamenti futuri del sistema per il sub-sistema grafico di Windows. Il modello di driver WDDM 2.0 è un prerequisito per D3D12. WDDM 2.0 e DirectX12 sono disponibili solo in Windows 10 e versioni successive.

Di seguito è riportato un elenco di aggiunte e aggiornamenti delle funzionalità per WDDM 2.1.

  • Migliorare le prestazioni grafiche riducendo il tempo di sovraccarico trascorso nella gestione della memoria e un utilizzo più efficiente della memoria grafica scarsa. I miglioramenti delle prestazioni grafiche sono:

    • Offrire e recuperare risorse: offrire e recuperare miglioramenti per ridurre il footprint di memoria delle applicazioni in esecuzione in modalità in background.
    • Supporto per la codifica voce tabella di pagina 2MB: nella codifica WDDM 2.1, la codifica PTE (Large Page Table Entry) in VRAM è abilitata. Questa modifica aumenta le prestazioni nei sistemi che lo supportano.
    • Supporto per pagine di memoria da 64 KB: le allocazioni di memoria virtuale usando una granularità di 64 KB sono supportate anche in WDDM 2.1. Questa modifica offre particolarmente vantaggi alle API e ai soC riducendo il sovraccarico per l'accesso alle pagine di memoria virtuale.
  • Miglioramenti del contenuto protetto basato su hardware con il batch (PlayReady 3.0)

  • Installazione dell'archivio driver per i driver grafici per migliorare la resilienza dell'aggiornamento del driver.

  • DXIL, un nuovo linguaggio conforme allo shader

  • Miglioramenti delle prestazioni e dell'ottimizzazione D3D12

  • Opzioni di diagnostica migliorate per gli sviluppatori

Per altre informazioni, vedere Funzionalità di WDDM 2.1.

WDDM 2.0

WDDM 2.0 include aggiornamenti di gestione della memoria.

Memoria virtuale GPU

  • Tutte le memoria fisica vengono astratte in segmenti virtuali che possono essere gestiti dalla gestione memoria dell'unità di elaborazione grafica (GPU).
  • Ogni processo ottiene il proprio spazio di indirizzi virtuali GPU.
  • Il supporto per gli intervalli di scorrimento è stato rimosso.

Per altre informazioni, vedere Memoria virtuale GPU in WDDM 2.0.

Residenza driver

  • La gestione memoria video garantisce che le allocazioni si trovino in memoria prima di inviare i buffer dei comandi al driver. Per facilitare questa funzionalità, sono state aggiunte interfacce del driver in modalità utente (DDIs) (MakeResident, TrimResidency, Evict).
  • L'elenco di posizioni di allocazione e patch viene eliminato perché non è necessario nel modello WDDM 2.0.
  • I driver in modalità utente sono ora responsabili della gestione del rilevamento delle allocazioni. Per abilitare questa operazione sono state aggiunte diverse DDI.
  • I driver hanno budget di memoria e si prevede di adattarsi sotto pressione di memoria. Ciò consente ai driver di Windows universale di funzionare tra le piattaforme dell'applicazione.
  • Le DDI sono state aggiunte per la sincronizzazione dei processi e il monitoraggio del contesto.

Per altre informazioni, vedere Residenza driver in WDDM 2.0.