In the works: OpenCL™ and OpenGL® mapping layers to DirectX
Building on our previous work with the D3D12 Translation Layer library as well as the D3D11On12 and D3D9On12 mapping layers, we’re happy to share that we are working on two new projects: OpenCL and OpenGL mapping layers to D3D12.
We’re excited to partner with engineers at Collabora to build OpenCL and OpenGL mapping layers using the Mesa 3D open source project. By leveraging our deep Windows and DirectX knowledge and Collabora’s extensive experience in the open source graphics space, we will be adding a new D3D12 backend to Mesa to support OpenCL and OpenGL, with initial support targeting OpenCL 1.2 and OpenGL 3.3.
We have a few goals as a part of this new work:
- Improve support for OpenCL- and OpenGL-based productivity and creative apps where native drivers are not available. We talk a lot about gaming on this blog, but this time the focus is on work, not play. By building the mapping layers on D3D12, we are building on the hard work we and our hardware partners have put into delivering stable and performant DirectX 12 drivers. When complete, the OpenCL and OpenGL mapping layers will provide hardware acceleration to more of your productivity and creative apps with just a DX12 driver, no other driver required.
- Contribute back to the graphics community. As we are building the mapping layers using an open source project, we intend to participate in the open source community. We will upstream the D3D12 backend to the main Mesa repository as we continue its development, and we hope that the Mesa and broader graphics development community will benefit from our contribution. In the meantime, you can check out the work in progress.
- Make it easier for developers to port their apps to D3D12. For developers looking to move from older OpenCL and OpenGL API versions to D3D12, the open source mapping layers will provide helpful example code on how to use the D3D12 Translation Layer library.
Stay tuned for more updates…
OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos. Complete license details are available on the Apple website. OpenGL® and the oval logo are trademarks or registered trademarks of Hewlett Packard Enterprise in the United States and/or other countries worldwide.
Great news! Hope Expresii, which requires OpenGL 2.1+, can finally run on Windows on ARM via this mapping!
I’m having very similar thoughts! This will be great for Windows on ARM. I’m still not 100% on the underlying reason for the v1.1 limitation on OpenGL: whether it’s lack of proper OpenGL support in Qualcomm’s graphics drivers (shame on Qualcomm if so) or if it’s a limitation with the emulation layer. But either way having a mapper to basically side step the issue would be awesome. I hope this comes to fruition soon!
Qualcomm doesn’t provide OpenGL ICDs for Windows, and only made OpenGL ES, not full OpenGL implementations for other operating systems.
As Qualcomm does not provide an ICD, the software rendering using GDI fallback has been used. The implementation for it didn’t change that much since Windows 95, which is why it’s still OpenGL 1.1.
(Windows on Arm supports OpenGL only for x86 apps, opengl32.dll is not provided for arm64 native apps currently)