Microsoft Lands D3D12 Compute Support In Mesa 22.0
Following Microsoft working on shader storage buffer object support for their Gallium3D D3D12 back-end within Mesa, they've been working on OpenGL compute and OpenGL ES 3.1 support for this controversial component to allow OpenGL/GLES/OpenCL to work atop Windows' Direct3D 12 drivers such as for Windows Subsystem for Linux.
As of last night the Direct3D 12 compute support has been merged into Mesa 22.0.
This compute support is good enough that ARB_compute_shader support is exposed when running along the D3D12 path. ARB_compute_shader is necessary for OpenGL 4.3 compliance though at the moment this Microsoft emilation path only has OpenGL 3.3 support with many other GL 4.0+ extensions not yet supported.
Microsoft engineer Jesse Natalie wrote in the merge request that there still is planned room for improvement with this compute shader support, "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."
Mesa 22.0 is branching this week while the official release should be out in February as this quarterly feature update.
As of last night the Direct3D 12 compute support has been merged into Mesa 22.0.
This compute support is good enough that ARB_compute_shader support is exposed when running along the D3D12 path. ARB_compute_shader is necessary for OpenGL 4.3 compliance though at the moment this Microsoft emilation path only has OpenGL 3.3 support with many other GL 4.0+ extensions not yet supported.
Microsoft engineer Jesse Natalie wrote in the merge request that there still is planned room for improvement with this compute shader support, "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."
Mesa 22.0 is branching this week while the official release should be out in February as this quarterly feature update.
19 Comments