Niveaux de fonctionnalités Direct3D

Pour gérer la diversité des cartes vidéo dans les machines nouvelles et existantes, Microsoft Direct3D 11 introduit le concept de niveaux de fonctionnalités. Cette rubrique décrit les niveaux de fonctionnalités Direct3D.

Chaque carte vidéo implémente un certain niveau de fonctionnalité Microsoft DirectX (DX) en fonction des unités de traitement graphique (GPU) installées. Dans les versions antérieures de Microsoft Direct3D, vous pouviez trouver la version de Direct3D, la vidéo carte implémentée, puis programmer votre application en conséquence.

Avec Direct3D 11, un nouveau paradigme est introduit, appelé niveaux de fonctionnalités. Un niveau de fonctionnalité est un ensemble de fonctionnalités GPU définies. Par instance, le niveau de fonctionnalité 9_1 implémente la fonctionnalité implémentée dans Microsoft Direct3D 9, qui expose les fonctionnalités des modèles de nuanceur ps_2_x et vs_2_x, tandis que le niveau de fonctionnalité 11_0 implémente la fonctionnalité implémentée dans Direct3D 11.

Maintenant, lorsque vous créez un appareil, vous pouvez essayer de créer un appareil pour le niveau de fonctionnalité que vous souhaitez demander. Si la création de l’appareil fonctionne, ce niveau de fonctionnalité existe. Si ce n’est pas le cas, le matériel ne prend pas en charge ce niveau de fonctionnalité. Vous pouvez essayer de recréer un appareil à un niveau de fonctionnalité inférieur ou vous pouvez choisir de quitter l’application. Pour plus d’informations sur la création d’un appareil, consultez la fonction D3D11CreateDevice .

À l’aide des niveaux de fonctionnalités, vous pouvez développer une application pour Direct3D 9, Microsoft Direct3D 10 ou Direct3D 11, puis l’exécuter sur du matériel 9, 10 ou 11 (à quelques exceptions près , par exemple, les nouvelles fonctionnalités 11 ne s’exécuteront pas sur un 9 carte existant). Voici quelques autres propriétés de base des niveaux de fonctionnalité :

  • Gpu qui permet de créer un appareil atteint ou dépasse les fonctionnalités de ce niveau de fonctionnalité.
  • Un niveau de fonctionnalité inclut toujours les fonctionnalités des niveaux de fonctionnalité précédents ou inférieurs.
  • Un niveau de fonctionnalité n’implique pas de performances, mais uniquement des fonctionnalités. Les performances dépendent de l’implémentation matérielle.
  • Choisissez un niveau de fonctionnalité lorsque vous créez un appareil Direct3D 11.

Pour plus d’informations sur les limitations de création d’appareils de type nonhardware sur certains niveaux de fonctionnalités, consultez Limitations de création d’appareils WARP et Référence.

Pour vous aider à choisir le niveau de fonctionnalité avec lequel concevoir, comparez les fonctionnalités pour chaque niveau de fonctionnalité.

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 des numéros de version

Il existe trois formats pour les versions Direct3D, les modèles de nuanceur et les niveaux de fonctionnalités.

  • Les versions Direct3D utilisent un point ; par exemple, Direct3D 12.0.
  • Les modèles de nuanceur utilisent un point ; par exemple, le modèle de nuanceur 5.1.
  • Les niveaux de fonctionnalité utilisent un trait de soulignement ; par exemple, niveau de fonctionnalité 12_0.

Prise en charge des fonctionnalités Direct3D 12 (niveaux de fonctionnalité 12_2 à 11_0)

Les fonctionnalités suivantes sont disponibles pour les niveaux de fonctionnalités répertoriés. Les en-têtes de la ligne supérieure sont des niveaux de fonctionnalité Direct3D 12. Les en-têtes dans la colonne de gauche sont des fonctionnalités. Consultez également Les notes de bas de page pour les tables.

