Логотип

Библиотека Direct3D-to-Vulkan vkd3d 1.18 содержит улучшения для HLSL

Библиотека Direct3D-to-Vulkan vkd3d 1.18 содержит улучшения для HLSL

Команда, создавшая vkd3d, объявила о выпуске версии 1.18. Это библиотека с открытым исходным кодом, разработанная и поддерживаемая проектом Wine. Она преобразует графические вызовы Microsoft Direct3D в Vulkan, что позволяет запускать приложения и игры для Windows, использующие Direct3D 12, в системах, где доступен только Vulkan.

Одним из ключевых моментов является добавление функции CreateCommandList1() из интерфейса ID3D12Device4, что расширяет возможности использования новых функций D3D12 в современных играх для Windows.

Но больше всего изменений претерпел компилятор шейдеров. В vkd3d 1.18 улучшена обработка HLSL (High-Level Shading Language, язык шейдеров высокого уровня) за счёт большего количества операций по свёртыванию констант, упрощения математических выражений и сглаживания ветвей if/else, когда этого требуют более старые модели шейдеров. Кроме того, расширена поддержка более старого кода Shader Model 1–3, добавлены загрузки StructuredBuffer и реализованы несколько широко используемых встроенных функций HLSL.

Старый байт-код Direct3D также не остался без внимания: появились новые реализации таких инструкций, как tex, texcoord, texbem и bem, которые помогают более надёжно транслировать шейдер-код в старых играх.

Что касается экспериментальных бэкендов, то путь Metal Shading Language теперь поддерживает вычислительные шейдеры, дополнительные математические функции, операции целочисленного деления и нахождения остатка от деления с плавающей запятой, а также корректную трансляцию операций целочисленного минимума/максимума со знаком. Кроме того, теперь можно напрямую конвертировать HLSL в MSL.

Читать  Вышел Node.js 25 с V8 14.1 и новыми разрешениями

Кроме того, бэкенд GLSL получил поддержку производных в экранном пространстве, функций sin/cos, деления без знака, смещения текселей и функций ввода-вывода шейдеров, используемых во многих движках.

Обновление также официально закрепляет тот факт, что выходные данные текстовых шейдеров содержат завершающий нулевой байт, что упрощает их передачу в API, ожидающие строки с завершающим нулём. Наконец, новые интерфейсы предоставляют дополнительные метаданные для старых шейдеров D3DBC, раскрывают размеры групп вычислительных потоков (что важно для Metal) и вводят новые параметры для отображения рельефа.

Дополнительную информацию можно найти в объявлении: https://www.winehq.org/news/2025112001. Исходный код vkd3d 1.18 можно скачать с страницы проекта на GitLab.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)

Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.

Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала