Spécification de cibles de compilateur

Vous devez spécifier la cible de nuanceur (jeu de fonctionnalités de nuanceur) à compiler lorsque vous appelez la fonction D3DCompile, D3DCompile2ou D3DCompileFromFile . Ici, nous répertorions les cibles pour les différents profils que les fonctions D3DCompile * et le compilateur HLSL prennent en charge.

Niveaux de fonctionnalité Direct3D 11,0 et 11,1

Voici les cibles de nuanceur que les niveaux de fonctionnalité Direct3D 11,0 et 11,1 prennent en charge.

Cible Description
CS _ 5 _ 0 DirectCompute 5,0 (nuanceur de calcul)
DS _ 5 _ 0 Nuanceur de domaine
GS _ 5 _ 0 Nuanceur Geometry
HS _ 5 _ 0 Nuanceur de coque
PS _ 5 _ 0 Nuanceur de pixels
vs _ 5 _ 0 Nuanceur de sommets

Niveau de fonctionnalité Direct3D 10,1

Voici les cibles de nuanceur que le niveau de fonctionnalité Direct3D 10,1 prend en charge.

Cible Description
CS _ 4 _ 1 DirectCompute 4,1 (nuanceur de calcul) ¹
GS _ 4 _ 1 Nuanceur Geometry
PS _ 4 _ 1 Nuanceur de pixels
vs _ 4 _ 1 Nuanceur de sommets

Niveau de fonctionnalité Direct3D 10,0

Voici les cibles de nuanceur que le niveau de fonctionnalité Direct3D 10,0 prend en charge.

Cible Description
CS _ 4 _ 0 DirectCompute 4,0 (nuanceur de calcul) ¹
GS _ 4 _ 0 Nuanceur Geometry
PS _ 4 _ 0 Nuanceur de pixels
vs _ 4 _ 0 Nuanceur de sommets

Niveaux de fonctionnalité Direct3D 9,1, 9,2 et 9,3

Voici les cibles de nuanceur que les niveaux de fonctionnalité Direct3D 9,1, 9,2 et 9,3 prennent en charge.

Notes

Lorsque vous utilisez les * _ _ _ _ _ profils de nuanceur HLSL de 4 niveaux 9 x, vous utilisez implicitement les profils Shader Model 2. x pour prendre en charge le matériel compatible Direct3D 9. Les profils Shader Model 2. x prennent en charge un comportement de contrôle de Flow plus limité que le modèle de nuanceur 4. x et versions ultérieures.

Cible Description
ps_4_0_level_9_1 Nuanceur de pixels pour 9,1 et 9,2 (limites similaires à ps_2_0)
  • 64 instructions de texture arithmétique et 32
  • 12 registres temporaires
  • 4 niveaux de lectures dépendantes
ps_4_0_level_9_3 Nuanceur de pixels pour 9,3 (limites similaires à ps_2_x ² avec des fonctionnalités de nuanceur supplémentaires)
  • instructions 512
  • 32 registres temporaires
  • Contrôle de Flow statique (profondeur maximale de 4)
  • Contrôle de workflow dynamique (profondeur maximale de 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 Vertex shader pour 9,1 et 9,2 (semblable à vs_2_0)
  • instructions 256
  • 12 registres temporaires
  • Contrôle de Flow statique (profondeur maximale de 1)
vs_4_0_level_9_3 Vertex shader pour 9,3 (semblable à vs_2_a ² avec des fonctionnalités de nuanceur supplémentaires et l’instanciation)
  • instructions 256
  • 32 registres temporaires
  • Contrôle de Flow statique (profondeur maximale de 4)
  • D3DVS20CAPS_PREDICATION

Modèle de nuanceur Direct3D 9 hérité 3,0

Voici les cibles de nuanceur pour le modèle de nuanceur Direct3D 9 hérité 3,0 ³.

Cible Description
PS _ 3 _ 0 Nuanceur de pixels 3,0
_logiciel PS 3 _ Nuanceur de pixels 3,0 (logiciel)
vs _ 3 _ 0 Vertex shader 3,0
vs _ 3 _ SW Vertex shader 3,0 (logiciel)

Modèle de nuanceur Direct3D 9 hérité 2,0

Voici les cibles de nuanceur pour le modèle de nuanceur Direct3D 9 hérité 2,0 ³.

Cible Description
PS _ 2 _ 0 Nuanceur de pixels 2,0
PS _ 2 _ a Nuanceur de pixels 2A
PS _ 2 _ b Nuanceur de pixels 2b
_logiciel PS 2 _ Logiciel nuanceur de pixels 2,0
vs _ 2 _ 0 Vertex shader 2,0
vs _ 2 _ a Nuanceur de sommet 2A
vs _ 2 _ SW Logiciel vertex shader 2,0

Modèle de nuanceur Direct3D 9 hérité 1. x

Voici les cibles de nuanceur pour le modèle de nuanceur Direct3D 9 hérité 1. x ⁴.

Cible Description
TX _ 1 _ 0 Profil de nuanceur de texture qui utilise les fonctions D3DX9 ⁵ héritées D3DXCreateTextureShader et D3DXFillTextureTX
vs _ 1 _ 1 Vertex shader 1,1

Effets hérités

Voici les objectifs des effets hérités.

Cible Description
FX _ 2 _ 0 Effets (FX) pour Direct3D 9 dans D3DX9 ⁵
FX _ 4 _ 0 Effets (FX) pour Direct3D 10,0 dans D3DX10 ⁵
FX _ 4 _ 1 Effets (FX) pour Direct3D 10,1 dans D3DX10 ⁵
FX _ 5 _ 0 Effets (FX) pour Direct3D 11 ⁵

Notes

Voici quelques remarques à propos desquelles les sections précédentes font référence :

  1. les appareils de niveau de fonctionnalité 10,0 et 10,1 peuvent éventuellement prendre en charge DirectCompute. Pour vérifier la prise en charge, utilisez ID3D11Device :: CheckFeatureSupport avec d3d11 _ Feature _ D3D10 _ X _ Hardware _ options.
  2. le niveau de fonctionnalité 9,3 requiert en fait un matériel conforme aux exigences du modèle de nuanceur Direct3D 9 hérité 3,0, mais ce niveau de fonctionnalité n’utilise pas les _ cibles vs 3 _ 0 ou PS _ 3 _ 0.
  3. Utilisez uniquement les modèles de nuanceur Direct3D 9 hérités avec l’API Direct3D 9. Utilisez plutôt les profils 9. x avec les API Direct3D 10. x et 11. x.
  4. Les fonctions de D3DCompile * de nuanceur HLSL actuelles ne prennent pas en charge les nuanceurs de pixels hérités 1. x. La dernière version du langage HLSL pour la prise en charge de ces cibles était D3DX9 dans la version d’octobre 2006 du kit de développement logiciel (SDK) DirectX.
  5. Toutes les versions de D3DX et du SDK DirectX sont déconseillées. Pour plus d’informations, consultez où est le kit de développement logiciel (SDK) DirectX ?.

Guide de programmation pour HLSL