Fonctionnalité \ Niveau de fonctionnalité 12_28 12_10 12_00 11_11 11_0
Modèle nuanceur 6.5 5.12 5.12 5.12 5.12
Modèle de pilote WDDM 2.0 1.x 1.x 1.x 1.x
Raytracing Niveau 1.1 Facultatif Facultatif Facultatif Facultatif
Taux d’ombrage variable Niveau 2 Facultatif Facultatif Facultatif Facultatif
Nuanceur de maillage Niveau 1 Facultatif Facultatif Facultatif Facultatif
Commentaires de l’échantillonneur Niveau 0.9 Facultatif Facultatif Facultatif Facultatif
Liaison de ressources Niveau 3 Niveau 3 Niveau 3 Niveau 3 Niveau 1
Signature racine 1.1 1 1 1 1
Test des limites de profondeur Oui Facultatif Facultatif Facultatif Facultatif
Écriture immédiate de la mémoire tampon Direct, Compute, Bundle Facultatif Facultatif Facultatif Facultatif
Bits d’adresse virtuelle GPU 4010 4010 4010
Ressources en mosaïque Niveau 3 Niveau 26 Niveau 26 Facultatif Facultatif
Pixellisation conservatrice Niveau 3 Niveau 16 Facultatif Facultatif Non
Affichages de l’ordre du rastériseur Oui Oui Facultatif Facultatif Non
Filtres min/max Oui Oui Oui Facultatif Non
Carter la mémoire tampon par défaut N/A Facultatif Facultatif Facultatif Facultatif
Valeur de référence du stencil spécifié par le nuanceur Facultatif Facultatif Facultatif Facultatif Non
Chargements de l’affichage d’accès non ordonné typé 18 formats, plus facultatifs 18 formats, plus facultatifs 18 formats, plus facultatifs 3 formats, plus facultatifs 3 formats, plus facultatifs
Nuanceur de géométrie Oui Oui Oui Oui Oui
Diffuser en continu Oui Oui Oui Oui Oui
DirectCompute / Compute Shader Oui Oui Oui Oui Oui
Nuanceurs de coque et de domaine Oui Oui Oui Oui Oui
Fonctionnalité \ Niveau de fonctionnalité 12_28 12_10 12_00 11_11 11_0
Tableaux de ressources de texture Oui Oui Oui Oui Oui
Cubemap Resource Arrays Oui Oui Oui Oui Oui
BC4/BC5 Compression Oui Oui Oui Oui Oui
BC6H/BC7 Compression Oui Oui Oui Oui Oui
Alpha-to-coverage Oui Oui Oui Oui Oui
Formats étendus (BGRA, et ainsi de suite) Oui Oui Oui Oui Oui
Format de couleur XR 10 bits Oui Oui Oui Oui Oui
Opérations logiques (fusion de sortie) Oui Oui Oui Oui Facultatif1
Rastérisation indépendante de la cible Oui Oui Oui Oui Non
Cible de rendu multiple (MRT) avec ForcedSampleCount 1 Oui Oui Oui Oui Facultatif1
Emplacements UAV Hiérarchisé9 64 64 64 8
UAV à chaque étape Oui Oui Oui Oui Non
Fonctionnalité \ Niveau de fonctionnalité 12_28 12_10 12_00 11_11 11_0
Nombre maximal d’exemples forcés pour le rendu des UAV uniquement 16 16 16 16 8
Compensation constante de la mémoire tampon et mises à jour partielles Oui Oui Oui Oui Facultatif1
Formats 16 bits par pixel (bpp) Oui Oui Oui Oui Facultatif1
Dimension de texture maximale 16384 16384 16384 16384 16384
Max Cubemap Dimension 16384 16384 16384 16384 16384
Étendue maximale du volume 2 048 2 048 2 048 2 048 2 048
Répétition de texture maximale 16384 16384 16384 16384 16384
Anisotropie maximale 16 16 16 16 16
Nombre primitif maximal 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Max Vertex Index 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Emplacements d’entrée max. 32 32 32 32 32
Cibles de rendu simultané 8 8 8 8 8
Fonctionnalité \ Niveau de fonctionnalité 12_28 12_10 12_00 11_11 11_0
Requêtes d’occlusion Oui Oui Oui Oui Oui
Mélange alpha distinct Oui Oui Oui Oui Oui
Miroir une fois Oui Oui Oui Oui Oui
Éléments de vertex qui se chevauchent Oui Oui Oui Oui Oui
Masques d’écriture indépendante Oui Oui Oui Oui Oui
Instanciation Oui Oui Oui Oui Oui
Nonpowers-of-2 conditionnellement3 Non Non Non Non Non
Nonpowers-of-2 inconditionnellement4 Oui Oui Oui Oui Oui

En outre, les indicateurs suivants sont définis :

Fonctionnalité \ Niveau de fonctionnalité 12_28
WaveOps TRUE
OutputMergerLogicOp TRUE
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation TRUE
CopyQueueTimestampQueriesSupported TRUE
CastingFullyTypedFormatSupported TRUE
Int64ShaderOps TRUE

Prise en charge des fonctionnalités Direct3D 11 (niveaux de fonctionnalité 12_1 à 9_1)

