Initial D3D12 support in WSL
This MR has a few things, which I'm happy to split and land separately if people would like:
- Adds a wrap for the D3D headers, which are newly published on GitHub under MIT license: https://github.com/microsoft/DirectX-Headers. This is useful both on Windows (we don't rely on having up-to-date headers in the Windows SDK) and for WSL.
- Adds build support for the D3D code in Linux. For the most part this is just mucking with some includes, but a few things need to be substantially different, such as fence synchronization.
d3d12as a software driver option for
GALLIUM_DRIVERsimilar to zink.
This is the first steps towards #3835 (closed).
Eventually, we'd like to build a system for automatically selecting the
d3d12 driver if
/dev/dxg is present, but that likely requires some X/Wayland work to be able to marshal the contents. Simply using the software driver path should be good enough for now. This MR originally went pretty far down that rabbit hole, but I've cut it back for now to give us something simpler and more functional to merge sooner.