VKD3D 1.7 от Wine реализует больше функциональности Direct3D 12 на базе Vulkan

Не путать с VKD3D-Proton от Valve, который используется в Steam Play, но сама кодовая база VKD3D от Wine вышла 24.03.2023 с новой версией реализации Direct3D 12 на базе Vulkan.

Анри Вербет из CodeWeavers сегодня выпустил VKD3D 1.7 как новейшую версию этой реализации Direct3D 12, на которую опирается код Wine. Как и в большинстве других релизов VKD3D, в ней реализовано больше функциональности D3D12/HLSL с большим количеством интринсиков, а также улучшена поддержка профилей Shader Model 1/2/3, улучшены вычислительные шейдеры и многое другое.

Новые возможности для типа источника HLSL

  • Поддержка вызова определяемых пользователем функций;
  • Поддержка параметров массива для пользовательских функций;
  • Значительно улучшенная поддержка профилей Direct3D shader model 1/2/3;
  • Поддержка семантики системных значений шейдеров SV_DispatchThreadID, SV_GroupID и SV_GroupThreadID;
  • Поддержка необязательного параметра «offset» метода Load() объекта текстуры;
  • Поддержка внутренней функции all();
  • Поддержка внутренней функции distance();
  • Поддержка внутренних функций exp() и exp2();
  • Поддержка внутренней функции frac();
  • Поддержка внутренней функции lit();
  • Поддержка внутренней функции reflect();
  • Поддержка внутренних функций sin() и cos();
  • Поддержка внутренней функции smoothstep();
  • Поддержка внутренних функций sqrt() и rsqrt();
  • Поддержка внутренней функции step();
  • Поддержка внутренней функции transpose();
  • Поддержка нечувствительных к регистру вариантов типов данных «float» и «dword»;
  • Частичная поддержка типов данных минимальной точности, таких как «min16float». В настоящее время они интерпретируются как их обычные аналоги;
  • Улучшена поддержка распространения констант, в частности, распространение констант через свичи;
  • Статические переменные HLSL теперь правильно инициализируются нулем;
  • Дизассемблер шейдеров Direct3D моделей 4 и 5 выводит количество выборок для объявлений ресурсов с несколькими выборками;

Новые интерфейсы

  • vkd3d_shader_parse_dxbc() обеспечивает поддержку разбора DXBC блобов;
  • vkd3d_shader_serialize_dxbc() обеспечивает поддержку сериализации DXBC блобов;
  • vkd3d_shader_free_dxbc() используется для освобождения структур vkd3d_shader_dxbc_desc, возвращаемых vkd3d_shader_parse_dxbc();
  • Опция компиляции VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE может использоваться для указания того, должны ли шейдеры SPIR-V, ориентированные на среду Vulkan, записывать размеры точек для шейдеров геометрии и тесселяции. Если опция не указана, то размеры точек будут записаны.

VKD3D 1.7 будет включен в следующий релиз Wine, выходящий раз в две недели, а те, кому нужна эта библиотека D3D12-on-Vulkan сразу, могут получить новый релиз VKD3D через WineHQ Git.

Источник: https://www.phoronix.com

Один мальчик подписался на телеграм-канал Игры в Linux и получил бесплатную игру в Steam! Новости из мира игр в Linux, свежие обзоры игр и полезные инструкции всегда под рукой!

Константин Дьяченко

Автор и основатель сайта Игры в Linux с 2010 года. Пользователь Linux с 2002. Старый злобный сисадмин с 1997.

Если Вам интересна тематика сайта и вы хотите каким-то образом поучаствовать в жизни сайта и его сообществ - напишите мне! Все контакты в разделе о сайте.

Игры в Linux
Добавить комментарий

Поля email и сайт не являются обязательными. Оставляя комментарий вы соглашаетесь с политикой конфиденциальности сайта.