|
| 1 | +# DirectX Shader Compiler Redistributable Package |
| 2 | + |
| 3 | +This package contains a copy of the DirectX Shader Compiler redistributable and its associated development headers. |
| 4 | + |
| 5 | +For help getting started, please see: |
| 6 | + |
| 7 | +<https://github.com/microsoft/DirectXShaderCompiler/wiki> |
| 8 | + |
| 9 | +## Licenses |
| 10 | + |
| 11 | +The included licenses apply to the following files: |
| 12 | + |
| 13 | +| License file | Applies to | |
| 14 | +|---|---| |
| 15 | +|LICENSE-MS.txt |dxil.dll (if included in package)| |
| 16 | +|LICENSE-MIT.txt |d3d12shader.h| |
| 17 | +|LICENSE-LLVM.txt |all other files| |
| 18 | + |
| 19 | +## Changelog |
| 20 | + |
| 21 | +### Version 1.8.2405 |
| 22 | + |
| 23 | +DX Compiler Release for May 2024 |
| 24 | + |
| 25 | +This release includes two major new elements: |
| 26 | + |
| 27 | +- The introduction of the first component of HLSL 202x |
| 28 | +- The inclusion of clang-built Windows binaries |
| 29 | + |
| 30 | +See [the official blog post](https://devblogs.microsoft.com/directx/dxc-1-8-2405-available) for a more detailed description of this release. |
| 31 | + |
| 32 | +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. |
| 33 | + |
| 34 | +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`. |
| 35 | + |
| 36 | +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. |
| 37 | + |
| 38 | +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. |
| 39 | + |
| 40 | +### Version 1.8.2403.2 |
| 41 | + |
| 42 | +DX Compiler Release for March 2024 - Patch 2 |
| 43 | + |
| 44 | +- Fix regression: [#6426](https://github.com/microsoft/DirectXShaderCompiler/issues/6426) Regression, SIGSEGV instead of diagnostics when encountering bool operator==(const T&, const T&). |
| 45 | + |
| 46 | +### Version 1.8.2403.1 |
| 47 | + |
| 48 | +DX Compiler Release for March 2024 - Patch 1 |
| 49 | + |
| 50 | +- Fix regression: [#6419](https://github.com/microsoft/DirectXShaderCompiler/issues/6419) crash when using literal arguments with `fmod`. |
| 51 | + |
| 52 | +### Version 1.8.2403 |
| 53 | + |
| 54 | +DX Compiler release for March 2024 |
| 55 | + |
| 56 | +- Shader Model 6.8 is fully supported |
| 57 | + - Work Graphs allow node shaders with user-defined input and output payloads |
| 58 | + - New Barrier builtin functions with specific memory types and semantics |
| 59 | + - Expanded Comparison sampler intrinsics: SampleCmpBias, SampleCmpGrad, and CalculateLevelOfDetail |
| 60 | + - StartVertexLocation and StartInstanceLocation semantics |
| 61 | + - WaveSizeRange entry point attribute allows specifying a range of supported wave sizes |
| 62 | +- Improved compile-time validation and runtime validation information |
| 63 | +- Various stability improvements including numerous address sanitation fixes |
| 64 | +- Several Diagnostic improvements |
| 65 | + - Many diagnostics are generated earlier and with more detailed information |
| 66 | + - Library profile diagnostic improvements |
| 67 | + - No longer infer library shader type when not specified |
| 68 | + - More helpful diagnostics for numthreads and other entry point attributes |
| 69 | + - Validation errors more accurately determine usage by the entry point |
| 70 | +- Improve debug info generation |
| 71 | +- Further improvements to Linux build quality |
| 72 | + |
| 73 | +### Version 1.7.2308 |
| 74 | + |
| 75 | +DX Compiler release for August 2023 |
| 76 | + |
| 77 | +- HLSL 2021 is now enabled by default |
| 78 | +- Various HLSL 2021 fixes have been made to |
| 79 | + - Operator overloading fixes |
| 80 | + - Templates fixes |
| 81 | + - Select() with samplers |
| 82 | + - Bitfields show in reflections |
| 83 | + - Bitfields can be used on enums |
| 84 | + - Allow function template default params |
| 85 | +- Issues with loading and using Linux binaries have been resolved |
| 86 | +- Support #pragma region/endregion |
| 87 | +- Various stability and diagnostic improvements |
| 88 | +- Dxcapi.h inline documentation is improved |
| 89 | +- Linking of libraries created by different compilers is disallowed to prevent interface Issues |
| 90 | +- Inout parameter correctness improved |
| 91 | + |
| 92 | +The package includes dxc.exe, dxcompiler.dll, corresponding lib and headers, and dxil.dll for x64 and arm64 platforms on Windows. |
| 93 | +The package also includes Linux version of the compiler with corresponding executable, libdxcompiler.so, corresponding headers, and libdxil.so for x64 platforms. |
| 94 | + |
| 95 | +The new DirectX 12 Agility SDK (Microsoft.Direct3D.D3D12 nuget package) and a hardware driver with appropriate support |
| 96 | +are required to run shader model 6.7 shaders. Please see <https://aka.ms/directx12agility> for details. |
| 97 | + |
| 98 | +The SPIR-V backend of the compiler has been enabled in this release. |
| 99 | + |
| 100 | +### Version 1.7.2212 |
| 101 | + |
| 102 | +DX Compiler release for December 2022. |
| 103 | + |
| 104 | +- Includes full support of HLSL 2021 for SPIRV generation as well as many HLSL 2021 fixes and enhancements: |
| 105 | + - HLSL 2021's `and`, `or` and `select` intrinsics are now exposed in all language modes. This was done to ease porting code bases to HLSL2021, but may cause name conflicts in existing code. |
| 106 | + - Improved template utility with user-defined types |
| 107 | + - Many additional bug fixes |
| 108 | +- Linux binaries are now included. |
| 109 | + This includes the compiler executable, the dynamic library, and the dxil signing library. |
| 110 | +- New flags for inspecting compile times: |
| 111 | + - `-ftime-report` flag prints a high level summary of compile time broken down by major phase or pass in the compiler. The DXC |
| 112 | +command line will print the output to stdout. |
| 113 | + - `-ftime-trace` flag prints a Chrome trace json file. The output can be routed to a specific file by providing a filename to |
| 114 | +the argument using the format `-ftime-trace=<filename>`. Chrome trace files can be opened in Chrome by loading the built-in tracing tool |
| 115 | +at chrome://tracing. The trace file captures hierarchial timing data with additional context enabling a much more in-depth profiling |
| 116 | +experience. |
| 117 | + - Both new options are supported via the DXC API using the `DXC_OUT_TIME_REPORT` and `DXC_OUT_TIME_TRACE` output kinds respectively. |
| 118 | +- IDxcPdbUtils2 enables reading new PDB container part |
| 119 | +- `-P` flag will now behave as it does with cl using the file specified by `-Fi` or a default |
| 120 | +- Unbound multidimensional resource arrays are allowed |
| 121 | +- Diagnostic improvements |
| 122 | +- Reflection support on non-Windows platforms; minor updates adding RequiredFeatureFlags to library function reflection and thread group size for AS and MS. |
| 123 | + |
| 124 | +The package includes dxc.exe, dxcompiler.dll, corresponding lib and headers, and dxil.dll for x64 and arm64 platforms on Windows. |
| 125 | +For the first time the package also includes Linux version of the compiler with corresponding executable, libdxcompiler.so, corresponding headers, and libdxil.so for x64 platforms. |
| 126 | + |
| 127 | +The new DirectX 12 Agility SDK (Microsoft.Direct3D.D3D12 nuget package) and a hardware driver with appropriate support |
| 128 | +are required to run shader model 6.7 shaders. Please see <https://aka.ms/directx12agility> for details. |
| 129 | + |
| 130 | +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. |
| 131 | + |
| 132 | +### Version 1.7.2207 |
| 133 | + |
| 134 | +DX Compiler release for July 2022. Contains shader model 6.7 and many bug fixes and improvements, such as: |
| 135 | + |
| 136 | +- Features: Shader Model 6.7 includes support for Raw Gather, Programmable Offsets, QuadAny/QuadAll, WaveOpsIncludeHelperLanes, and more! |
| 137 | +- Platforms: ARM64 support |
| 138 | +- HLSL 2021 : Enable “using” keyword |
| 139 | +- Optimizations: Loop unrolling and dead code elimination improvements |
| 140 | +- Developer tools: Improved disassembly output |
| 141 | + |
| 142 | +The package includes dxc.exe, dxcompiler.dll, corresponding lib and headers, and dxil.dll for x64 and, for the first time, arm64 platforms! |
| 143 | + |
| 144 | +The new DirectX 12 Agility SDK (Microsoft.Direct3D.D3D12 nuget package) and a hardware driver with appropriate support |
| 145 | +are required to run shader model 6.7 shaders. Please see <https://aka.ms/directx12agility> for details. |
| 146 | + |
| 147 | +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. |
0 commit comments