[Mesa-dev] OpenGL and OpenCL on top of D3D12

Gert Wollny gert.wollny at collabora.com
Tue Mar 24 16:38:24 UTC 2020


Dear Mesa developers,

Today, we at Collabora together with Microsoft have announced a new
project based on Mesa: OpenGL and OpenCL on top of Microsoft's D3D12.
You can find the full  announcements here:

https://www.collabora.com/news-and-blog/news-and-events/introducing-opencl-and-opengl-on-directx.html

https://devblogs.microsoft.com/directx/in-the-works-opencl-and-opengl-mapping-layers-to-directx

How does this affect Mesa? 

First of all, we intend to contribute this work into upstream Mesa. 

The OpenGL work is similar to what Zink does with Vulkan, and will use
some comparable approaches for the emulation of features, hence there
will be some obvious opportunities for code-sharing with Zink. 

The OpenCL support is not using the Clover runtime, but instead is a
standalone runtime that shares the NIR-to-DXIL compiler that we
contribute to Mesa and that is also used by above OpenGL layer.  

As we are using spirv-to-nir in our OpenCL compiler, we have
implemented some missing OpenCL-specific features there as well. In
addition, we are also carrying some out-of-tree changes from other mesa
contributors, where we also contribute reviews of in order to help them
land.

Our work also includes contributing, improving, and maintaining the CI
for Windows, to be run on a variety of supported Windows targets. 
Currently, Collabora is providing a Windows GitLab CI runner in order
to run our builds. We are looking into integrating this into fd.o's
general fleet of shared runners.

A high-performance DXGI libgl-target/winsys is also in the works, so we
can render directly into Windows' compositor surfaces. In theory, and
as a benefit to the wider Mesa community, other hardware driver could
be ported to support rendering into those surfaces as well.

As part of this work and thanks to Microsoft's support, the WGL header
files are being re-licensed as MIT, so we can reuse these original
headers rather than a reverse-engineered copy. Patches for this will
follow soon.

A dump of the code in its current state can be found here:
https://gitlab.freedesktop.org/kusma/mesa/-/tree/msclc-d3d12
and we intend to upstream this code by breaking it into independent
MRs shortly.

We hope you're all as excited about this as we are!

Gert Wollny, on behalf of the Microsoft development team (Bill
Kristiansen and Jesse Natalie) and the Collabora development team
(Boris Brezillon, Daniel Stone, Elie Tournier, Erik Faye-Lund, Louis-
Francis Ratté-Boulianne)




More information about the mesa-dev mailing list