Vīna projekts izlaida Vkd3d 1.3 ar Direct3D 12 ieviešanu

После полутора лет разработки проект Wine опубликовал выпуск пакета vkd3d 1.3 с реализацией 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*().

Programmā libvkd3d-shader ir realizēta 4. un 5. ēnotāju modeļu baitkoda tulkošana starpposma SPIR-V attēlojumā. Tiek atbalstīti virsotņu, pikseļu, teselācijas, aprēķinu un vienkāršu ģeometrijas ēnotāji, saknes parakstu serializācija un deserializācija. Shader instrukcijas ietver aritmētiskās, atomu un bitu darbības, salīdzināšanas un datu plūsmas vadības operatorus, izlases, apkopošanas un ielādes instrukcijas, nekārtotas piekļuves darbības (UAV, Unordered Access View).

Среди наиболее значительных новшеств в Vkd3d 1.3 выделяются:

  • Добавлена начальная поддержка компиляции и препроцессинга шейдеров на языке HLSL (High-Level Shader Language), предоставляемом начиная с DirectX 9.0.
  • Добавлена поддержка массивов дескрипторов, определённых в модели шейдеров 5.1.
  • Обеспечена поддержка операций с числами с плавающей запятой двойной точности в шейдерах, непрямой адресации для тесселяционных шейдеров, экспорта трафаретов из шейдеров, модификатора шейдеров «precise» и глобальных барьеров для ресурсов в памяти.
  • Реализована возможность дизассемблирования шейдеров Direct3D из байткода в ассемблерное представление.
  • Добавлена поддержка разбора старого формата байткода Direct3D, применяемого в моделях шейдеров Direct3D 1, 2 и 3.
  • В libvkd3d добавлены такие возможности Direct3D 12, как корневые сигнатуры, счётчики просмотра с неупорядоченным доступом, логические операторы слияния для вывода, режим адресации текстур mirror_once. Добавлена структура vkd3d_host_time_domain_info.

Avots: opennet.ru

Pievieno komentāru