Excepciones

Algunas características de Direct3D 11 no se especifican completamente en los niveles de características. En este tema se describen las excepciones al usar Direct3D 11 en hardware de nivel inferior. Quizás se agregó una característica después de definir el nivel de característica (y requiere un controlador actualizado) o quizás diferentes GPU implementan implementaciones muy diferentes. Las excepciones de nivel de característica se pueden recopilar en los grupos siguientes:

En la sección 10Level9 Reference (Referencia de 10Level9 ) se enumeran las diferencias entre la forma en que se comportan varios métodos ID3D11DeviceContext en varios niveles de características de ID3D11Device y ID3D11DeviceContext .

Formatos extendidos

Un formato extendido es un formato de píxel agregado a Direct3D 10.1 y Direct3D 11 para los niveles de características 10_0 y 10_1. Un formato extendido requiere un controlador actualizado (para Direct3D 10_1 o inferior). Use ID3D11Device::CheckFormatSupport e ID3D11Device::CheckFeatureSupport para consultar la compatibilidad con estos formatos extendidos.

Un formato extendido:

  • Agrega compatibilidad con el orden BGRA de recursos de 8 bits por componente.
  • Permite la conversión de un búfer de cadena de intercambio de valores enteros. Esto permite que una aplicación agregue o quite el sufijo _SRGB o represente en una cadena de intercambio de XR_BIAS.
  • Agrega compatibilidad opcional con DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
  • Garantiza que se presenta una cadena de intercambio de DXGI_FORMAT_R16G16B16A16_FLOAT como si los datos contenidos no estuvieran codificados en sRGB.

El conjunto completo de formatos extendidos es totalmente compatible o no, a excepción del formato XR_BIAS. El formato XR_BIAS es:

  • No admitido en cualquier nivel de 9
  • Opcional en el nivel 10_0 o 10_1
  • Garantizado en el nivel 11_0

Suavizado de contorno multisample

Las implementaciones de MSAA tienen poco en común entre implementaciones de GPU. El nivel de característica 10.1 agregó algunas minima bien definidas, pero en niveles de características inferiores, la MSAA debe probarse explícitamente mediante ID3D11Device::CheckMultisampleQualityLevels.

Tamaños Texture2D

Sin embargo, un nivel de característica garantiza que se puede crear un tamaño mínimo, pero una aplicación puede crear texturas más grandes hasta el tamaño completo compatible con la GPU. Una aplicación debe esperar un error de un método como ID3D11Device::CreateTexture2D si se supera un máximo.

Comportamiento especial de los adaptadores para el nivel de característica 9

Los tres niveles de características más bajos D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 y D3D_FEATURE_LEVEL_9_3, comparten un archivo DLL de implementación común y tratan el argumento IDXGIAdapter a D3D11CreateDevice[AndSwapchain] como adaptador de plantilla y crean su propio adaptador como parte de la creación del dispositivo. Esto significa que el IDXGIAdapter pasado a la rutina de creación no será el mismo adaptador que el recuperado del dispositivo a través de IDXGIDevice::GetAdapter. El impacto de esto es que los IDXGIOutput enumerados desde el adaptador pasado no se pueden usar para entrar en pantalla completa con ningún dispositivo de nivel 9, ya que esas salidas no son propiedad del adaptador del dispositivo. Es recomendable descartar el adaptador de plantilla pasado y recuperar el adaptador creado del dispositivo mediante IDXGIDevice::GetAdapter, donde IDXGIDevice se puede recuperar mediante QueryInterface desde la interfaz del dispositivo Direct3D.

Direct3D 11 en hardware de nivel inferior