Graphics APIs have been a headache for both developers and gamers for years. Microsoft owns the biggest gaming platform, Windows, and has its API named DirectX. The API is meant to work only on Windows operating systems as expected. However, with the huge success of the Vulkan API which is a cross-platform graphics API, Microsoft might be changing its mind for supported operating systems.
There is some work being done
The principal software engineer at Microsoft who is named Jesse Natalie seems to be currently working on adding and improving D3D12 compute support in OpenGL, through Mesa. Checking his activity on GitLab’s Freedesktop, he is actively contributing to the Direct3D project.
He also hinted out that there are more enhancements and improvements to be done in the pipeline:
« This adds some parallel state tracking for compute. In some cases, graphics state tracking is simply extended (e.g. resources bound to shaders), in others, it’s duplicated (e.g. additional pipeline caches), and in others it’s refactored. The final result is support for compute ARB_compute_shader with a bit of a slow path for indirects. Now that compute support is available, we can start hooking up compute shaders for things that need emulation in the future, like a faster path for indirect dispatches that need state vars. »
Microsoft was working on shader storage buffer object support for Gallium3D D3D12 backend within Mesa. Mesa is the open-source cross-platform software implementation of graphics APIs and is used for Linux as well. They also were working on OpenGL compute to allow OpenGL, GLES, and OpenCL to work on Windows Direct3D 12 drivers for Windows Subsystem for Linux.
Currently, it is not clear what D3D12 compute shader support in Mesa will benefit. The current progress on the project here is not related to any official D3D12 port. The purpose of this action might be just for GPU-optimized virtual machines. We will be keeping an eye on future news for more details.