Dự án Wine đã phát hành Vkd3d 1.3 với triển khai Direct3D 12

После полутора лет разработки проект 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*().

Trong libvkd3d-shader, việc dịch mã byte của mô hình đổ bóng 4 và 5 sang dạng biểu diễn SPIR-V trung gian được triển khai. Hỗ trợ các trình đổ bóng Vertex, pixel, tessellation, tính toán và hình học đơn giản, tuần tự hóa và giải tuần tự hóa chữ ký gốc. Các lệnh đổ bóng bao gồm các phép toán số học, nguyên tử và bit, các toán tử so sánh và kiểm soát luồng dữ liệu, các lệnh lấy mẫu, thu thập và tải, các thao tác truy cập không có thứ tự (UAV, Chế độ xem truy cập không có thứ tự).

Среди наиболее значительных новшеств в 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.

Nguồn: opennet.ru

Thêm một lời nhận xét