Spécification des cibles du compilateur

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

Niveaux de fonctionnalités Direct3D 11.0 et 11.1

Voici les cibles de nuanceur prises en charge par Direct3D 11.0 et 11.1.

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és Direct3D 9.1, 9.2 et 9.3

Voici les cibles de nuanceur prises en charge par Direct3D 9.1, 9.2 et 9.3.

Notes

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

 

Cible Description
ps_4_0_level_9_1 Nuanceur de pixels pour les versions 9.1 et 9.2 (limites similaires à ps_2_0)
  • 64 instructions arithmétiques et 32 textures
  • 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)
  • 512 instructions
  • 32 registres temporaires
  • Contrôle de flux statique (profondeur maximale de 4)
  • Contrôle de flux dynamique (profondeur maximale de 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 Nuanceur de vertex pour les versions 9.1 et 9.2 (similaire à vs_2_0)
  • 256 instructions
  • 12 registres temporaires
  • Contrôle de flux statique (profondeur maximale de 1)
vs_4_0_level_9_3 Nuanceur de vertex pour 9.3 (similaire à vs_2_a² avec des fonctionnalités de nuanceur supplémentaires et l’instanciation)
  • 256 instructions
  • 32 registres temporaires
  • Contrôle de flux 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
ps_3_sw Nuanceur de pixels 3.0 (logiciel)
vs_3_0 Nuanceur de vertex 3.0
vs_3_sw Nuanceur de vertex 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
ps_2_sw Logiciel de nuanceur de pixels 2.0
vs_2_0 Nuanceur de vertex 2.0
vs_2_a Nuanceur de vertex 2a
vs_2_sw Logiciel de nuanceur de vertex 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 les fonctions D3DX9⁵ héritées D3DXCreateTextureShader et D3DXFillTextureTX utilisent
vs_1_1 Nuanceur de vertex 1.1

 

Effets hérités

Voici les cibles d’effet pour les 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 auxquelles 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 nécessite effectivement 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 vs_3_0 ou ps_3_0 cibles.
  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 l’API Direct3D 10.x et 11.x.
  4. Les fonctions actuelles du nuanceur HLSL D3DCompile* ne prennent pas en charge les nuanceurs de pixels 1.x hérités. La dernière version de HLSL à prendre en charge 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 Kit de développement logiciel (SDK) DirectX sont dépréciées. Pour plus d’informations, consultez Où se trouve le Kit de développement logiciel (SDK) DirectX ?.

Guide de programmation pour HLSL