Les fonctionnalités suivantes sont disponibles pour les niveaux de fonctionnalités répertoriés. Les en-têtes de la ligne supérieure sont des niveaux de fonctionnalités Direct3D 11. Les en-têtes dans la colonne de gauche sont des fonctionnalités. Consultez également Les notes de bas de page pour les tables.

Fonctionnalité \ Niveau de fonctionnalité 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Modèle nuanceur 5.12 5.12 5,02 5,02 4.x 4.0 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 2.0 (4_0_level_9_1) 2.0 (4_0_level_9_1)
Modèle de pilote WDDM 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x
Ressources en mosaïque Niveau 26 Niveau 26 Facultatif Facultatif Non Non Non Non Non
Pixellisation conservatrice Niveau 16 Facultatif Facultatif Non Non Non Non Non Non
Affichages de l’ordre du rastériseur Oui Facultatif Facultatif Non Non Non Non Non Non
Filtres min/max Oui Oui Facultatif Non Non Non Non Non Non
Carter la mémoire tampon par défaut Facultatif Facultatif Facultatif Facultatif Non Non Non Non Non
Valeur de référence du stencil spécifié par le nuanceur Facultatif Facultatif Facultatif Non Non Non Non Non Non
Chargements de l’affichage d’accès non ordonné typé 18 formats, plus facultatifs 18 formats, plus facultatifs 3 formats, plus facultatifs 3 formats, plus facultatifs Non Non Non Non Non
Nuanceur de géométrie Oui Oui Oui Oui Oui Oui Non Non Non
Diffuser en continu Oui Oui Oui Oui Oui Oui Non Non Non
DirectCompute / Compute Shader Oui Oui Oui Oui Facultatif Facultatif N/A N/A N/A
Nuanceurs de coque et de domaine Oui Oui Oui Oui Non Non Non Non Non
Fonctionnalité \ Niveau de fonctionnalité 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Tableaux de ressources de texture Oui Oui Oui Oui Oui Oui Non Non Non
Cubemap Resource Arrays Oui Oui Oui Oui Oui Non Non Non Non
BC4/BC5 Compression Oui Oui Oui Oui Oui Oui Non Non Non
BC6H/BC7 Compression Oui Oui Oui Oui Non Non Non Non Non
Alpha-to-coverage Oui Oui Oui Oui Oui Oui Non Non Non
Formats étendus (BGRA, et ainsi de suite) Oui Oui Oui Oui Facultatif Facultatif Oui Oui Oui
Format de couleur XR 10 bits Oui Oui Oui Oui Facultatif Facultatif N/A N/A N/A
Opérations logiques (fusion de sortie) Oui Oui Oui Facultatif1 Facultatif1 Facultatif1 Non Non Non
Rastérisation indépendante de la cible Oui Oui Oui Oui Oui Non Non Non Non Non Non
Cible de rendu multiple (MRT) avec ForcedSampleCount 1 Oui Facultatif1 Facultatif1 Facultatif1 Non Non Non
Emplacements UAV 64 64 64 8 1 1 N/A N/A N/A
UAV à chaque étape Oui Oui Oui Non Non Non N/A N/A N/A
Fonctionnalité \ Niveau de fonctionnalité 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Nombre maximal d’exemples forcés pour le rendu des UAV uniquement 16 16 16 8 N/A N/A N/A N/A N/A
Compensation constante de la mémoire tampon et mises à jour partielles Oui Oui Oui Facultatif1 Facultatif1 Facultatif1 Oui1 Oui1 Oui1
Formats 16 bits par pixel (bpp) Oui Oui Oui Facultatif1 Facultatif1 Facultatif1 Facultatif1 Facultatif1 Facultatif1
Max Texture Dimension 16384 16384 16384 16384 8 192 8 192 4096 2 048 2 048
Max Cubemap Dimension 16384 16384 16384 16384 8 192 8 192 4096 512 512
Étendue maximale du volume 2 048 2 048 2 048 2 048 2 048 2 048 256 256 256
Répétition maximale de texture 16384 16384 16384 16384 8 192 8 192 8 192 2 048 128
Anisotropie max. 16 16 16 16 16 16 16 16 2
Nombre maximal de primitives 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65535
Index de vertex max. 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65534
Emplacements d’entrée max. 32 32 32 32 32 16 16 16 16
Cibles de rendu simultanées 8 8 8 8 8 8 4 1 1
Fonctionnalité \ Niveau de fonctionnalité 12_28 12_10 11_11 11_0 10_1 10_0 9_37 9_2 9_1
Requêtes d’occlusion Oui Oui Oui Oui Oui Oui Oui Oui Non
Mélange alpha distinct Oui Oui Oui Oui Oui Oui Oui Oui Non
Mettre en miroir une fois Oui Oui Oui Oui Oui Oui Oui Oui Non
Éléments de vertex qui se chevauchent Oui Oui Oui Oui Oui Oui Oui Oui Non
Masques d’écriture indépendant Oui Oui Oui Oui Oui Oui Oui Non Non
Instanciation Oui Oui Oui Oui Oui Oui Oui7 Non Non
Nonpowers-of-2 conditionnellement3 Non Non Non Non Non Non Oui Oui Oui
Nonpowers-of-2 sans condition4 Oui Oui Oui Oui Oui Oui Non Non Non

