Releases: microsoft/DirectXShaderCompiler
DX Compiler release for February 2025
DX Compiler release for February 2025
This cumulative release contains numerous bug fixes and stability improvements.
This release includes binaries:
- compiler:
dxc.exe
anddxcompiler.dll
on Windows,dxc
andlibdxcompiler.so
on Linux. - validator:
dxv.exe
anddxil.dll
on Windows,dxv
andlibdxil.so
on Linux. - Windows symbols (
.pdb
files)
The validator binaries will no longer be required for "signed" (hashed) shaders when using this release of the compiler, however they will still be loaded and used if found.
Here are some highlights:
- The incomplete WaveMatrix implementation has been removed. #6807
- DXIL Validator Hash is open sourced. #6846
- DXIL container validation for PSV0 part allows any content ordering inside string and semantic index tables. #6859
- The and() and or() intrinsics will now accept non-integer parameters by casting them to bools. #7060
- Released executables will now expect the filenames associated with the released pdbs. Instead of expecting
dxc_full.pdb
,dxc.exe
will now expectdxc.pdb
.
This DX compiler release is also available as a NuGet package here
DX Compiler release for July 2024
DX Compiler release for July 2024
This cumulative release contains numerous bug fixes and stability improvements.
Here are some highlights:
dxc generates invalid alignment on groupshared matrix load/store instructions in #6416
[Optimization] DXC is missing common factor optimization in some cases in #6593
[SPIR-V] Implement WaveMutliPrefix* in #6600
[SPIR-V] Implement SampleCmpLevel for SM6.7 in #6613
Avoid adding types to default namespace in #6646
Release notes once found in README.md can now be found as ReleaseNotes.md.
Fixed several bugs in the loop restructurizer. Shader developers who are using -opt-disable structurize-loop-exits-for-unroll
to disable the loop restructurizer should consider removing that workaround.
Clang-built Windows binaries are included in addition to the MSVC-built binaries that have always been shipped before. The clang-built compiler is expected to improve HLSL compile times in many cases. We are eager for feedback about this build positive or negative, related to compile times or correctness.
This DX compiler release is also available as a NuGet package Microsoft.Direct3D.DXC
DX Compiler Mesh Nodes Preview Release
DX Compiler Mesh Nodes Preview Release
This release enables the experimental mesh nodes feature. Mesh node shaders allow using the mesh shader outputs to funnel the output of a work graph into the geometry pipeline. From there, graphics output can be formed based on the product of a work graph. For details, see the DirectX Blog post and the mesh nodes section of the work graphs spec.
To make use of these new work graph nodes, build with the -T lib_6_9
flag. This doesn't imply that mesh nodes are part of 6.9, but just that the "experimental" version is always one version past the latest.
The Windows package includes dxc.exe, dxcompiler.dll, and corresponding lib and headers for x64 and arm64 platforms. The Linux package includes dxc, libdxcompiler.so, and corresponding headers for x86_64 Ubuntu LTS (22.04).
The DXIL signing library (dxil.dll/libdxil.so) is not provided with this preview release. DXIL generated with this compiler is not final, cannot be validated, and is not supported for distribution or execution on machines not running in developer mode.
The new DirectX 12 Preview Agility SDK (Microsoft.Direct3D.D3D12 nuget package here), and a hardware driver with appropriate support are required to run mesh node shaders. Please see https://aka.ms/directx12agility for details. Nuget for Microsoft.Direct3D.DXC can be found here.
The SPIR-V backend of the compiler has been enabled in this release. Please note that Microsoft does not perform testing/verification of the SPIR-V backend.
DX Compiler release for May 2024
DX Compiler Relase for May 2024
This release includes two major new elements:
- The introduction of the first component of HLSL 202x
- The inclusion of clang-built Windows binaries
See the official blog post for a more detailed description of this release.
HLSL 202x is a placeholder designation for what will ultimately be a new language version that further aligns HLSL with modern language features. It is intended to serve as a bridge to help transition to the expected behavior of the modernized compiler.
To experiment with 202x, use the -HV 202x
flag. We recommend enabling these warnings as well to catch potential changes in behavior: -Wconversion -Wdouble-promotion -Whlsl-legacy-literal
.
The first feature available in 202x updates HLSL's treatment of literals to better conform with C/C++. In previous versions, un-suffixed literal types targeted the highest possible precision. This feature revises that to mostly conform with C/C++ behavior. See the above blog post for details.
Clang-built Windows binaries are included in addition to the MSVC-built binaries that have always been shipped before. The clang-built compiler is expected to improve HLSL compile times in many cases. We are eager for feedback about this build positive or negative, related to compile times or correctness.
This DX compiler release is also available as a NuGet package Microsoft.Direct3D.DXC.
The new DirectX 12 Agility SDK and a hardware driver with appropriate support are required to run shader model 6.8 shaders. Please see https://aka.ms/directx12agility for details.
The SPIR-V backend of the compiler has been enabled in this release.
DX Compiler Release for March 2024 - Patch 2
This is a Patch Release for the March 2024 DirectX Compiler.
This release contains a high priority bug fix for a significant regression that impacted users.
This DX compiler release is also available as a NuGet package [Microsoft.Direct3D.DXC](https://www.nuget.org/packages/Microsoft.Direct3D.DXC/1.8.2403.24)
.
What's Changed
- [Sema] Check FunctionDecl has identifier before getName. (#6439) by @python3kgae in #6457
Full Changelog: v1.8.2403.1...v1.8.2403.2
Versioning Note
This release version is considered v1.8.2403.2, and the commit is tagged as such. However, versioning for binaries and the NuGet package will have a different patch version number. This is expected at this time.
The main dxc executable and dxcompiler.dll have version 1.8.2403.37, and the DXIL.dll and NuGet package have version 1.8.2403.24.
DX Compiler Release for March 2024 - Patch 1
This is a Patch Release for the March 2024 DirectX Compiler.
Issue #6410 was reported, where using literal arguments in the fmod
intrinsic would crash the compiler. This patch fixes the issue by reverting the commit that introduced the regression.
This DX compiler release is also available as a NuGet package Microsoft.Direct3D.DXC.
What's Changed
Full Changelog: v1.8.2403...v1.8.2403.1
Versioning Note
This release version is considered v1.8.2403.1
, and the commit is tagged as such. However, versioning for binaries and the NuGet package will have a different patch version number. This is expected at this time.
The main dxc executable and dxcompiler.dll
have version 1.8.2403.36
, and the DXIL.dll
and NuGet package have version 1.8.2403.21
.
DX Compiler release for March 2024
DX Compiler release for March 2024
- Shader Model 6.8 is fully supported
- Work Graphs allow node shaders with user-defined input and output payloads
- New Barrier builtin functions with specific memory types and semantics
- Expanded Comparison sampler intrinsics: SampleCmpBias, SampleCmpGrad, and CalculateLevelOfDetail
- StartVertexLocation and StartInstanceLocation semantics
- WaveSizeRange entry point attribute allows specifying a range of supported wave sizes
- Improved compile-time validation and runtime validation information
- Various stability improvements including numerous address sanitation fixes
- Several Diagnostic improvements
- Many diagnostics are generated earlier and with more detailed information
- Library profile diagnostic improvements
- No longer infer library shader type when not specified
- More helpful diagnostics for numthreads and other entry point attributes
- Validation errors more accurately determine usage by the entry point
- Improve debug info generation
- Further improvements to Linux build quality
This DX compiler release is also available as a NuGet package Microsoft.Direct3D.DXC.
The new DirectX 12 Agility SDK and a hardware driver with appropriate support are required to run shader model 6.8 shaders. Please see https://aka.ms/directx12agility for details.
The SPIR-V backend of the compiler has been enabled in this release.
DX Compiler release for August 2023.
DX Compiler release for August 2023.
- HLSL 2021 is now enabled by default
- Various HLSL 2021 fixes have been made to
- Operator overloading fixes
- Templates fixes
- Select() with samplers
- Bitfields show in reflections
- Bitfields can be used on enums
- Allow function template default params
- Issues with loading and using Linux binaries have been resolved
- Support #pragma region/endregion
- Various stability and diagnostic improvements
- Dxcapi.h inline documentation is improved
- Linking of libraries created by different compilers is disallowed to prevent interface Issues
- Inout parameter correctness improved
This DX compiler release is also available as a NuGet package Microsoft.Direct3D.DXC.
The new DirectX 12 Agility SDK and a hardware driver with appropriate support are required to run shader model 6.7 shaders. Please see https://aka.ms/directx12agility for details.
The SPIR-V backend of the compiler has been enabled in this release.
DX Compiler Preview Release for June 2023
DX Compiler preview release for June 2023.
-
Includes experimental support for Shader Model 6.8 features:
- New Wave matrix types support wave-cooperative multiplication and accumulation operations.
- New Work Graphs adds "node" shaders that can generate GPU workloads in a shader graph.
-
See the DirectX blog for more information about Shader Model 6.8 features: https://devblogs.microsoft.com/directx/
The Windows package includes dxc.exe, dxcompiler.dll, and corresponding lib and headers for x64 and arm64 platforms. The Linux package includes dxc, libdxcompiler.so, and corresponding headers for x86_64 Ubuntu LTS (22.04).
The DXIL signing library (dxil.dll/libdxil.so) is not provided with this preview release. DXIL generated with this compiler targeting Shader Model 6.8 is not final, cannot be validated, and is not supported for distribution or execution on machines not running in developer mode.
The new DirectX 12 Preview Agility SDK (Microsoft.Direct3D.D3D12 nuget package here), and a hardware driver with appropriate support are required to run shader model 6.8 shaders. Please see https://aka.ms/directx12agility for details. Nuget for Microsoft.Direct3D.DXC can be found here.
The SPIR-V backend of the compiler has been enabled in this release. Please note that Microsoft does not perform testing/verification of the SPIR-V backend.
DX Compiler release for December 2022 - Bug fixes
- Includes bug fixes
- Improved Linux package layout