Indicateurs D3DXSHADER
Les indicateurs D3DXSHADER sont utilisés pour analyser, compiler ou assembler des nuanceurs.
Indicateurs de l’analyseur
Les indicateurs de temps d’analyse sont utilisés uniquement par le système Effect (compilation avant effet) quand vous créez un compilateur Effect. Par exemple, vous pouvez créer un objet de compilateur avec D3DXSHADER _ PACKMATRIX _ COLUMNMAJOR, puis utiliser cet objet de compilateur à plusieurs reprises avec différents indicateurs de compilateur pour générer du code spécialisé.
| Constante | Description |
|---|---|
|
À moins d’être explicitement spécifiés, les matrices sont compressées dans l’ordre des colonnes (chaque vecteur se trouve dans une seule colonne) lorsqu’elles sont transmises vers et depuis le nuanceur. Cette opération est généralement plus efficace, car elle permet d’effectuer une multiplication de matrice vectorielle à l’aide d’une série de produits point. |
|
Sauf spécification explicite, les matrices sont compressées dans l’ordre ligne-principal (chaque vecteur se trouve sur une seule ligne) lorsqu’il est passé au nuanceur ou à partir de celui-ci. |
Indicateurs du compilateur
Le compilateur HLSL DirectX 10 est désormais le compilateur par défaut. Pour plus d’informations , consultez outil de compilateur Effect .
Le tableau suivant détaille les indicateurs disponibles dans Direct3D 9 et Direct3D 10. La valeur de l’indicateur est l’option fxc équivalente.
| Constante/valeur | Description |
|---|---|
|
Il s’agit d’un indicateur permettant au compilateur d’éviter d’utiliser des instructions de contrôle de Flow. Direct3D 9-Oui Direct3D 10-Oui |
|
Insérez le nom de fichier de débogage, les numéros de ligne et les informations de type et de symbole lors de la compilation du nuanceur. Direct3D 9-Oui Direct3D 10-Oui |
|
Compilez _ _ les nuanceurs PS 1 x en tant que PS _ 2 _ 0. Les effets qui spécifient _ _ les cibles PS 1 x vont plutôt être compilés en _ cibles PS 2 _ 0, car il s’agit de la version de nuanceur minimale prise en charge par la version du compilateur du nuanceur livré avec DirectX 10. Cet indicateur n’a aucun effet lorsqu’il est utilisé avec des cibles de compilation de niveau supérieur. Direct3D 9-non Direct3D 10-Oui |
|
Force le compilateur à effectuer une compilation en fonction de la cible de logiciel suivante la plus élevée disponible pour les nuanceurs de pixels. Cet indicateur active également les optimisations et le débogage sur. Direct3D 9-Oui Direct3D 10-Oui |
|
Force le compilateur à compiler en fonction de la cible de logiciel suivante la plus élevée disponible pour les nuanceurs de vertex. Cet indicateur active également les optimisations et le débogage sur. Direct3D 9-Oui Direct3D 10-Oui |
|
Désactiver les optimisations qui peuvent provoquer la différence entre la sortie d’un programme de nuanceur compilé et la sortie d’un programme compilé avec le compilateur de nuanceur DirectX 9 en raison des erreurs de faible précision dans les calculs à virgule flottante. Direct3D 9-non Direct3D 10-Oui |
|
Désactive les prénuanceurs. Le compilateur n’extraira pas les expressions statiques à des fins d’évaluation sur le processeur de l’ordinateur hôte. En outre, le compilateur ne gonflant aucune expression lors de la compilation de fonctions autonomes. Direct3D 9-Oui Direct3D 10-Oui |
|
Niveau d’optimisation le plus bas. Peut générer du code plus lentement, mais le fera plus rapidement. Cela peut être utile dans un cycle de développement de nuanceur hautement itératif. Direct3D 9-non Direct3D 10-Oui |
|
Deuxième niveau d’optimisation le plus bas. Direct3D 9-non Direct3D 10-Oui |
|
Deuxième niveau d’optimisation le plus élevé. Direct3D 9-non Direct3D 10-Oui |
|
Niveau d’optimisation le plus élevé. Produit le meilleur code possible, mais peut prendre beaucoup plus de temps. Cela sera utile pour les versions finales d’une application où les performances sont le facteur le plus important. Direct3D 9-non Direct3D 10-Oui |
|
Forcer tous les calculs du nuanceur résultant à se produire à la précision partielle. Cela peut entraîner une évaluation plus rapide des nuanceurs sur un matériel. Direct3D 9-Oui Direct3D 10-Oui |
|
Il s’agit d’un Conseil permettant au compilateur de préférer utiliser des instructions de contrôle de Flow. Direct3D 9-Oui Direct3D 10-Oui |
|
Indique au compilateur d’ignorer les étapes d’optimisation pendant la génération de code. Sauf si vous essayez d’isoler un problème dans votre code et que vous soupçonnez le compilateur, l’utilisation de cette option n’est pas recommandée. Direct3D 9-Oui Direct3D 10-Oui |
|
Ne validez pas le code généré par rapport aux capacités et contraintes connues. Cette option est recommandée uniquement lors de la compilation de nuanceurs connus pour fonctionner (autrement dit, les nuanceurs qui ont été compilés avant sans cette option). Les nuanceurs sont toujours validés par le runtime avant d’être définis sur l’appareil. Direct3D 9-Oui Direct3D 10-Oui |
|
Activez l’utilisation du compilateur HLSL Direct3D 9 d’origine. OCT2006 _ d3dx9 _ 31 _x86.cab ou OCT2006 _ d3dx9 _ 31 _x64.cab doivent être inclus dans le cadre de la redistribution des applications. Cet indicateur est nécessaire pour compiler _ _ les nuanceurs PS 1 x sans utiliser l’indicateur de promotion sur PS _ 2 _ 0. La spécification de cet indicateur lors de l’obtention d’une interface ID3DXEffectCompiler provoque des appels ultérieurs à CompileEffect et CompileShader via cet objet pour utiliser le compilateur hérité. Direct3D 9-Oui Direct3D 10-non |
Indicateurs de l’assembleur
Les indicateurs de l’assembleur sont utilisés par le système d’effet pour optimiser le code assembleur du nuanceur et de l’effet.
| Constante | Description |
|---|---|
|
Insérez le nom de fichier de débogage, les numéros de ligne et les informations de type et de symbole lors de la compilation du nuanceur. |
|
Force le compilateur à effectuer une compilation en fonction de la cible de logiciel suivante la plus élevée disponible pour les nuanceurs de pixels. Cet indicateur active également les optimisations et le débogage sur. |
|
Force le compilateur à compiler en fonction de la cible de logiciel suivante la plus élevée disponible pour les nuanceurs de vertex. Cet indicateur active également les optimisations et le débogage sur. |
|
Ne validez pas le code généré par rapport aux capacités et contraintes connues. Cette option est recommandée uniquement lors de la compilation de nuanceurs connus pour fonctionner (autrement dit, les nuanceurs qui ont été compilés avant sans cette option). Les nuanceurs sont toujours validés par le runtime avant d’être définis sur l’appareil. |
Remarques
Le système Effect utilise les indicateurs d’analyseur lorsqu’il est appelé par les fonctions suivantes :
Le système Effect utilise des indicateurs de compilateur lorsqu’il est appelé par les fonctions suivantes :
- D3DXCompileShader (ou D3DXCompileShaderFromFile ou D3DXCompileShaderFromResource)
- CompileEffect (ou CompileShader)
En outre, vous pouvez utiliser des indicateurs de compilateur lors de la création d’un effet en appelant D3DXCreateEffect (ou D3DXCreateEffectFromFile ou D3DXCreateEffectFromResource).
- Si vous transmettez un fichier. FX non compilé, le système d’effet utilisera le paramètre d’entrée d’indicateur lors de la compilation.
- Si vous passez un effet compilé, le système Effect ignore les indicateurs du compilateur, car ils ne sont pas nécessaires pour charger l’effet.
Le système Effect utilise les indicateurs d’assembleur lorsqu’il est appelé par les fonctions suivantes :
L’application d’indicateurs de compilateur ou d' assembleurs à l’API incorrecte provoquera l’échec de la validation du nuanceur. Vérifiez la valeur de retour du code d’erreur Direct3D de la fonction avec l’outil de recherche d’erreurs DirectX (DXErr.exe) pour faciliter le suivi de cette erreur. Vous pouvez obtenir DXErr.exe et en savoir plus à ce sujet à partir du kit de développement logiciel (SDK) DirectX. Pour plus d’informations sur DirectX SDK, consultez où se trouve le kit de développement logiciel (SDK) DirectX ?.
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|