Implementacja OpenGL poprzez DirectX osiągnęła zgodność z OpenGL 3.3 i jest uwzględniona w Mesa

Firma Collabora ogłosiła przyjęcie sterownika D3D12 Gallium do głównej kompozycji Mesa, która implementuje warstwę organizującą pracę OpenGL na wierzchu API DirectX 12 (D3D12). Jednocześnie ogłoszono, że sterownik pomyślnie przeszedł testy na kompatybilność z OpenGL 3.3 podczas pracy na sterownikach WARP (rasterizer programowy) i NVIDIA D3D12.

Sterownik może być przydatny do używania Mesy na urządzeniach ze sterownikami obsługującymi tylko D3D12, a także jako punkt wyjścia do przenoszenia aplikacji OpenGL, aby działały na API D3D12. W szczególności sterownik może służyć do organizacji pracy aplikacji graficznych w środowiskach, w których działa podsystem WSL (Windows Subsystem for Linux), który zapewnia uruchomienie plików wykonywalnych systemu Linux w systemie Windows.

Rozwój jest prowadzony wspólnie z inżynierami Microsoft, którzy opracowują otwarty zestaw narzędzi D3D11On12 do tłumaczenia gier z D3D11 na D3D12 oraz bibliotekę D3D12TranslationLayer, która implementuje standardowe prymitywy graficzne na wierzchu D3D12. Na podstawie rozważanego projektu Microsoft przygotował już warstwę umożliwiającą uruchamianie aplikacji opartych na OpenGL na urządzeniach z systemem Windows, które nie zapewniają pełnej obsługi OpenGL. W szczególności udało się zapewnić działanie programu Photoshop na urządzeniach z systemem Windows i procesorami ARM.

Implementacja zawiera sterownik dla Mesa i kompilator modułu cieniującego NIR do DXIL (środowisko wykonawcze D3D12), który konwertuje pośrednią reprezentację shaderów NIR używanych w Mesa do binarnego formatu DXIL (DirectX Intermediate Language) obsługiwanego w DirectX 12 i opartego na LLVM Kod bitowy 3.7 (kompilator DirectX Shader firmy Microsoft jest rozwidleniem LLVM 3.7). Sterownik Mesa wykorzystuje interfejs Gallium, akceptuje polecenia OpenGL i wykorzystuje tłumacz NIR-na-DXIL do generowania poleceń D3D12, które są wykonywane na GPU poprzez sterownik systemowy D3D12. Oddzielnie opracowywane są komponenty, aby zapewnić działanie OpenCL na D3D12, w tym kompilator OpenCL i środowisko wykonawcze OpenCL.

Źródło: opennet.ru

Dodaj komentarz