HLSL Compiler Property Pages
You can use the HLSL compiler (fxc.exe) property pages to configure how individual HLSL shader files are built. You can also specify command-line arguments to the HLSL compiler by using the Additional Options property of the Command Line property page; this includes arguments that can't be configured by using other properties of the HLSL property pages. For information about the HLSL compiler, see Effect-Compiler Tool
HLSL General Property Page
Additional Include Directories
Specifies one or more directories to add to the include path; separate with semi-colons if more than one. (/I[path])
Entrypoint Name
Specifies the name of the entry point for the shader (/E[name])
Disable Optimizations
Yes (/Od) to disable optimizations; otherwise, No. By default, the value is Yes (/Od) for Debug configurations and No for Release configurations.
The /Od command-line argument to the HLSL compiler implicitly applies the /Gfp command-line argument, but output may not be identical to output that is produced by passing both the /Od and /Gfp command-line arguments explicitly.
Enable Debugging Information
Yes (/Zi) to enable debugging information; otherwise, No. By default, the value is Yes (/Zi) for Debug configurations and No for Release configurations.
Shader Type
Specifies the kind of shader. Different kinds of shaders implement different parts of the graphics pipeline. Certain kinds of shaders are available only in more recent shader models (which are specified by the Shader Model property)—for example, compute shaders were introduced in shader model 5.
This property corresponds to the [type] portion of the /T [type]_[model] command-line argument to the HLSL compiler. The Shader Models property specifies the [model] portion of the argument.
Choices
- Effect
- Vertex Shader
- Pixel Shader
- Geometry Shader
- Hull Shader
- Domain Shader
- Compute Shader
- Library
- Generate Root Signature Object
Shader Model
Specifies the shader model. Different shader models have different capabilities. In general, more recent shader models offer expanded capabilities but require more modern graphics hardware to run the shader code. Certain kinds of shaders (which are specified by the Shader Type property) are available only in more recent shader models—for example, compute shaders were introduced in shader model 5.
This property corresponds to the [model] portion of the /T [type]_[model] command-line argument to the HLSL compiler. The Shader Type property specifies the [type] portion of the argument.
All Resources Bound
Compiler will assume that all resources that a shader may reference are bound and are in good state for the duration of shader execution (/all_resources_bound). Available for Shader Model 5.1 and above.
Enable Unbounded Descriptor Tables
Inform the compiler that a shader may contain a declaration of a resource array with unbounded range (/enable_unbounded_descriptor_tables). Available for Shader Model 5.1 and above.
Set Root Signature
Attach root signature to shader bytecode (/setrootsignature). Available for Shader Model 5.0 and above.
Preprocessor Definitions
Adds one or more preprocessor symbol definitions to apply to the HLSL source code file. Use semi-colons to separate the symbol definitions.
This property corresponds to the /D [definitions] command-line argument to the HLSL compiler.
Compile a Direct2D custom pixel shader effect
Compile a Direct2D custom effect that contains pixel shaders. Do not use for a vertex or compute custom effect.
Multi Processor Compilation
Run multiple instances at the same time.
Advanced Property Page
Suppress Startup Banner
Suppresses the display of the startup banner and information message. (/nologo)
Treat Warnings As Errors
Treats all compiler warnings as errors. For a new project, it may be best to use /WX in all compilations; resolving all warnings will ensure the fewest possible hard-to-find code defects.
Output Files Property Page
Header Variable Name
Specifies a name for the variable name in the header file (/Vn [name])
Header File Name
Specifies a name for header file containing object code. (/Fh [name])
Object File Name
Specifies a name for object file. (/Fo [name])
Assembler Output
Specifies the contents of assembly language output file. (/Fc, /Fx)
Choices
- No Listing - No listing.
- Assembly-Only Listing - Assembly code file
- Assembly Code and Hex - Assembly code and hex listing file
Assembler Output File
Specifies file name for assembly code listing file
See also
C++ project property page reference
Command Line Property Pages
Compiling Shaders