Condividi tramite


Residenza driver in WDDM 2.0

In questa sezione vengono fornite informazioni dettagliate sulle modifiche di residenza del driver per Windows Display Driver Model (WDDM) 2.0. La funzionalità descritta è disponibile a partire da Windows 10.

In questa sezione

Argomento Descrizione

Panoramica della residenza

Con l'introduzione del nuovo modello di residenza, la residenza viene spostata in un elenco esplicito nel dispositivo anziché nell'elenco dei buffer per comando. La gestione memoria video garantisce che tutte le allocazioni in un determinato elenco dei requisiti di residenza del dispositivo siano residenti prima che tutti i contesti appartenenti a tale dispositivo siano pianificati per l'esecuzione.

Rilevamento dell'utilizzo dell'allocazione

Con l'elenco di allocazione in uscita, la gestione memoria video non ha più visibilità sulle allocazioni a cui si fa riferimento in un determinato buffer dei comandi. Di conseguenza, la gestione memoria video non è più in grado di tenere traccia dell'utilizzo dell'allocazione e gestire la sincronizzazione correlata. Questa responsabilità sarà ora caduta sul driver in modalità utente. In particolare, il driver in modalità utente dovrà gestire la sincronizzazione rispetto all'accesso diretto della CPU all'allocazione e alla ridenominazione.

Offerta e recupero delle modifiche

Per WDDM v2, i requisiti relativi all'offerta e al recupero sono in fase di relax. I driver in modalità utente non sono più necessari per usare l'offerta e recuperare le allocazioni interne. Le applicazioni inattive/sospese elimineranno le risorse interne del driver usando l'API Trimintrodotta in Microsoft DirectX 11.1.

Accesso all'allocazione non residente

L'accesso dell'unità di elaborazione grafica (GPU) alle allocazioni che non sono residenti non è illegale e comporterà la rimozione di un dispositivo per l'applicazione che ha generato l'errore.

Esistono due modelli distinti di gestione di tale accesso non valido a seconda che il motore di errore supporti l'indirizzamento virtuale della GPU o meno:

  • Per i motori che non supportano l'indirizzamento virtuale della GPU e utilizzano l'elenco di posizioni di allocazione e patch per applicare patch ai riferimenti alla memoria, si verifica un accesso non valido quando il driver in modalità utente invia un elenco di allocazione che fa riferimento a un'allocazione che non è residente nel dispositivo,ad esempio il driver in modalità utente non ha chiamato MakeResidentCb in tale allocazione. Quando si verifica questo problema, il kernel grafico inserisce il contesto o il dispositivo difettoso in errore.
  • Per i motori che supportano l'indirizzamento virtuale DELLA GPU, ma accedono a un indirizzo virtuale GPU non valido, perché non esiste un'allocazione dietro l'indirizzo virtuale o esiste un'allocazione valida, ma non è stata effettuata la residenza, la GPU dovrebbe generare un errore di pagina non recuperabile sotto forma di interruzione. Quando si verifica l'interruzione dell'errore di pagina, il driver in modalità kernel deve inoltrare l'errore al kernel grafico tramite una nuova notifica di errore di pagina. Dopo aver ricevuto questa notifica, il kernel grafico avvia una reimpostazione del motore nel motore di errore e inserisce il contesto o il dispositivo difettoso in errore. Se la reimpostazione del motore ha esito negativo, il kernel grafico promuove l'errore in un rilevamento di timeout a livello di adattatore completo e ripristino (TDR).

Elaborare i budget di residenza

In WDDM v2 i processi verranno assegnati budget per la quantità di memoria che possono mantenere residenti. Questo budget può cambiare nel tempo, ma in genere verrà imposto solo quando il sistema è sotto pressione di memoria. Prima di Microsoft Direct3D 12, il budget viene gestito dal driver in modalità utente sotto forma di notifiche di taglio e errori MakeResident con STATUS_NO_MEMORY. Notifica TrimToBudget , Evict e MakeResident non riuscito chiama tutti i budget più recenti sotto forma di valore intero NumBytesToTrim che indica quanto deve essere tagliato per adattarsi al nuovo budget.