Share via


Exceptions

Certaines fonctionnalités de Direct3D 11 ne sont pas entièrement spécifiées par les niveaux de fonctionnalités. Cette rubrique décrit les exceptions lors de l’utilisation de Direct3D 11 sur du matériel de niveau inférieur. Peut-être qu’une fonctionnalité a été ajoutée une fois le niveau de fonctionnalité défini (et nécessite un pilote mis à jour) ou peut-être que des GPU différents implémentent des implémentations très différentes. Les exceptions au niveau des fonctionnalités peuvent être collectées dans les groupes suivants :

La section Référence 10Level9 répertorie les différences entre le comportement des différentes méthodes ID3D11Device et ID3D11DeviceContext à différents niveaux de fonctionnalité 10Level9.

Formats étendus

Un format étendu est un format de pixel ajouté à Direct3D 10.1 et Direct3D 11 pour les niveaux de fonctionnalités 10_0 et 10_1. Un format étendu nécessite un pilote mis à jour (pour Direct3D 10_1 ou version antérieure). Utilisez ID3D11Device::CheckFormatSupport et ID3D11Device::CheckFeatureSupport pour demander la prise en charge de ces formats étendus.

Format étendu :

  • Ajoute la prise en charge de l’ordre BGRA des ressources 8 bits par composant.
  • Autorise le cast d’une mémoire tampon de chaîne d’échange entier-valeur. Cela permet à une application d’ajouter ou de supprimer le suffixe _SRGB ou d’effectuer un rendu dans une chaîne d’échange XR_BIAS.
  • Ajoute la prise en charge facultative des DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM.
  • Garantit qu’une chaîne d’échange DXGI_FORMAT_R16G16B16A16_FLOAT est présentée comme si les données contenues n’était pas encodées en sRGB.

L’ensemble complet des formats étendus est entièrement pris en charge ou non, à l’exception du format XR_BIAS. Le format XR_BIAS est le suivant :

  • Non pris en charge dans n’importe quel niveau 9
  • Facultatif au niveau 10_0 ou 10_1
  • Garantie au niveau 11_0

Anticrénelage à échantillonnage multiple

Les implémentations MSAA ont peu en commun entre les implémentations GPU. Le niveau de fonctionnalité 10.1 a ajouté des minimums bien définis, mais à des niveaux de fonctionnalités inférieurs, MSAA doit être testé explicitement à l’aide de ID3D11Device::CheckMultisampleQualityLevels.

Tailles Texture2D

Un niveau de fonctionnalité garantit qu’une taille minimale peut être créée. Toutefois, une application peut créer des textures plus volumineuses jusqu’à la taille totale prise en charge par le GPU. Une application doit s’attendre à un échec d’une méthode telle que ID3D11Device::CreateTexture2D si une valeur maximale est dépassée.

Comportement spécial des adaptateurs pour le niveau de fonctionnalité 9

Les trois niveaux de fonctionnalités les plus bas D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2 et D3D_FEATURE_LEVEL_9_3, partagent une DLL d’implémentation commune et traitent l’argument IDXGIAdapter sur D3D11CreateDevice[AndSwapchain] comme un adaptateur de modèle et créent leur propre adaptateur dans le cadre de la création d’appareils. Cela signifie que l’IDXGIAdapter passé dans la routine de création n’est pas le même adaptateur que celui récupéré à partir de l’appareil via IDXGIDevice::GetAdapter. L’impact de cela est que les idXGIOutputs énumérés à partir de l’adaptateur passé ne peuvent pas être utilisés pour entrer en mode plein écran à l’aide d’un appareil de niveau 9, car ces sorties ne sont pas détenues par l’adaptateur de l’appareil. Il est recommandé d’ignorer l’adaptateur de modèle passé et de récupérer l’adaptateur créé par l’appareil à l’aide de IDXGIDevice::GetAdapter, où IDXGIDevice peut être récupéré à l’aide de QueryInterface à partir de l’interface de périphérique Direct3D.

Direct3D 11 sur le matériel de niveau inférieur