Not all Windows devices have great support for hardware-accelerated OpenCL and OpenGL. So, game developers often find it difficult to support OpenGL games on Windows. In order to improve application compatibility, Collabora is developing a generic solution to this issue. In partnership with Microsoft, Collabora is building OpenCL and OpenGL mapping layers to bring OpenCL 1.2 and OpenGL 3.3 support to all Windows and DirectX 12 enabled devices. With these new mapping layers, a GPU vendor can implement a D3D12 driver for their hardware and support DirectX, OpenCL and OpenGL APIs.
Here’s how Collabora is doing this:
The work is largely split into three parts: an OpenCL compiler, an OpenCL runtime, and a Gallium driver that builds and executes command-buffers on the GPU using the D3D12 API.
In addition, there is a shared NIR-to-DXIL shader compiler that both components use. For those not familiar with NIR, it is Mesa’s internal representation for GPU shaders. Similarly, DXIL is Microsoft’s internal representation, which D3D12 drivers will consume and translate into hardware-specific shaders.
You can learn more about this project from the link below.