Firma Collabora ogłosiła przyjęcie do głównego składu Mesa sterownika Gallium D3D12, który implementuje warstwę umożliwiającą działanie OpenGL na API DirectX 12 (D3D12). Jednocześnie ogłoszono, że sterownik pomyślnie przeszedł testy zgodności z OpenGL 3.3 działając na sterownikach D3D12 WARP (programowy rasteryzator) oraz NVIDIA.
Sterownik może być przydatny do korzystania z Mesa na urządzeniach z sterownikami obsługującymi jedynie D3D12, a także jako punkt wyjścia do portowania aplikacji OpenGL do pracy na API D3D12. W tym również sterownik można będzie używać do organizacji pracy aplikacji graficznych w środowiskach zarządzanych przez subsystem WSL (Windows Subsystem for Linux), który umożliwia uruchamianie plików wykonywalnych Linuksa w systemie Windows.
Rozwój odbywa się we współpracy z inżynierami Microsoftu, którzy opracowują otwarte narzędzia D3D11On12 do przekształcania gier z D3D11 na D3D12 oraz bibliotekę D3D12TranslationLayer, implementującą standardowe prymitywy graficzne na bazie D3D12. Na podstawie omawianego projektu firma Microsoft już przygotowała warstwę, która umożliwia uruchamianie aplikacji opartych na OpenGL na urządzeniach z systemem Windows, które nie zapewniają pełnej obsługi OpenGL. Udało się, w szczególności, zrealizować działanie programu Photoshop na urządzeniach z Windows i procesorami ARM.
Implementacja obejmuje sterownik dla Mesa oraz kompilator shaderów NIR-to-DXIL (runtime D3D12), przekształcający używane w Mesa pośrednie reprezentacje shaderów NIR do binarnego formatu DXIL (DirectX Intermediate Language), obsługiwanego w DirectX 12 i opartego na kodzie LLVM 3.7 (kompilator shaderów DirectX od Microsoftu jest gałęzią LLVM 3.7). Sterownik dla Mesa wykorzystuje interfejs Gallium, przyjmuje polecenia OpenGL i przy pomocy translatora NIR-to-DXIL formuje polecenia D3D12, które są wykonywane na GPU za pośrednictwem systemowego sterownika D3D12. Osobno rozwijane są komponenty, które zapewniają wsparcie dla OpenCL na D3D12, w tym kompilator OpenCL oraz runtime OpenCL.
Źródło: opennet.ru
