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
D3DXSHADER _ PACKMATRIX _ COLUMNMAJOR
À 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.
D3DXSHADER _ PACKMATRIX _ ROWMAJOR
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
D3DXSHADER _ Évitez _ _ le contrôle de Flow
/GFA
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
D3DXSHADER _ Déboguer
/Zi
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
D3DXSHADER _ ACTIVER la _ _ compatibilité descendante
/GEC
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
D3DXSHADER _ FORCER _ le _ logiciel PS _ NOOPT
N/A
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
D3DXSHADER _ FORCER _ les _ _ NOOPT de logiciel vs
N/A
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
D3DXSHADER _ /GIS de la _ strictité IEEE
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
D3DXSHADER _ AUCUN _ préombrage
/op
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
D3DXSHADER _ /O0 de _ niveau0 d’optimisation
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
D3DXSHADER _ OPTIMISATION du _ niveau1
/O1
Deuxième niveau d’optimisation le plus bas.
Direct3D 9-non
Direct3D 10-Oui
D3DXSHADER _ /O2 _ d’isolement2 d’optimisation
Deuxième niveau d’optimisation le plus élevé.
Direct3D 9-non
Direct3D 10-Oui
D3DXSHADER _ OPTIMISATION du _ niveau3
/O3
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
D3DXSHADER _ PARTIALPRECISION
/GPP
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
D3DXSHADER _ PRÉFÉRER _ _ le contrôle de Flow
/GFP
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
D3DXSHADER _ SKIPOPTIMIZATION
/OD
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
D3DXSHADER _ SKIPVALIDATION
/VD
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
D3DXSHADER _ UTILISER _ Legacy _ D3DX9 _ 31 _ dll
/LD
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
Débogage D3DXSHADER _
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.
D3DXSHADER _ force _ PS _ Software _ NOOPT
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.
D3DXSHADER _ force _ _ NOOPT Software _
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.
D3DXSHADER _ SKIPVALIDATION
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 :

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
D3dx9shader. h

Voir aussi

Constantes D3DX