Share via


CompilerOptions Enumeration

Defines optimization options that may be chosen for shader and effect code compilation.

Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework (in microsoft.xna.framework.dll)

Syntax

[FlagsAttribute]
public enum CompilerOptions

Members

  Member name Description
AvoidFlowControl Hints to the compiler to avoid using flow-control instructions.
Debug Inserts debug file name, line numbers, and type and symbol information during shader compile.
ForcePixelShaderSoftwareNoOptimizations Forces the compiler to compile against the next highest available software target for pixel shaders. This flag also turns optimizations off and debugging on.
ForceVertexShaderSoftwareNoOptimizations Forces the compiler to compile against the next highest available software target for vertex shaders. This flag also turns optimizations off and debugging on.
None No options specified.
NoPreShader Disables preshaders. The compiler will not pull out static expressions for evaluation on the host CPU. Additionally, the compiler will not loft any expressions when compiling stand-alone functions.
NotCloneable Indicates the effect will be non-cloneable and will not contain any shader binary data. Setting this flag reduces effect memory usage by about 50 percent because it eliminates the need for the effect system to keep a copy of the shaders in memory.
PackMatrixColumnMajor Unless explicitly specified, matrices will be packed in column major order (each vector will be in a single column) when passed to and from the shader. This is generally more efficient because it allows vector-matrix multiplication to be performed using a series of dot products.
PackMatrixRowMajor Unless explicitly specified, matrices will be packed in row major order (each vector will be in a single row) when passed to or from the shader.
PartialPrecision Forces all computations in the resulting shader to occur at partial precision. This may result in faster evaluation of shaders on some hardware.
PreferFlowControl Hints to the compiler to prefer using flow-control instructions.
SkipOptimization Instructs the compiler to skip optimization steps during code generation. Unless you are trying to isolate a problem in your code and you suspect the compiler, using this option is not recommended.
SkipValidation Do not validate the generated code against known capabilities and constraints. This option is recommended only when compiling shaders that are known to work (that is, shaders that have compiled before without this option). Shaders are always validated by the runtime before they are set to the device.

See Also

Reference

Effect Constructor
Effect.CompileEffectFromFile Method
Effect.CompileEffectFromSource Method
ShaderCompiler.AssembleFromFile Method
ShaderCompiler.AssembleFromSource Method
ShaderCompiler.CompileFromFile Method
ShaderCompiler.CompileFromSource Method
Microsoft.Xna.Framework.Graphics Namespace

Platforms

Xbox 360, Windows XP SP2, Windows Vista