blob: c3b1b6e0359c82329fb476804e6e01f8ae4fe1d1 [file] [log] [blame]
============================
Using DirectX Compiler Tools
============================
.. contents::
:local:
Introduction
============
The HLSL on LLVM project provides a number of tools to create and manipulate
DirectX shader programs.
After building the project, the tools described are available under the
Debug\bin or Release\bin subdirectories under the build target directory.
Tools
=====
dxc.exe
This command-line tool is a replacement for fxc, and accepts the same
command-line switches.
dndxc.exe
This tool provides a GUI to compile HLSL programs and examine details of
compilation, including the output assembly, the container structure, and
the optimizer stages run.
dxexp.exe
This command-line tool checks whether the current setup is able to run
experimental shaders, that is, shaders that use a driver's experimental
shader support or that are not properly validated.
dxa.exe
This command-line tool provides a number of options to
assemble/disassemble a shader.
dxr.exe
This command-line tool allows a shader file to be rewritten in a
consistent style, and optionally trim unused declarations.
Running Experimental Shaders
============================
To run experimental shaders in a process, the following conditions must be
met:
- A recent flight of Windows must be used.
- The 'Use developer features' must be set to 'Developer mode' in the 'For
developers' page of Settings.
- For a 64-bit OS, the process should be a 64-bit process. This will be fixed
to support 32-bit processes on a 64-bit OS.
- The process must call D3D12EnableExperimentalFeatures to enable the
D3D12ExperimentalShaderModelsID setting. The ExecutionTest.cpp file under
tools\clang\unittests\HLSL\ExecutionTest.cpp has an example of how this can
be done.
- The API used must be D3D12.