Constantes D3DCOMPILE

Les constantes D3DCOMPILE spécifient la façon dont le compilateur compile le code HLSL.

Constante Description Notes
D3DCOMPILE_DEBUG
/Zi
Indique au compilateur d’insérer des informations de fichier/ligne/type/symbole de débogage dans le code de sortie. Voir D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
Indique au compilateur de ne pas valider le code généré par rapport aux fonctionnalités et contraintes connues. Nous vous recommandons d’utiliser cette constante uniquement avec des nuanceurs qui ont été compilés avec succès dans le passé. DirectX valide toujours les nuanceurs avant de les définir sur un appareil. Voir D3DXSHADER_SKIPVALIDATION
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
Indique au compilateur d’ignorer les étapes d’optimisation pendant la génération du code. Nous vous recommandons de définir cette constante à des fins de débogage uniquement. Voir D3DXSHADER_SKIPOPTIMIZATION
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
Indique au compilateur d’empaqueter les matrices dans l’ordre principal des lignes sur l’entrée et la sortie du nuanceur. Voir D3DXSHADER_PACKMATRIX_ROWMAJOR
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
Indique au compilateur d’empaqueter les matrices dans l’ordre principal des colonnes lors de l’entrée et de la sortie du nuanceur. Ce type d’emballage est généralement plus efficace, car une série de produits à points peut ensuite effectuer une multiplication de matrice vectorielle. Voir D3DXSHADER_PACKMATRIX_COLUMNMAJOR
D3DCOMPILE_PARTIAL_PRECISION
/Ppm
Indique au compilateur d’effectuer tous les calculs avec une précision partielle. Si vous définissez cette constante, le code compilé peut s’exécuter plus rapidement sur certains matériels. Voir D3DXSHADER_PARTIALPRECISION
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
Indique au compilateur de compiler un nuanceur de vertex pour le profil de nuanceur le plus élevé suivant. Cette constante active le débogage et désactive les optimisations. Cet indicateur s’appliquait uniquement à Direct3D 9. Voir D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
Indique au compilateur de compiler un nuanceur de pixels pour le profil de nuanceur le plus élevé suivant. Cette constante active également le débogage et désactive les optimisations. Cet indicateur s’appliquait uniquement à Direct3D 9. Voir D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
D3DCOMPILE_NO_PRESHADER
/Op
Indique au compilateur de désactiver les preshaders. Si vous définissez cette constante, le compilateur n’extrait pas l’expression statique à des fins d’évaluation. Cet indicateur s’appliquait uniquement aux effets (FX) Direct3D 9 et Direct3D 10 hérités. Voir D3DXSHADER_NO_PRESHADER
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
Indique au compilateur de ne pas utiliser de constructions de contrôle de flux lorsque cela est possible. Voir D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
Force la compilation stricte, ce qui peut ne pas autoriser la syntaxe héritée. Par défaut, le compilateur désactive la rigueur sur la syntaxe dépréciée.
D3DCOMPILE_IEEE_STRICTNESS
/Sig
Force la compilation stricte IEEE, ce qui évite les optimisations susceptibles d’enfreindre les règles IEEE. Voir D3DXSHADER_IEEE_STRICTNESS
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
Indique au compilateur de permettre aux nuanceurs plus anciens de compiler sur des cibles 5_0. Voir D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
Indique au compilateur d’utiliser le niveau d’optimisation le plus bas. Si vous définissez cette constante, le compilateur peut produire du code plus lent, mais produit le code plus rapidement. Définissez cette constante lorsque vous développez le nuanceur de manière itérative. Voir D3DXSHADER_OPTIMIZATION_LEVEL0
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
Indique au compilateur d’utiliser le deuxième niveau d’optimisation le plus bas. Voir D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
Indique au compilateur d’utiliser le deuxième niveau d’optimisation le plus élevé. Voir D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
Indique au compilateur d’utiliser le niveau d’optimisation le plus élevé. Si vous définissez cette constante, le compilateur produit le meilleur code possible, mais cela peut prendre beaucoup plus de temps. Définissez cette constante pour les builds finales d’une application lorsque les performances sont le facteur le plus important. Voir D3DXSHADER_OPTIMIZATION_LEVEL3
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
Indique au compilateur de traiter tous les avertissements comme des erreurs lorsqu’il compile le code du nuanceur. Nous vous recommandons d’utiliser cette constante pour le nouveau code du nuanceur, afin de pouvoir résoudre tous les avertissements et réduire le nombre de défauts de code difficiles à trouver.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
Indique au compilateur de supposer que les vues d’accès non ordonnées (UAV) et les vues de ressources de nuanceur (SRV) peuvent être des alias pour cs_5_0. S’applique uniquement à DirectX 12 / Shader Model 5.1
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
Indique au compilateur d’activer les tables de descripteur non liées. S’applique uniquement à DirectX 12 / Shader Model 5.1
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
Indique au compilateur de s’assurer que toutes les ressources sont liées. S’applique uniquement à DirectX 12 / Shader Model 5.1
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
Lors de la génération de PDB de débogage, cela utilise le fichier source et le fichier binaire pour le hachage.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
Lors de la génération de PDB de débogage, cela utilise le nom de fichier binaire uniquement pour le hachage.

Notes

Les D3DCOMPILE_RESOURCES_MAY_ALIASconstantes de compilateur , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLESet D3DCOMPILE_ALL_RESOURCES_BOUND sont nouvelles à partir de la D3dcompiler_47.dll fournie avec le KIT de développement logiciel (SDK) Windows 8.1 ou version ultérieure.

Notes

Les D3DCOMPILE_DEBUG_NAME_FOR_SOURCE constantes du compilateur et D3DCOMPILE_DEBUG_NAME_FOR_BINARY sont nouvelles à partir de la D3dcompiler_47.dll fournie avec le kit de développement logiciel (SDK) fall Creator’s Update Windows 10 (version 16299) ou ultérieure. Consultez ce billet de blog.

Notes

Pour DirectX 12, Shader Model 5.1, l’API D3DCompile et FXC sont tous déconseillés. Utilisez plutôt le modèle de nuanceur 6 via DXIL. Consultez GitHub.

Spécifications

Condition requise Valeur
En-tête
D3DCompiler.h

Voir aussi

Constantes D3DCompiler