Первый выпуск Vkd3d 1.0 - транслятора DirectX 12 в Vulkan

good-penguin.png

Проект Wine представил первый стабильный выпуск библиотеки Vkd3d 1.0 — транслятора из API DirectX 12 в Vulkan. Проект нацелен на запуск существующих D3D 12 тайтлов с минимальными потерями в производительности, а также на облегчение в их портировании. В качестве примеров работы библиотеки предлагаются «Hello Triangle» и порт glxgears на Direct3D 12. Vkd3d поддерживает множество функций Direct3D 12:

  • Средства для вывода графики и выполнения вычислений;
  • Списки команд, распределители команд и очереди команд;
  • Дескрипторы и дескрипторы кучи;
  • Корневые подписи;
  • Константные буферы, шейдерные ресурсы, неупорядоченный доступ;
  • Сэмплеры, включая статичные;
  • Копирование дескрипторов;
  • Собственные ресурсы;
  • Корневые константы;
  • Барьеры ресурсов;
  • Запросы, в том числе запросы кучи;
  • Различные методы Clear*() и Copy*();
  • Базовую поддержку непрямого вывода и подписей команд.


Помимо этого предоставляется транслятор байткода 4 и 5 моделей шейдеров в промежуточное представление SPIR-V — libvkd3d-shader. Пока в качестве встроенной библиотеки, но в будущем планируется создать публичный API, а также обеспечить поддержку Shader Model 5.1. В будущих выпусках Vkd3d разработчики планируют реализовать поддержку вычислений сложных геометрических и тесселяционных шейдеров, а также улучшить базовые методы DirectX 12.

>>> Подробности

©  Linux.org.ru