Разработчики Collabora выпущена недавно через рекламу внедрение открытого контроллера Gallium D3D12, который реализует слой для организации работы OpenGL с API DirectX 12 (D3D12) в основной композиции Mesa.
Al mismo tiempo, объявленный драйвер успешно прошел тестирование на совместимость с OpenGL 3.3 при работе с WARP (программами растеризации) и драйверами NVIDIA D3D12.
Мы рады сообщить, что недавно прошли тестирование на соответствие OpenGL 3.3 и обновили код в Mesa 3D!
Контроллер может быть полезно использовать Mesa на устройствах с контроллерами только D3D12 и в качестве отправной точки для переноса приложений OpenGL для работы на D3D12 API. В частности, драйвер может использоваться для организации работы графических приложений в средах, контролируемых подсистемой WSL (Windows Subsystem for Linux), которая обеспечивает запуск исполняемых файлов Linux в Windows.
Одним из основных приложений, которое выделяется, является поддержка Photoshop, что, как упоминалось в рекламе, не может быть большим сюрпризом, но одной из мотиваций для этой работы была возможность запускать такие приложения, как Photoshop, на устройствах Windows без совместимости. .. Всего с OpenGL.
Я рад сообщить, что Microsoft выпустила свой пакет совместимости, который использует нашу работу для обеспечения поддержки OpenGL (и OpenCL), Photoshop теперь может работать в Windows на процессорах ARM! Так здорово видеть, как наша работа приносит пользу таким популярным приложениям!
Разработка ведется совместно с инженерами Microsoft по разработке таких инструментов, как D3D11On12 для переноса игр в библиотеку D3D11 и D3D12, D3D12TranslationLayer, он реализует стандартные графические примитивы поверх D3D12.
На основе рассматриваемого проекта, Microsoft уже подготовила промежуточный слой что делает возможным запускать приложения на базе OpenGL на устройствах Windows которые не обеспечивают полной поддержки OpenGL. В частности, можно было гарантировать работу Photoshop на устройствах Windows с процессорами ARM.
Хочу отметить, что после утверждения OpenGL CTS это не обязательно то же самое, что формальное соответствие. Есть некоторые подробности о том, как формально соответствовать сложным многоуровневым реализациям, и я оставлю вопрос о формальном соответствии Microsoft и Khronos.
Реализация включает драйвер для Mesa и компилятор шейдера NIR-to-DXIL (среда выполнения D3D12), который преобразует промежуточный шейдер NIR Mesa в совместимый с DirectX 12 двоичный формат промежуточного языка DirectX (DXIL) на основе битового кода LLVM 3.7 (Microsoft DirectX). Компилятор шейдеров является форком LLVM 3.7).
Проблемы выполнения D3D12 также следует исправить перед отправкой результатов. Мы работаем с Microsoft, чтобы исправить эти проблемы по мере необходимости. Эти исправления могут занять некоторое время, прежде чем они появятся в сборке Windows и будут доступны конечным пользователям, но в конечном итоге они появятся.
Но для контроллера производителя D3D12 и младших версий все усложняется ...
Во-первых, нам не всегда удается отличить проблемы с драйверами поставщика от проблем с оборудованием. И что еще хуже, поскольку они разрабатываются сторонними компаниями, у нас мало информации об этом.
Контроллер Mesa использует интерфейс Gallium, принимает команды OpenGL и, используя транслятор NIR в DXIL, генерирует команды D3D12, которые выполняются на графическом процессоре с использованием системного драйвера D3D12. Отдельно разрабатываются компоненты, обеспечивающие работу OpenCL поверх D3D12, включая компилятор OpenCL и среду выполнения OpenCL.
В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.