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.
- D3DDDI_FLUSH_FLAGS (nuovo)
- D3DDDIARG_COPYFLAGS (nuovo)
- D3DDDIARG_COUNTER_INFO (nuovo)
- D3DDDIARG_UPDATESUBRESOURCEUP (nuovo)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (nuovo)
- CreateResource2 (WDDM 1.3 e versioni successive dei driver Direct3D Level 9 devono restituire il codice di errore E_INVALIDARG se il valore del flag CaptureBuffer è impostato)
- D3D11_1_DDI_FLUSH_FLAGS (aggiunta costante D3DWDDM1_3DDI_TRIM_MEMORY )
- D3DDDI_DEVICEFUNCS (pfnFlush1, pfnCheckCounterInfo, pfnCheckCounter, pfnUpdateSubresourceUP membri aggiunti)
- D3DDDI_POOL(D3DDDIPOOL_STAGINGMEM costante aggiunta)
- D3DDDICAPS_TYPE (aggiunta costante D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT )
- GetCaps (nuove informazioni nelle osservazioni)
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: |
Questi scenari si applicano quando Viene chiamato GetCaps :
|
Queste funzioni Direct3D 11 hanno associato modifiche al comportamento: |
|
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. |
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. |
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. |