Проект Wine выпустил Vkd3d 1.0 с реализацией Direct3D 12

23 мая 2018 года

Проект Wine представил первый релиз пакета vkd3d, предоставляющего реализацию Direct3D 12, работающую через трансляцию вызовов в API Vulkan. В состав пакета входят библиотеки libvkd3d с реализаций Direct3D 12, libvkd3d-shader c транслятором 4 и 5 модели шейдеров и libvkd3d-utils с функциями для упрощения портирования приложений Direct3D 12, а также набор демонстрационных примеров, включая порт glxgears на Direct3D 12. Код проекта распространяется под лицензией LGPLv2.1.

Библиотека libvkd3d поддерживает существенную часть возможностей Direct3D 12, включая средства для графики и вычислений, очереди и списки команд, дескрипторы и дескрипторы кучи, корневые подписи, неупорядоченный доступ, Sampler-ы, сигнатуры команд, корневые константы, непрямая (indirect) отрисовка, методы Clear*() и Copy*().

В libvkd3d-shader реализована трансляция байткода 4 и 5 моделей шейдеров в промежуточное представление SPIR-V. Поддерживаются вершинные, пиксельные, вычислительные и простые геометрические шейдеры, сериализация и десериализация корневой подписи. Из шейдерных инструкций реализованы арифметические, атомарные и битовые операции, операторы сравнения и управления потоком передачи данных, инструкции sample, gather и load, операции неупорядоченного доступа (UAV, Unordered Access View).

На текущем этапе развития не все вызовы Direct3D 12 реализованы, а тестирование в основном осуществлялось на наборе демонстрационных приложений. В выпуск не вошли такие находящиеся в разработке возможности как поддержка тесселяционных и сложных геометрических шейдеров, а также ряд улучшений, связанных с шейдерами и базовыми методами Direct3D 12. Данные возможности будут предложены в одной из следующих версий.

Дополнительно можно отметить выпуск проекта DXVK 0.52, нацеленного на создание реализации DXGI и Direct3D 11 поверх API Vulkan для предоставления возможности запуска 3D-приложений в Linux при помощи Wine. После доведения проекта до полнофункционального состояния, DXVK сможет использоваться в качестве основанной на Vulkan альтернативы для предоставляемой в Wine реализации D3D11, работающей поверх OpenGL. В новой версии представлена начальная поддержка DXGI 1.2 и оптимизирован рендеринг отложенных контекстов (Deferred Contexts). Указанные изменения позволили избавиться от крахов при запуске игр Bioshock 2 Remastered и Frostpunk, а также значительно повысить производительность игры Diablo 3.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Проект Wine выпустил Vkd3d 1.0 с реализацией Direct3D 12», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.