- Notifications
You must be signed in to change notification settings - Fork787
This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
License
microsoft/DirectXShaderCompiler
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The DirectX Shader Compiler project includes a compiler and related tools used to compile High-Level Shader Language (HLSL) programs into DirectX Intermediate Language (DXIL) representation. Applications that make use of DirectX for graphics, games, and computation can use it to generate shader programs.
For more information, see theWiki.
Visit theDirectX Landing Page for more resources for DirectX developers.
The starting point of the project is a fork of theLLVM andClang projects, modified to accept HLSL and emit a validated container that can be consumed by GPU drivers.
At the moment, the DirectX HLSL Compiler provides the following components:
dxc.exe, a command-line tool that can compile HLSL programs for shader model 6.0 or higher
dxcompiler.dll, a DLL providing a componentized compiler, assembler, disassembler, and validator
dxilconv.dll, a DLL providing a converter from DXBC (older shader bytecode format)
dxv.exe, a command-line tool that validates DXIL IR (compiled HLSL programs).
various other tools based on the above components
The Microsoft Windows SDK releases include a supported version of the compiler and validator.
The goal of the project is to allow the broader community of shader developers to contribute to the language and representation of shader programs, maintaining the principles of compatibility and supportability for the platform. It's currently in active development across two axes: language evolution (with no impact to DXIL representation), and surfacing hardware capabilities (with impact to DXIL, and thus requiring coordination with GPU implementations).
Development kits containing only the dxc.exe driver app, the dxcompiler.dll, and the dxil.dll signing binary are availablehere, or in thereleases tab.
As an example of community contribution, this project can also target theSPIR-V intermediate representation. Please see thedoc for how HLSL features are mapped to SPIR-V, and thewiki page for how to build, use, and contribute to the SPIR-V CodeGen.
When built from source DXC can utilize theMetal ShaderConverter if it isavailable during build and configuration time. This allows DXC to generate Metalshader libraries directly using the-metal
flag.
Note: DXC cannot currently disassemble Metal shaders so the-Fc
flag cannot beused in conjunction with the-Fo
flag.
See the full documentation forBuilding and testing DXC for detailed instructions.
To run shaders compiled as DXIL, you will need support from the operating system as well as from the driver for your graphics adapter. Windows 10 Creators Update is the first version to support DXIL shaders. See theWiki for information on using experimental support or the software adapter.
Hardware GPU support for DXIL is provided by the following vendors:
NVIDIA's r396 drivers (r397.64 and later) provide release mode support for DXIL1.1 and Shader Model 6.1 on Win10 1709 and later, and experimental mode supportfor DXIL 1.2 and Shader Model 6.2 on Win10 1803 and later. These drivers alsosupport DXR in experimental mode.
Drivers can be downloaded fromgeforce.com.
AMD’s driver (Radeon Software Adrenalin Edition 18.4.1 or later) provides release mode support for DXIL 1.1 and Shader Model 6.1. Drivers can be downloaded fromAMD's download site.
Intel's 15.60 drivers (15.60.0.4849 and later) support release mode for DXIL 1.0 and Shader Model 6.0 as well asrelease mode for DXIL 1.1 and Shader Model 6.1 (View Instancing support only).
Drivers can be downloaded from the following linkIntel Graphics Drivers
Direct access to 15.60 driver (latest as of this update) is provided below:
To make contributions, see theCONTRIBUTING.md file in this project.
You can find documentation for this project in thedocs
directory. These contain the original LLVM documentation files, as well as two new files worth nothing:
- HLSLChanges.rst: this is the starting point for how this fork diverges from the original llvm/clang sources
- DXIL.rst: this file contains the specification for the DXIL format
- tools/clang/docs/UsingDxc.rst: this file contains a user guide for dxc.exe
DirectX Shader Compiler is distributed under the terms of the University of Illinois Open Source License.
SeeLICENSE.txt andThirdPartyNotices.txt for details.
This project has adopted theMicrosoft Open Source Code of Conduct. For more information see theCode of Conduct FAQ or contactopencode@microsoft.com with any additional questions or comments.
About
This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
Topics
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.