CodeWeavers помогает запускать игры DirectX 12 для Windows на Linux

CodeWeavers, разработчики CrossOver, работают над улучшениями DirectX 12 на уровнях совместимости CodeWeavers и Wine.

КодВиверс Кроссовер — один из самых популярных способов запуска приложений Windows в других операционных системах. Он сочетает в себе отличную работу с открытым исходным кодом Винный проект (код которого разработчики CrossOver вносят) с более простым в использовании интерфейсом и интерфейсом. CodeWeavers выпустила CrossOver 21 еще в августе, и теперь компания поделилась подробностями о своей работе по обеспечению поддержки современных игр для Linux и Mac.

Многие последние игры для Windows (и другие приложения с тяжелой графикой) используют DirectX 12, последнюю версию Графическая библиотека Microsoft DirectX, который использует API-интерфейсы более низкого уровня для достижения более высокой производительности. DirectX доступен только в Windows (и консолях Xbox), поэтому уровень совместимости Wine использует VKD3D. графическая библиотека для выполнения вызовов Direct3D поверх Vulkan (доступна в Linux, Windows и других системах). платформы). Библиотека Vkd3d есть.

в первую очередь разработан Valve Software для своего Слой совместимости протонов, а быстрый прогресс VKD3D является основной причиной того, почему так много игр для Windows теперь можно играть в Linux.

Несмотря на то, что CrossOver уже включает VKD3D, CrossOver официально не поддерживает игры DirectX 12, а его разработчики выясняют несколько проблем с производительностью, согласно новому отчету. Сообщение блога:

CrossOver использует VKD3D для запуска игр DirectX 12. VKD3D — это библиотека 3D-графики, созданная на базе Вулкан. В настоящее время ведется большая работа по улучшению производительности VKD3D. С помощью Вулкана расширение индексации дескриптора, что обеспечивает функциональность, аналогичную куче дескрипторов DirectX 12, дескрипторы Vulkan записываются реже и используется гораздо меньше памяти графического процессора. В результате VKD3D может поддерживать игры, которые используют достаточно дескрипторов, чтобы требовать ресурсов от оборудования уровня 2 и уровня 3.

CrossOver планирует официально начать поддержку игр и приложений DirectX 12 для Linux в 2022 году с будущим выпуском CrossOver 22. Однако компания не уверена, когда VKD3D заработает на Mac. Apple вообще не поддерживает Vulkan на macOS (или iOS), вместо этого просит разработчиков использовать его Библиотека металлической графики. Это проблема для CrossOver, как говорится в сообщении блога:

В целом Metal выполняет тесселяцию по-другому, в нем отсутствуют геометрические шейдеры и обратная связь по преобразованию. В DirectX 12 и Metal существует проблема с ограничением ресурсов. Как правило, играм необходим доступ как минимум к одному миллиону представлений шейдерных ресурсов (SRV). Доступ к такому количеству SRV требует привязки ресурсов на уровне 2. Metal поддерживает только около 500 000 ресурсов на каждый буфер аргументов, поэтому привязка ресурсов уровня 2 невозможна. Ограничения металла в полмиллиона достаточно для индексации дескриптора Vulkan, но не для D3D12. Это ограничение означает, что CrossOver Mac не поддерживает привязку уровня 2, и поэтому многие игры DirectX 12 не будут запускаться.

Несмотря на эти проблемы, CodeWeavers надеется, что игры и приложения DirectX 12 смогут работать на Mac с будущим обновлением CrossOver 23. Новые основные версии CrossOver обычно выходят ежегодно, то есть, скорее всего, это произойдет в 2023 году.

Даже если вы не используете CrossOver, большинство улучшений совместимости, разработанных CodeWeavers, передаются обратно в проект Wine. Это означает, что работа компании может помочь улучшить игры для Windows на Lutris, Консоль Steam Deck, PlayOnLinux и другие проекты на базе Wine. При этом, как только появится полная поддержка DirectX 12, CrossOver может стать привлекательным выбором для игр для Windows в Linux за пределами Steam.