Exceções
Alguns recursos do Direct3D 11 não são totalmente especificados por níveis de recursos. Este tópico descreve exceções ao usar o Direct3D 11 em hardware de nível inferior. Talvez um recurso tenha sido adicionado depois que o nível de recurso é definido (e requer um driver atualizado) ou talvez GPUs diferentes implementem implementações amplamente diferentes. As exceções ao nível de recurso podem ser agrupadas nos seguintes grupos:
- Formatos estendidos
- Anti-Aliasing Multiamostra
- Texture2D Tamanhos
- Comportamento especial dos adaptadores para do nível de funcionalidade 9
- Tópicos relacionados
A seção de referência 10Level9 lista as diferenças entre como vários métodos do ID3D11Device e do ID3D11DeviceContext se comportam em vários níveis de recurso 10Level9.
Formatos estendidos
Um formato estendido é um formato de pixel adicionado ao Direct3D 10.1 e ao Direct3D 11 para os níveis de recursos 10_0 e 10_1. Um formato estendido requer um driver atualizado (para Direct3D 10_1 ou inferior). Use ID3D11Device::CheckFormatSupport e ID3D11Device::CheckFeatureSupport para consultar suporte para esses formatos estendidos.
Um formato alargado:
- Adiciona suporte para a ordem BGRA de recursos de 8 bits por componente.
- Permite a transmissão de um buffer de cadeia de permuta de valor inteiro. Isso permite que um aplicativo adicione ou remova o sufixo _SRGB ou renderize uma cadeia de permuta XR_BIAS.
- Adiciona suporte opcional para DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
- Garante que uma cadeia de permuta DXGI_FORMAT_R16G16B16A16_FLOAT é apresentada como se os dados contidos não estivessem codificados em sRGB.
O conjunto completo de formatos estendidos é totalmente suportado ou então não é suportado, exceto o formato XR_BIAS. O formato XR_BIAS é:
- Não suportado em qualquer nível 9
- Opcional no nível 10_0 ou 10_1
- Garantido no nível 11_0
Anti-aliasing de várias amostras
As implementações MSAA têm pouco em comum entre as implementações de GPU. O nível de recurso 10.1 adicionou alguns mínimos bem definidos, mas em níveis de recursos mais baixos, o MSAA deve ser testado explicitamente usando ID3D11Device::CheckMultisampleQualityLevels.
Tamanhos Texture2D
Um nível de recurso garante que um tamanho mínimo pode ser criado, no entanto, um aplicativo pode criar texturas maiores até o tamanho total suportado pela GPU. Um aplicativo deve esperar falha de um método como ID3D11Device::CreateTexture2D se um máximo for excedido.
Comportamento especial dos adaptadores para o Nível de Funcionalidade 9
Os três níveis de recurso mais baixos D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 e D3D_FEATURE_LEVEL_9_3, compartilham uma DLL de implementação comum e tratam o argumento IDXGIAdapter para D3D11CreateDevice[AndSwapchain] como um adaptador de modelo e criam seu próprio adaptador como parte da criação do dispositivo. Isso significa que o IDXGIAdapter passado para a rotina de criação não será o mesmo adaptador que o recuperado do dispositivo via IDXGIDevice::GetAdapter. O impacto disso é que o IDXGIOutputs enumerado do adaptador passado não pode ser usado para entrar em tela cheia usando qualquer dispositivo de nível 9, uma vez que essas saídas não são de propriedade do adaptador do dispositivo. É uma boa prática descartar o adaptador de modelo fornecido e recuperar o adaptador criado pelo dispositivo usando IDXGIDevice::GetAdapter, onde o IDXGIDevice pode ser recuperado usando QueryInterface da interface de dispositivo Direct3D.
Tópicos relacionados