Уже вышла новая версия vkd3d 1.3

После полутора лет разработки, иВинный проект объявил о запуске новая версия пакета «вкд3д 1.3″ с реализацией Direct3D 12, работающей за счет преобразования вызовов графического API Vulkan.

Эта версия содержит различные улучшения, из которых в этой новой версии основными являются начальная поддержка сборки HLSл, а также Поддержка массива дескрипторов Shader Model 5.1, поддержка размонтирования шейдеров Direct3D и многое другое.

Для тех, кто не знает о пакете, они должны знать, что включает библиотеки libvkd3d с реализациями Direct3D 12, libvkd3d-shader с транслятором шейдеров модели 4 и 5 и libvkd3d-utils с функциями для упрощения миграции приложений Direct3D 12, а также набором демонстраций, включая перенос glxgears на Direct3D 12. Код проекта распространяется по лицензии LGPLv2.1.

Библиотека libvkd3d поддерживает большинство функций Direct3D 12, включая графические и вычислительные функции, списки команд и очереди, дескрипторы и дескрипторы кучи, корневые подписи, неупорядоченный доступ, сэмплеры, командные подписи, корневые константы, прокси-представление и т. д.

Libvkd3d-шейдер реализует трансляцию байт-кода 4 и 5 моделей затенения в промежуточном представлении SPIR-V. Поддерживаются вершины, пиксели, тесселяция, вычислительные и простые геометрические шейдеры, сериализация корневой подписи и десериализация.

Инструкции шейдера включают арифметические, атомарные и побитовые операции, операторы управления потоком данных и сравнения, команды выборки, сбора и загрузки, операции неупорядоченного доступа (UAV, Unordered access view).

На текущем этапе разработки реализованы не все обращения к Direct3D 12. и тесты проводились в основном на наборе демонстрационных приложений.

Основные новые возможности Vkd3d 1.3

В представленной новой версии vkd3d 1.3 подчеркивается, что добавлена ​​начальная поддержка компиляции и предварительного рендеринга шейдеров в HLSL (язык шейдеров высокого уровня), который предоставляется начиная с DirectX 9.0.

Еще одно изменение, которое выделяется в этой новой версии, - это поддержка операций двойной точности с плавающей запятой в шейдерах, а также косвенность для шейдеров тесселяции, экспорт шаблонов из шейдеров, «точный» модификатор шейдера и глобальные барьеры для ресурсов в памяти.

Мы также можем обнаружить, что возможность дизассемблировать шейдеры Direct3D из кода байтов в представление на ассемблере, а также добавлена ​​поддержка анализа старого формата байт-кода Direct3D, используемого в моделях шейдеров Direct3D 1, 2 и 3.

libvkd3d добавил функции Direct3D 12, такие как корневые подписи, неупорядоченные счетчики поиска, выходные логические значения слияния, режим адресации текстуры mirror_once и добавленная структура vkd3d_host_time_domain_info.

Из других изменений которые выделяются из этой новой версии:

  • vkd3d_shader_preprocess_info расширяет структуру vkd3d_shader_compile_info и может использоваться для указания параметров предварительной обработки, таких как определения макросов препроцессора.
  • vkd3d_shader_hlsl_source_info расширяет структуру vkd3d_shader_compile_info и может использоваться для указания HLSL и параметров сборки, таких как целевой профиль и точка входа.
  • Связать модели Direct3D 12 и Vulkan
  • VKD3D_SHADER_COMPILE_OPTION_API_VERSION можно использовать для указания версии API libvkd3d-shader, на которую нацелено приложение. Если не указано, будет использоваться VKD3D_SHADER_API_VERSION_1_2.
  • vkd3d-compiler по умолчанию будет использовать цветной вывод, если сможет определить, что
    на выходе цветной телетайп.
  • Добавлена ​​поддержка массивов дескрипторов, определенных в Shader Model 5.1.

В конце концов если вы хотите узнать об этом больше об этой новой версии вы можете ознакомиться с полным списком изменений По следующей ссылке.

Как установить vkd3d на Linux?

Тем, кто заинтересован в возможности установить vkd3d в своей системе, следует получить исходный код и продолжить компиляцию, хотя для практических целей или для новичков они могут попробовать эту библиотеку без особых усилий. Для этого им нужно только установить lutris и его конфигурации.

Что касается тех, кто заинтересован в компиляции, они должны получить код с:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Наконец, необходимо включить слои Vulkan:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.