Eccezioni

Alcune funzionalità di Direct3D 11 non sono completamente specificate dai livelli di funzionalità. Questo argomento descrive le eccezioni quando si usa Direct3D 11 su hardware di livello inferiore. Forse una funzionalità è stata aggiunta dopo la definizione del livello di funzionalità (e richiede un driver aggiornato) o forse gpu diverse implementano implementazioni ampiamente diverse. Le eccezioni a livello di funzionalità possono essere raccolte nei gruppi seguenti:

La sezione 10Level9 Reference elenca le differenze tra il comportamento dei vari metodi ID3D11Device e ID3D11DeviceContext a vari livelli di funzionalità 10Level9.

Formati estesi

Un formato esteso è un formato pixel aggiunto a Direct3D 10.1 e Direct3D 11 per i livelli di funzionalità 10_0 e 10_1. Un formato esteso richiede un driver aggiornato (per Direct3D 10_1 o versione successiva). Usare ID3D11Device::CheckFormatSupport e ID3D11Device::CheckFeatureSupport per eseguire query per il supporto per questi formati estesi.

Formato esteso:

  • Aggiunge il supporto per l'ordine BGRA di risorse a 8 bit per componente.
  • Consente il cast di un buffer della catena di scambio di valori interi. In questo modo un'applicazione può aggiungere o rimuovere il suffisso _SRGB o eseguire il rendering in una catena di scambio XR_BIAS.
  • Aggiunge il supporto facoltativo per DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
  • Garantisce che una catena di scambio DXGI_FORMAT_R16G16B16A16_FLOAT venga presentata come se i dati contenuti non siano codificati con sRGB.

Il set completo di formati estesi è completamente supportato o non supportato, ad eccezione del formato XR_BIAS. Il formato XR_BIAS è:

  • Non supportato in qualsiasi livello 9
  • Facoltativo nel livello 10_0 o 10_1
  • Garantito a livello 11_0

Multisample Anti-Aliasing

Le implementazioni msaa hanno poco in comune tra le implementazioni gpu. Il livello di funzionalità 10.1 ha aggiunto alcuni minimi ben definiti, ma a livelli di funzionalità inferiori, MSAA deve essere testato in modo esplicito usando ID3D11Device::CheckMultisampleQualityLevels.

Dimensioni Texture2D

Un livello di funzionalità garantisce che sia possibile creare una dimensione minima, tuttavia, un'applicazione può creare trame più grandi fino alle dimensioni complete supportate dalla GPU. Un'applicazione deve prevedere un errore da un metodo come ID3D11Device::CreateTexture2D se viene superato un valore massimo.

Comportamento speciale degli adattatori per il livello di funzionalità 9

I tre livelli di funzionalità più bassi D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 e D3D_FEATURE_LEVEL_9_3, condividono una DLL di implementazione comune e considerano l'argomento IDXGIAdapter su D3D11CreateDevice[AndSwapchain] come adattatore modello e creano la propria scheda come parte della creazione del dispositivo. Ciò significa che l'IDXGIAdapter passato alla routine di creazione non sarà la stessa scheda recuperata dal dispositivo tramite IDXGIDevice::GetAdapter. L'impatto di questo è che gli IDXGIOutput enumerati dall'adattatore passato non possono essere usati per entrare a schermo intero usando qualsiasi dispositivo di livello 9, poiché tali output non sono di proprietà della scheda del dispositivo. È consigliabile rimuovere l'adattatore modello passato e recuperare l'adattatore creato dal dispositivo usando IDXGIDevice::GetAdapter, dove IDXGIDevice può essere recuperato usando QueryInterface dall'interfaccia del dispositivo Direct3D.

Direct3D 11 su hardware di livello inferiore