Constantes D3DCOMPILE
Les constantes D3DCOMPILE spécifient la façon dont le compilateur compile le code HLSL.
Constante | Description | Notes |
---|---|---|
|
Indique au compilateur d’insérer des informations de fichier/ligne/type/symbole de débogage dans le code de sortie. | Voir D3DXSHADER_DEBUG |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Indique au compilateur de ne pas utiliser de constructions de contrôle de flux lorsque cela est possible. | Voir D3DXSHADER_AVOID_FLOW_CONTROL |
|
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. | |
|
Force la compilation stricte IEEE, ce qui évite les optimisations susceptibles d’enfreindre les règles IEEE. | Voir D3DXSHADER_IEEE_STRICTNESS |
|
Indique au compilateur de permettre aux nuanceurs plus anciens de compiler sur des cibles 5_0. | Voir D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY |
|
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 |
|
Indique au compilateur d’utiliser le deuxième niveau d’optimisation le plus bas. | Voir D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
Indique au compilateur d’utiliser le deuxième niveau d’optimisation le plus élevé. | Voir D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
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 |
|
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. | |
|
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 |
|
Indique au compilateur d’activer les tables de descripteur non liées. | S’applique uniquement à DirectX 12 / Shader Model 5.1 |
|
Indique au compilateur de s’assurer que toutes les ressources sont liées. | S’applique uniquement à DirectX 12 / Shader Model 5.1 |
|
Lors de la génération de PDB de débogage, cela utilise le fichier source et le fichier binaire pour le hachage. | |
|
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_ALIAS
constantes de compilateur , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
et 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 |
|