This repository publishes the engineering specs for a number of DirectX features. It supplements the official API documentation with an extra level of detail that can be useful to expert developers.

Note that some of this material (especially in older specs) may not have been kept up to date with changes that occurred since the spec was written.

These specs are presented with different interfaces at two different URLs:

To read the specs, use https://microsoft.github.io/DirectX-Specs

To view history, clone, file an issue or prepare a pull request, use https://github.com/Microsoft/DirectX-Specs

Direct3D 12

These D3D12 specs were written as incremental deltas, with a separate spec per feature area. Baseline information about rendering pipeline behaviors that are common between D3D11 and D3D12 was inherited from the D3D11 spec rather than being duplicated into the 12 documentation. We have an ambition of refactoring this material to present more of a unified how-things-are-now view, rather than a historical what-changed-to-get-here, and to merge in foundational information from the D3D11 spec. Contributions welcome if you’d like to help with that!

This is not yet a complete set of D3D12 specs: we’ll be adding more as time permits. Please let us know if there are particular areas you’d like to see prioritized.

Direct3D 11

Direct3D 11.3 Functional Specification

This is a single combined spec, covering all functionality of D3D versions from 10 to 11.3.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Legal Notices

Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.

Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft’s general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.

Privacy information can be found at https://privacy.microsoft.com/en-us/

Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.