Дата публикации:Sat, 23 Aug 2025 08:57:57 +0300
Проект Wine опубликовал выпуск пакета vkd3d 1.17 с реализацией 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 реализована трансляция байт-кода моделей шейдеров в промежуточное представление SPIR-V. Поддерживаются вершинные, пиксельные, тесселяционные, вычислительные и простые геометрические шейдеры, сериализация и десериализация корневой сигнатуры. Из шейдерных инструкций реализованы арифметические, атомарные и битовые операции, операторы сравнения и управления потоком передачи данных, инструкции sample, gather и load, операции неупорядоченного доступа (UAV, Unordered Access View).
В новой версии:
- В реализацию языка шейдеров HLSL добавлена начальная поддержка разделяемой памяти групп потоков, расширена поддержка геометрических шейдеров, добавлен парсер для ресурсов StructuredBuffer. Продолжено развитие реализации языка шейдеров MSL (Metal Shading Language), применяемого компанией Apple в графическом API Metal. Например, в MSL добавлена поддержка циклов, косвенной адресации постоянных буферов, сэмплинга текстур и различных операций целочисленной арифметики и сравнения. В библиотеке libvkd3d в реализацию программного интерфейса ID3D12Device5 добавлен метод EnumerateMetaCommands(). Добавлен новый тип шейдеров "tx" (VKD3D_SHADER_SOURCE_TX), используемый для загрузки шейдеров обработки текстур.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63757