Notes de bas de page pour les tables

0 Nécessite le runtime Direct3D 11.3 ou Direct3D 12.

1 Nécessite le runtime Direct3D 11.1.

Le modèle de nuanceur 2 5.0 et versions ultérieures peut éventuellement prendre en charge les nuanceurs à double précision, les nuanceurs à double précision étendus, l’instruction de nuanceur SAD4 et les nuanceurs de précision partielle. Pour déterminer les options du modèle de nuanceur 5.0 disponibles pour DirectX 11, appelez ID3D11Device::CheckFeatureSupport. Une certaine compatibilité dépend du matériel sur lequel vous exécutez. Le modèle de nuanceur 5.1 et les versions ultérieures sont uniquement pris en charge par le biais de l’API DirectX 12, quel que soit le niveau de fonctionnalité utilisé. DirectX 11 prend uniquement en charge jusqu’au modèle de nuanceur 5.0. L’API DirectX 12 descend uniquement au niveau de fonctionnalité 11_0.

3 Aux niveaux de fonctionnalités 9_1, 9_2 et 9_3, le périphérique d’affichage prend en charge l’utilisation de textures 2D avec des dimensions qui ne sont pas des puissances de deux dans deux conditions. Tout d’abord, un seul niveau de carte MIP peut être créé pour chaque texture, et deuxièmement, aucun mode d’échantillonnage de wrap pour les textures n’est autorisé (autrement dit, les membres AddressU, AddressV et AddressW de D3D11_SAMPLER_DESC ne peuvent pas être définis sur D3D11_TEXTURE_ADDRESS_WRAP).

4 Aux niveaux de fonctionnalités 10_0, 10_1 et 11_0, le périphérique d’affichage prend en charge inconditionnellement l’utilisation de textures 2D avec des dimensions qui ne sont pas des puissances de deux.

5 Nuanceur de vertex 2a avec 256 instructions, 32 registres temporaires, contrôle de flux statique de profondeur 4, contrôle dynamique du flux de profondeur 24 et D3DVS20CAPS_PREDICATION. Nuanceur de pixels 2x avec 512 instructions, 32 registres temporaires, contrôle de flux statique de profondeur 4, contrôle dynamique du flux de profondeur 24, D3DPS20CAPS_ARBITRARYSWIZZLE, D3DPS20CAPS_GRADIENTINSTRUCTIONS, D3DPS20CAPS_PREDICATION, D3DPS20CAPS_NODEPENDENTREADLIMIT et D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT.

6 niveaux supérieurs facultatifs.

7 Pour le niveau de fonctionnalité 9_3, les seules méthodes de rendu prises en charge sont Draw, DrawIndexed et DrawIndexInstanced. Également pour le niveau de fonctionnalité 9_3, le rendu de liste de points est pris en charge uniquement pour le rendu via Draw.

8 Pris en charge par Windows 11.

9 Dans l’API Direct3D 12, le nombre de descripteurs dans un tas CBV/SRV/UAV est limité. Pour plus d’informations, consultez Niveaux matériels . Séparément, il existe une limite du nombre d’UAV dans toutes les tables de descripteurs pour toutes les phases, en fonction du niveau de liaison de ressources.

10 Un processus 64 bits nécessite 40 bits d’espace d’adressage disponible par ressource et par processus. Un processus 32 bits peut être limité à 31 bits d’espace d’adressage. Deux fonctionnalités (majuscules) sont disponibles dans l’API : par processus et par ressource. L’espace d’adressage par processus est toujours supérieur ou égal à l’espace d’adressage par ressource.

Pour plus d’informations sur la prise en charge du format à différents niveaux de fonctionnalités matérielles, reportez-vous à :