Miglioramenti delle prestazioni di rendering Direct3D

Windows Display Driver Model (WDDM) 1.3 e versioni successive possono supportare miglioramenti delle prestazioni di rendering di Microsoft Direct3D che consentono all'hardware Direct3D 9 di usare meglio i buffer e i contatori hardware e rendere efficienti copie della memoria di sistema nelle sottorisorse. Queste funzionalità, che rispecchiano alcune delle funzionalità disponibili per l'hardware Direct3D versione 10, sono nuove a partire da Windows 8.1.

Sono disponibili anche nuovi miglioramenti delle prestazioni delle risorse Direct3D 11.1 e i miglioramenti delle prestazioni predefiniti della mappa. Lo scenario predefinito della mappa è descritto nella sezione Modifiche al comportamento seguente.

Informazioni di riferimento sulle prestazioni di rendering

Questa sezione di riferimento descrive le interfacce del driver del dispositivo in modalità utente (DDIs).

Funzioni di prestazioni di rendering Direct3D implementate dal driver in modalità utente

Questa sezione contiene funzioni che implementano un driver visualizzato windows (WDDM) 1.3 e versioni successive per il driver di visualizzazione in modalità utente per supportare i miglioramenti delle prestazioni del rendering di Microsoft Direct3D.

PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO

PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP

Strutture e enumerazioni di rendering Direct3D

Queste strutture in modalità utente e enumerazioni supportano i miglioramenti delle prestazioni di rendering e vengono aggiornati o nuovi per Windows 8.1. Tutti si applicano ai driver Direct3D Level 9, ad eccezione di D3D11_1_DDI_FLUSH_FLAGS.

Requisiti di implementazione DDI a partire da WDDM 1.3

A partire da WDDM 1.3, le funzioni seguenti sono necessarie o facoltative per i driver in modalità utente da implementare.

Gruppo di funzioni Descrizione

Funzioni Direct3D 9 facoltative prima di WDDM 1.3. Ora richiesto:

Funzioni Direct3D 9 disponibili a partire da WDDM 1.3. Un driver deve implementare tutte queste funzioni o nessuno di essi:

Quando vengono implementate immediatamente le funzioni facoltative WDDM 1.3 e versioni successive, queste funzioni hanno associato modifiche al comportamento:

  • BltDXGI — gestione temporanea nativa
  • Blt1DXGI — gestione temporanea nativa
  • CreateResource2 : gestione temporanea nativa, trame di acquisizione di grandi dimensioni
  • GetCaps — timestamp, semplice instancing
  • Blocco - Gestione temporanea nativa
  • TexBlt1 — gestione temporanea nativa
  • Sbloccare — gestione temporanea nativa
  • VolBlt1 — gestione temporanea nativa

Questi scenari si applicano quando Viene chiamato GetCaps :

  • Se D3DDDICAPS_GETD3DQUERYDATA è impostato, il driver può segnalare facoltativamente il supporto per i timestamp, ovvero il runtime Direct3D non maschera il supporto.
  • Se D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT è impostato, il driver può segnalare il supporto hardware facoltativo per l'instancing.

Queste funzioni Direct3D 11 hanno associato modifiche al comportamento:

  • CreateResource(D3D11) — impostazione predefinita mappa buffer (vedere La sezione Modifiche del comportamento seguente)
  • pfnFlush1 — taglio delle risorse
  • ResourceMap : impostazione predefinita mappa buffer (vedere La sezione Modifiche al comportamento seguente)
  • ResourceUnmap : impostazione predefinita mappa buffer (vedere La sezione Modifiche al comportamento seguente)

Modifiche al comportamento per le chiamate alla creazione, alla mappa e alle funzioni di unmap

Per queste funzioni implementate da WDDM 1.3 e versioni successive, il runtime Direct3D fornisce un set limitato di valori di input per lo scenario predefinito della mappa. Questi valori limitati si applicano solo ai driver che supportano il livello di funzionalità 11.1 e versioni successive.

Funzione CreateResource(D3D11):

Questi membri della struttura di input D3D11DDIARG_CREATERESOURCE sono limitati:

Membro Descrizione

ResourceDimension e Utilizzo

Questi cambiamenti di comportamento si applicano solo quando il runtime Direct3D fornisce il tipo D3D10DDIRESOURCE_BUFFER per ResourceDimension e digitare D3D10_DDI_USAGE_DEFAULT per l'utilizzo.

BindFlags

Il runtime Direct3D imposta solo i valori di D3D10_DDI_BIND_SHADER_RESOURCE e D3D11_DDI_BIND_UNORDERED_ACCESS .

MapFlags

Se vengono soddisfatti tutti gli altri requisiti del membro elencati qui, il runtime può impostare D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE e D3D10_DDI_MAP_READWRITE valori. Il driver deve supportare questi valori. I valori di D3D10_DDI_MAP_WRITE_DISCARD e D3D10_DDI_MAP_WRITE_NOOVERWRITE non sono validi.

MiscFlags

Il runtime imposta solo i valori di D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS e D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED .

Formato

Il runtime imposta solo il valore di DXGI_FORMAT_UNKNOWN .

SampleDesc

Il runtime imposta la DXGI_SAMPLE_DESC. Contare il membro su 1 e il membro Quality su zero.

MipLevels

Il runtime imposta il valore su 1.

ArraySize

Il runtime imposta il valore su 1.

pPrimaryDesc

Il runtime imposta il valore su NULL.

Funzione ResourceMap:

Questi parametri di input in ResourceMap sono limitati:

Parametro Descrizione

hResource

Il runtime Direct3D imposta solo una risorsa D3D10DDIRESOURCE_BUFFER quando viene impostato un valore diverso da zero per MapFlags nella chiamata di creazione a CreateResource(D3D11)..

Il runtime imposta solo il valore di DXGI_FORMAT_UNKNOWN .

Sottoresource

Il runtime imposta solo il valore su 0.

DDIMap

Se vengono soddisfatti tutti gli altri requisiti dei membri elencati qui, il runtime può impostare D3D10_DDI_MAP_READ, D3D10_DDI_MAP_WRITE o D3D10_DDI_MAP_READWRITE valori corrispondenti al valore MapFlags impostato nella chiamata di creazione a CreateResource(D3D11).

Bandiere

Anche se il valore di input dal runtime non è limitato, il driver deve essere in grado di supportare il valore di D3D10_DDI_MAP_FLAG_DONOTWAIT .

pMappedSubResource

Anche se il valore di input dal runtime non è limitato, il driver deve assegnare un puntatore valido memorizzabile nella cache della CPU al D3D10DDI_MAPPED_SUBRESOURCE. Membro pData e deve impostare RowPitch e DepthPitch in modo che corrispondano alle dimensioni del buffer e ai dati forniti in pData.

Funzione ResourceUnmap:

Questi parametri di input per ResourceUnmap sono limitati:

Parametro Descrizione

hDevice

Anche se il valore di input del runtime Direct3D non è limitato, il valore che corrisponde al valore hDevice della chiamata ResourceMap originale.

hResource

Il runtime imposta solo una risorsa D3D10DDIRESOURCE_BUFFER quando viene impostato un valore diverso da zero per MapFlags nella chiamata di creazione a CreateResource(D3D11).

Sottorisorsa

Il runtime imposta solo il valore su 0.