Share via


Exceções

Alguns recursos do Direct3D 11 não são totalmente especificados pelos níveis de recursos. Este tópico descreve exceções ao usar o Direct3D 11 no 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. Exceções de nível de recurso podem ser coletadas nos seguintes grupos:

A seção 10Level9 Reference lista as diferenças entre como vários métodos ID3D11Device e ID3D11DeviceContext se comportam em vários níveis de recursos 10Level9.

Formatos Estendidos

Um formato estendido é um formato de pixel adicionado ao Direct3D 10.1 e 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 o suporte para esses formatos estendidos.

Um formato estendido:

  • Adiciona suporte para a ordem BGRA de recursos de 8 bits por componente.
  • Permite a conversão de um buffer de cadeia de troca de valor inteiro. Isso permite que um aplicativo adicione ou remova o sufixo _SRGB ou renderize para uma cadeia de troca XR_BIAS.
  • Adiciona suporte opcional para DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
  • Garante que uma cadeia de troca de DXGI_FORMAT_R16G16B16A16_FLOAT seja apresentada como se os dados contidos não estivesse codificados em sRGB.

O conjunto completo de formatos estendidos tem suporte total ou não, com exceção do formato XR_BIAS. O formato XR_BIAS é:

  • Sem suporte 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 funções

As implementações de MSAA têm pouco em comum entre implementações de GPU. O Nível de Recurso 10.1 adicionou um minima bem definido, mas em níveis de recursos inferiores, o MSAA deve ser testado explicitamente usando ID3D11Device::CheckMultisampleQualityLevels.

Tamanhos texture2D

Um nível de recurso garante que um tamanho mínimo possa ser criado, no entanto, um aplicativo pode criar texturas maiores até o tamanho completo compatível com a GPU. Um aplicativo deverá esperar uma falha de um método como ID3D11Device::CreateTexture2D se um máximo for excedido.

Comportamento especial de adaptadores para o nível de recurso 9

Os três níveis de recursos 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 como 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 por meio de IDXGIDevice::GetAdapter. O impacto disso é que as IDXGIOutputs enumeradas do adaptador passado não podem ser usadas para entrar em tela inteira usando qualquer dispositivo de nível 9, pois essas saídas não pertencem ao adaptador do dispositivo. É uma boa prática descartar o adaptador de modelo passado e recuperar o adaptador criado pelo dispositivo usando IDXGIDevice::GetAdapter, em que IDXGIDevice pode ser recuperado usando QueryInterface da interface do dispositivo Direct3D.

Direct3D 11 no hardware de nível inferior