This is the real and full D3D12 API, no imitations, pretender or reimplementation here… this is the real deal. libd3d12.so is compiled from the same source code as d3d12.dll on Windows but for a Linux target. It offers the same level of functionality and performance (minus virtualization overhead).
>> Linux when running in WSL.
>> minus virtualization overhead
refers to "para" in "paravirtualization." "Paravirtualization" is reducing the overhead of virtualization when the guest knows it's being virtualized.
It is an extension of the capability of WSL, giving you that sweet convenience of the DirectX API with your existing ML project. Of course, this extension makes your project incompatible with desktop Linux once adopted.
It seems like Microsoft is continuing to see Linux as a production server target while positioning Windows to remain relevant as a workstation OS.
Ostensibly, this is a move to compete with Mac OS and not Linux.
Sure, nothing stops you from targeting DX12 directly in your application code, but why would you do that? At that point, you'd just target Windows since your users would have to be running it anyway.
It's an implementation detail -- they're exposing the Windows graphics driver to the Linux system with the most minimal amount of translation and overhead.
You could code directly to it in your Linux application code but it makes no sense to do that. You'd be literally writing a Linux application that can only run under Windows -- the smallest market ever proposed. Instead library/framework developers will add it as another target to improve performance in WSL for generic Linux applications.
Ah, but it does tie the developer to Windows ~ this DirectX module can only be used with WSL2, which only runs on Windows.
Unless you think developers would actually bother coding explicitly for the world smallest possible market (Linux inside of Windows).
This is the first draft of the Microsoft Virtual GPU (vGPU) driver. The driver exposes a paravirtualized GPU to user mode applications running in a virtual machine on a Windows host. This enables hardware acceleration in environment such as WSL (Windows Subsystem for Linux) where the Linux virtual machine is able to share the GPU with the Windows host.
So this isn't actual "DirectX on Linux", just a driver for a virtual GPU exposed to WSL-guests to enable guests to directly use DirectX, more or less.
Probably most useful for Azure-based projects.