Компания Collabora сообщила о принятии в основной состав Mesa Gallium-драйвера D3D12, реализующего прослойку для организации работы OpenGL поверх API DirectX 12 (D3D12). Одновременно объявлено об успешном прохождении драйвером тестов на совместимость с OpenGL 3.3 при работе поверх D3D12-драйверов WARP (программный растеризатор) и NVIDIA.
Драйвер может быть полезен для использования Mesa на устройствах с драйверами, поддерживающими только D3D12, а также в качестве стартовой позиции для портирования OpenGL-приложений для работы поверх API D3D12. В том числе драйвер можно будет использовать для организации работы графических приложений в окружениях под управлением подсистемы WSL (Windows Subsystem for Linux), обеспечивающей запуск исполняемых файлов Linux в Windows.
Разработка ведётся совместно с инженерами Microsoft, развивающими открытый инструментарий D3D11On12 для перевода игр с D3D11 на D3D12 и библиотеку D3D12TranslationLayer, реализующую типовые графические примитивы поверх D3D12. На базе рассматриваемого проекта компания Microsoft уже подготовила прослойку, дающую возможность запускать завязанные на OpenGL приложения на устройствах с Windows, не предоставляющих полную поддержку OpenGL. В частности, удалось обеспечить работу Photoshop на Windows-устройствах с процессорами ARM.
Реализация включает Gallium-драйвер, компилятор OpenCL, OpenCL runtime и компилятор шейдеров NIR-to-DXIL, преобразующий применяемое в Mesa промежуточное представление шейдеров NIR в бинарный формат DXIL (DirectX Intermediate Language), поддерживаемый в DirectX 12 и основанный на биткоде LLVM 3.7 (DirectX Shader Compiler от Microsoft является ответвлением от LLVM 3.7).