Проектът Wine публикува Vkd3d 1.7 с реализция на Direct3D 12

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

Библиотеката libvkd3d поддържа повечето възможности на Direct3D 12, включително средства за графика и изчисления, опашки и списъци с команди, дескриптори и дескриптори за купчини, коренови сигнатури, неупорядочен достъп, семплери, командни сигнатури, коренови константи, непряка (indirect) рисуване, методи Clear*() и Copy*(). В libvkd3d-shader е реализирана транслацията на байт-кода на 4 и 5 модели на шейдъри в междинно представяне SPIR-V. Поддържат се вершинни, пикселни, тesselационни, изчислителни и лесни геометрични шейдъри, сериализация и десиериализация на кореновата сигнатура. От шейдерните инструкции са реализирани арефметични, атомарни и битови операции, оператори за сравнение и управление на потока на данни, инструкции sample, gather и load, операции за неупорядочен достъп (UAV, Unordered Access View).

В новата версия:

  • Продължена работа по подобряване на компайлера за шейдъри на HLSL (High-Level Shader Language):
    • Добавена е възможността за извикване на потребителски функции и използване на масиви като параметри на потребителски функции.
    • Добавена е поддръжка на параметрите SV_DispatchThreadID, SV_GroupID и SV_GroupThreadID.
    • Добавени са вградени функции all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • Добавена е начална поддръжка на типове с ниска точност с плаваща запетая, като «min16float».
  • Съществено подобрена е поддръжката на профилите на моделите на шейдери Direct3D 1/2/3.
  • Добавен е публичен API за парсване (vkd3d_shader_parse_dxbc) и сериализация (vkd3d_shader_serialize_dxbc) на бинарни данни DXBC.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster