Undantag
Vissa funktioner i Direct3D 11 specificeras inte fullt ut av funktionsnivåer. Det här avsnittet beskriver undantag när du använder Direct3D 11 på maskinvara på nednivå. Kanske har en funktion lagts till efter att funktionsnivån har definierats (och kräver en uppdaterad drivrutin) eller kanske olika GPU:er implementerar vitt skilda implementeringar. Undantag på funktionsnivå kan samlas in i följande grupper:
- utökade format
- Multisampling kantutjämning (Multisample Anti-Aliasing)
- Texture2D-storlekar
- Speciellt Beteende hos Adaptrar för Funktionsnivå 9
- Relaterade ämnen
I avsnittet 10Level9 Reference visas skillnaderna mellan hur olika ID3D11Enheter och ID3D11DeviceContext metoder fungerar på olika funktionsnivåer på 10Level9.
Utökade format
Ett utökat format är ett pixelformat som läggs till i Direct3D 10.1 och Direct3D 11 för funktionsnivåer 10_0 och 10_1. Ett utökat format kräver en uppdaterad drivrutin (för Direct3D 10_1 eller lägre). Använd ID3D11Device::CheckFormatSupport och ID3D11Device::CheckFeatureSupport för att undersöka stöd för dessa utökade format.
Ett utökat format:
- Lägger till stöd för BGRA-ordningen för 8-bitars resurser per komponent.
- Tillåter gjutning av en växlingskedjebuffert med heltalsvärde. På så sätt kan ett program lägga till eller ta bort _SRGB-suffixet eller rendera till en XR_BIAS växlingskedja.
- Lägger till valfritt stöd för DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
- Garanterar att en DXGI_FORMAT_R16G16B16A16_FLOAT växlingskedja presenteras som om de data som finns inte är sRGB-kodat.
Den fullständiga uppsättningen utökade format stöds eller stöds inte fullt ut, med undantag för XR_BIAS format. Formatet XR_BIAS är:
- Stöds inte på någon 9-nivå
- Valfritt på nivån 10_0 eller 10_1
- Garanteras på nivån 11_0
Multisample Anti-Aliasing
MSAA-implementeringar har lite gemensamt mellan GPU-implementeringar. Funktionsnivå 10.1 har lagt till några väldefinierade minima, men på lägre funktionsnivåer måste MSAA testas explicit med hjälp av ID3D11Device::CheckMultisampleQualityLevels.
Texture2D-storlekar
En funktionsnivå garanterar att en minsta storlek kan skapas, men ett program kan skapa större texturer upp till den fulla storlek som stöds av GPU:n. Ett program bör förvänta sig fel från en metod, till exempel ID3D11Enhet::CreateTexture2D om ett maximalt värde överskrids.
Särskilt beteende för adaptrar för funktionsnivå 9
De tre lägsta funktionsnivåerna D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 och D3D_FEATURE_LEVEL_9_3, delar en gemensam implementerings-DLL och behandlar IDXGIAdapter argument till D3D11CreateDevice[AndSwapchain] som ett mallkort och skapar ett eget kort som en del av enhetsskapandet. Det innebär att IDXGIAdapter som skickas till skapanderutinen inte är samma adapter som den som hämtats från enheten via IDXGIDevice::GetAdapter. Effekten av detta är att IDXGIOutputs uppräknade från det angivna kortet inte kan användas för att gå in i fullskärmsläge med en enhet på nivå 9, eftersom dessa utgångar inte ägs av enhetens adapter. Det är bra praxis att kassera den inskickade malladaptern och hämta enhetens skapade adapter med hjälp av IDXGIDevice::GetAdapter, där IDXGIDevice kan hämtas med QueryInterface från Direct3D-gränssnittet.
Relaterade ämnen