Livelli di funzionalità Direct3D
Per gestire la diversità delle schede video nei computer nuovi ed esistenti, Microsoft Direct3D 11 introduce il concetto di livelli di funzionalità. Questo argomento illustra i livelli di funzionalità Direct3D.
Ogni scheda video implementa un determinato livello di funzionalità Microsoft DirectX (DX) a seconda delle unità di elaborazione grafica installate. Nelle versioni precedenti di Microsoft Direct3D è possibile trovare la versione di Direct3D implementata dalla scheda video e quindi programmare l'applicazione di conseguenza.
Con Direct3D 11, viene introdotto un nuovo paradigma denominato livelli di funzionalità. I livelli di funzionalità sono set ben definiti di funzionalità GPU, Ad esempio, il livello di funzionalità 9_1 implementa la funzionalità implementata in Microsoft Direct3D 9, che espone le funzionalità dei modelli di shader ps_2_x e vs_2_x, mentre il livello di funzionalità 11_0 implementa la funzionalità implementata in Direct3D 11.
Ora, quando si crea un dispositivo, è possibile tentare di creare un dispositivo per il livello di funzionalità che si vuole richiedere. Se la creazione del dispositivo funziona, tale livello di funzionalità esiste, in caso contrario, l'hardware non supporta tale livello di funzionalità. È possibile provare a ricreare un dispositivo a un livello di funzionalità inferiore oppure scegliere di uscire dall'applicazione. Per altre info sulla creazione di un dispositivo, vedi la funzione D3D11CreateDevice .
Usando i livelli di funzionalità, è possibile sviluppare un'applicazione per Direct3D 9, Microsoft Direct3D 10 o Direct3D 11 e quindi eseguirla su hardware 9, 10 o 11 (con alcune eccezioni, ad esempio, le nuove 11 funzionalità non verranno eseguite su una scheda 9 esistente). Ecco un paio di altre proprietà di base dei livelli di funzionalità:
- Una GPU che consente la creazione di un dispositivo soddisfa o supera la funzionalità di tale livello di funzionalità.
- Un livello di funzionalità include sempre la funzionalità dei livelli di funzionalità precedenti o inferiori.
- Un livello di funzionalità non implica prestazioni, ma solo funzionalità. Le prestazioni dipendono dall'implementazione hardware.
- Scegliere un livello di funzionalità quando si crea un dispositivo Direct3D 11.
Per informazioni sulle limitazioni per la creazione di dispositivi di tipo nonhardware in determinati livelli di funzionalità, vedere Limitazioni per la creazione di warp e dispositivi di riferimento.
Per facilitare la scelta del livello di funzionalità da progettare, confrontare le funzionalità per ogni livello di funzionalità.
La sezione 10Level9 Reference elenca le differenze tra il comportamento dei vari metodi ID3D11Device e ID3D11DeviceContext a vari livelli di funzionalità 10Level9.
Formati di numeri di versione
Sono disponibili tre formati per le versioni Direct3D, i modelli shader e i livelli di funzionalità.
- Le versioni Direct3D usano un punto; Ad esempio, Direct3D 12.0.
- I modelli shader usano un punto; ad esempio, modello di shader 5.1.
- I livelli di funzionalità usano un carattere di sottolineatura; ad esempio, livello di funzionalità 12_0.
Supporto delle funzionalità direct3D 12 (livelli di funzionalità da 12_2 a 11_0)
Per i livelli di funzionalità elencati sono disponibili le funzionalità seguenti. Le intestazioni nella riga superiore sono livelli di funzionalità Direct3D 12. Le intestazioni nella colonna a sinistra sono caratteristiche. Vedere anche Note a piè di pagina per le tabelle.
Funzionalità \ Livello di funzionalità | 12_28 | 12_10 | 12_00 | 11_1 1 | 11_0 |
---|---|---|---|---|---|
Modello shader | 6.5 | 5.12 | 5.12 | 5.12 | 5.12 |
Modello di driver WDDM | 2.0 | 1.x | 1.x | 1.x | 1.x |
Raytracing | Livello 1.1 | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Frequenza di ombreggiatura variabile | Livello 2 | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Mesh shader | Livello 1 | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Feedback del campionatore | Livello 0.9 | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Associazione di risorse | Livello 3 | Livello 3 | Livello 3 | Livello 3 | Livello 1 |
Firma radice | 1.1 | 1 | 1 | 1 | 1 |
Test dei limiti di profondità | sì | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Buffer di scrittura immediato | Direct, Compute, Bundle | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Bit di indirizzi virtuali GPU | 4010 | 4010 | 4010 | ||
Risorse affiancate | Livello 3 | Livello 26 | Livello 26 | Facoltativo | Facoltativo |
Rasterizzazione conservativa | Livello 3 | Livello 16 | Facoltativo | Facoltativo | No |
Visualizzazioni ordine rasterizzatore | Sì | sì | Facoltativo | Facoltativo | No |
Filtri min/max | Sì | Sì | sì | Facoltativo | No |
Buffer predefinito mappa | N/D | Facoltativo | Facoltativo | Facoltativo | Facoltativo |
Valore di riferimento dello stencil specificato dello shader | Facoltativo | Facoltativo | Facoltativo | Facoltativo | No |
Caricamenti della visualizzazione accesso non ordinato tipizzato | 18 formati, più facoltativi | 18 formati, più facoltativi | 18 formati, più facoltativi | 3 formati, più facoltativi | 3 formati, più facoltativi |
Geometry shader | Sì | Sì | Sì | Sì | Sì |
Streaming in uscita | Sì | Sì | Sì | Sì | Sì |
DirectCompute/Compute Shader | Sì | Sì | Sì | Sì | Sì |
Hull e Domain Shader | Sì | Sì | Sì | Sì | Sì |
Funzionalità \ Livello di funzionalità | 12_28 | 12_10 | 12_00 | 11_1 1 | 11_0 |
Matrici di risorse trama | Sì | Sì | Sì | Sì | Sì |
Matrici di risorse Cubemap | Sì | Sì | Sì | Sì | Sì |
Compressione BC4/BC5 | Sì | Sì | Sì | Sì | Sì |
Compressione BC6H/BC7 | Sì | Sì | Sì | Sì | Sì |
Da alfa a copertura | Sì | Sì | Sì | Sì | Sì |
Formati estesi (BGRA e così via) | Sì | Sì | Sì | Sì | Sì |
Formato High Color 10 bit XR | Sì | Sì | Sì | Sì | Sì |
Operazioni logiche (unione di output) | Sì | Sì | Sì | Sì | Facoltativo1 |
Rasterizzazione indipendente dalla destinazione | Sì | Sì | Sì | Sì | No |
Destinazione di rendering multipla (MRT) con ForcedSampleCount 1 | Sì | Sì | Sì | Sì | Facoltativo1 |
Slot UAV | Livello9 | 64 | 64 | 64 | 8 |
UAV in ogni fase | Sì | Sì | Sì | Sì | No |
Funzionalità \ Livello di funzionalità | 12_28 | 12_10 | 12_00 | 11_1 1 | 11_0 |
Numero massimo di campioni forzati per il rendering solo UAV | 16 | 16 | 16 | 16 | 8 |
Offset del buffer costante e aggiornamenti parziali | Sì | Sì | Sì | Sì | Facoltativo1 |
Formati a 16 bit per pixel (bpp) | Sì | Sì | Sì | Sì | Facoltativo1 |
Dimensione massima trama | 16384 | 16384 | 16384 | 16384 | 16384 |
Dimensione Max Cubemap | 16384 | 16384 | 16384 | 16384 | 16384 |
Max Volume Extent | 2048 | 2048 | 2048 | 2048 | 2048 |
Ripetizione massima trama | 16384 | 16384 | 16384 | 16384 | 16384 |
Max Anisotropy | 16 | 16 | 16 | 16 | 16 |
Numero massimo di primitive | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 |
Max Vertex Index | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 |
Numero massimo di slot di input | 32 | 32 | 32 | 32 | 32 |
Destinazioni di rendering simultanee | 8 | 8 | 8 | 8 | 8 |
Funzionalità \ Livello di funzionalità | 12_28 | 12_10 | 12_00 | 11_1 1 | 11_0 |
Query di occlusione | Sì | Sì | Sì | Sì | Sì |
Fusione alfa separata | Sì | Sì | Sì | Sì | Sì |
Mirror una volta | Sì | Sì | Sì | Sì | Sì |
Elementi vertice sovrapposti | Sì | Sì | Sì | Sì | Sì |
Maschere di scrittura indipendenti | Sì | Sì | Sì | Sì | Sì |
Instancing | Sì | Sì | Sì | Sì | Sì |
Nonpowers-of-2 conditionally3 | No | No | No | No | No |
Nessuna potenza-of-2 in modo condizionale4 | Sì | Sì | Sì | Sì | Sì |
Vengono inoltre impostati i flag seguenti:
Funzionalità \ Livello di funzionalità | 12_28 |
---|---|
WaveOps | TRUE |
OutputMergerLogicOp | TRUE |
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation | TRUE |
CopyQueueTimestampQueriesSupported | TRUE |
CastingFullyTypedFormatSupported | TRUE |
Int64ShaderOps | TRUE |
Supporto delle funzionalità Direct3D 11 (livelli di funzionalità da 12_1 a 9_1)
Per i livelli di funzionalità elencati sono disponibili le funzionalità seguenti. Le intestazioni nella riga superiore sono livelli di funzionalità Direct3D 11. Le intestazioni nella colonna a sinistra sono caratteristiche. Vedere anche Note a piè di pagina per le tabelle.
Funzionalità \ Livello di funzionalità | 12_10 | 12_00 | 11_1 1 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Modello shader | 5.12 | 5.12 | 5.02 | 5.02 | 4.x | 4,0 | 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 | 2.0 (4_0_level_9_1) | 2.0 (4_0_level_9_1) | ||
Modello di driver WDDM | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | 1.x | ||
Risorse affiancate | Livello 26 | Livello 26 | Facoltativo | Facoltativo | No | No | No | No | No | ||
Rasterizzazione conservativa | Livello 16 | Facoltativo | Facoltativo | No | No | No | No | No | No | ||
Visualizzazioni ordine rasterizzatore | sì | Facoltativo | Facoltativo | No | No | No | No | No | No | ||
Filtri min/max | Sì | sì | Facoltativo | No | No | No | No | No | No | ||
Buffer predefinito mappa | Facoltativo | Facoltativo | Facoltativo | Facoltativo | No | No | No | No | No | ||
Valore di riferimento dello stencil specificato dello shader | Facoltativo | Facoltativo | Facoltativo | No | No | No | No | No | No | ||
Caricamenti della visualizzazione accesso non ordinato tipizzato | 18 formati, più facoltativi | 18 formati, più facoltativi | 3 formati, più facoltativi | 3 formati, più facoltativi | No | No | No | No | No | ||
Geometry shader | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No | ||
Streaming in uscita | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No | ||
DirectCompute/Compute Shader | Sì | Sì | Sì | sì | Facoltativo | Facoltativo | N/D | N/D | N/D | ||
Hull e Domain Shader | Sì | Sì | Sì | Sì | No | No | No | No | No | ||
Funzionalità \ Livello di funzionalità | 12_10 | 12_00 | 11_1 1 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Matrici di risorse trama | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No | ||
Matrici di risorse Cubemap | Sì | Sì | Sì | Sì | Sì | No | No | No | No | ||
Compressione BC4/BC5 | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No | ||
Compressione BC6H/BC7 | Sì | Sì | Sì | Sì | No | No | No | No | No | ||
Da alfa a copertura | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No | ||
Formati estesi (BGRA e così via) | Sì | Sì | Sì | sì | Facoltativo | Facoltativo | Sì | Sì | Sì | ||
Formato High Color 10 bit XR | Sì | Sì | Sì | sì | Facoltativo | Facoltativo | N/D | N/D | N/D | ||
Operazioni logiche (unione di output) | Sì | Sì | Sì | Facoltativo1 | Facoltativo1 | Facoltativo1 | No | No | No | ||
Rasterizzazione indipendente dalla destinazione | Sì | Sì | Sì | Sì | Sì | No | No | No | No | No | No |
Destinazione di rendering multipla (MRT) con ForcedSampleCount 1 | Sì | Facoltativo1 | Facoltativo1 | Facoltativo1 | No | No | No | ||||
Slot UAV | 64 | 64 | 64 | 8 | 1 | 1 | N/D | N/D | N/D | ||
UAV in ogni fase | Sì | Sì | Sì | No | No | No | N/D | N/D | N/D | ||
Funzionalità \ Livello di funzionalità | 12_10 | 12_00 | 11_1 1 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Numero massimo di campioni forzati per il rendering solo UAV | 16 | 16 | 16 | 8 | N/D | N/D | N/D | N/D | N/D | ||
Offset del buffer costante e aggiornamenti parziali | Sì | Sì | Sì | Facoltativo1 | Facoltativo1 | Facoltativo1 | Sì1 | Sì1 | Sì1 | ||
Formati a 16 bit per pixel (bpp) | Sì | Sì | Sì | Facoltativo1 | Facoltativo1 | Facoltativo1 | Facoltativo1 | Facoltativo1 | Facoltativo1 | ||
Dimensione massima trama | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 2048 | 2048 | ||
Dimensione Max Cubemap | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 4096 | 512 | 512 | ||
Max Volume Extent | 2048 | 2048 | 2048 | 2048 | 2048 | 2048 | 256 | 256 | 256 | ||
Ripetizione massima trama | 16384 | 16384 | 16384 | 16384 | 8192 | 8192 | 8192 | 2048 | 128 | ||
Max Anisotropy | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 16 | 2 | ||
Numero massimo di primitive | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 1048575 | 1048575 | 65535 | ||
Max Vertex Index | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 2^32 - 1 | 1048575 | 1048575 | 65534 | ||
Numero massimo di slot di input | 32 | 32 | 32 | 32 | 32 | 16 | 16 | 16 | 16 | ||
Destinazioni di rendering simultanee | 8 | 8 | 8 | 8 | 8 | 8 | 4 | 1 | 1 | ||
Funzionalità \ Livello di funzionalità | 12_28 | 12_10 | 11_1 1 | 11_0 | 10_1 | 10_0 | 9_37 | 9_2 | 9_1 | ||
Query di occlusione | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì | No | ||
Fusione alfa separata | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì | No | ||
Mirror una volta | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì | No | ||
Elementi vertice sovrapposti | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì | No | ||
Maschere di scrittura indipendenti | Sì | Sì | Sì | Sì | Sì | Sì | Sì | No | No | ||
Instancing | Sì | Sì | Sì | Sì | Sì | Sì | Sì7 | No | No | ||
Nonpowers-of-2 conditionally3 | No | No | No | No | No | No | Sì | Sì | Sì | ||
Nessuna potenza-of-2 in modo condizionale4 | Sì | Sì | Sì | Sì | Sì | Sì | No | No | No |
Note a piè di pagina per le tabelle
0 Richiede il runtime Direct3D 11.3 o Direct3D 12.
1 Richiede il runtime direct3D 11.1.
2 Il modello shader 5.0 e versioni successive può facoltativamente supportare shader a precisione doppia, shader a precisione doppia estesa, istruzioni dello shader SAD4 e shader con precisione parziale. Per determinare le opzioni del modello di shader 5.0 disponibili per DirectX 11, chiamare ID3D11Device::CheckFeatureSupport. La compatibilità dipende dall'hardware in esecuzione. Il modello shader 5.1 e versioni successive sono supportati solo tramite l'API DirectX 12, indipendentemente dal livello di funzionalità usato. DirectX 11 supporta solo fino al modello shader 5.0. L'API DirectX 12 scende solo a livello di funzionalità 11_0.
3 A livelli di funzionalità 9_1, 9_2 e 9_3, il dispositivo display supporta l'uso di trame 2D con dimensioni che non sono poteri di due in due condizioni. In primo luogo, è possibile creare un solo livello di mappa MIP per ogni trama e, in secondo luogo, non è consentito eseguire il wrapping delle modalità di campionamento per le trame, ovvero i membri AddressU, AddressV e AddressW di D3D11_SAMPLER_DESC non possono essere impostati su D3D11_TEXTURE_ADDRESS_WRAP.
4 A livelli di funzionalità 10_0, 10_1 e 11_0, il dispositivo di visualizzazione supporta in modo incondizionato l'uso di trame 2D con dimensioni che non sono poteri di due.
5 Vertex Shader 2a con 256 istruzioni, 32 registri temporanei, controllo del flusso statico della profondità 4, controllo del flusso dinamico della profondità 24 e D3DVS20CAPS_PREDICATION. Pixel Shader 2x con 512 istruzioni, 32 registri temporanei, controllo del flusso statico di profondità 4, controllo del flusso dinamico di profondità 24, D3DPS20CAPS_ARBITRARYSWIZZLE, D3DPS20CAPS_GRADIENTINSTRUCTIONS, D3DPS20CAPS_PREDICATION, D3DPS20CAPS_NODEPENDENTREADLIMIT e D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT.
6 Livelli superiori facoltativi.
7 Per il livello di funzionalità 9_3, gli unici metodi di rendering supportati sono Draw,DrawIndexed e DrawIndexInstanced. Anche per il livello di funzionalità 9_3, il rendering dell'elenco dei punti è supportato solo per il rendering tramite Draw.
8 Supportato da Windows 11.
9 Nell'API Direct3D 12 esistono limiti sul numero di descrittori in un heap CBV/SRV/UAV. Per informazioni dettagliate, vedere Livelli hardware . Separatamente, esiste un limite per il numero di UAV in tutte le tabelle descrittori in tutte le fasi, che si basa sul livello di associazione delle risorse.
Un processo a 64 bit richiede 40 bit di spazio indirizzi disponibile per risorsa e per processo. Un processo a 32 bit potrebbe essere limitato a 31 bit di spazio indirizzi. Esistono due funzionalità (limiti) disponibili nell'API, per processo e per risorsa. Lo spazio degli indirizzi per processo è sempre maggiore o uguale allo spazio indirizzi per risorsa.
Per informazioni dettagliate sul supporto del formato a livelli di funzionalità hardware diversi, vedere:
- Supporto del formato DXGI per l'hardware Direct3D Feature Level 12.1
- Supporto del formato DXGI per l'hardware a livello di funzionalità Direct3D 12.0
- Supporto del formato DXGI per l'hardware Direct3D Feature Level 11.1
- Supporto del formato DXGI per Il livello di funzionalità Direct3D 11.0 Hardware
- Supporto hardware per formati Direct3D 10Level9
- Supporto hardware per formati Direct3D 10.1
- Supporto hardware per formati Direct3D 10