Нова версія vkd3d 1.3 вже випущена

Через півтора року розробки іПроект Wine оголосив про запуск нова версія пакету «vkd3d 1.3″ з реалізацією Direct3D 12, яка працює за допомогою трансляції викликів до графічного API Vulkan.

Ця версія містить різноманітні вдосконалення, серед яких у цій новій версії є основні моменти початкова підтримка збірки HLSL, а також Підтримка масиву дескрипторів моделі шейдерів 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. Підтримуються вершини, пікселі, теселяція, обчислювальні та прості шейдери геометрії, серіалізація кореневих сигнатур та десеріалізація.

Інструкції шейдера включають арифметичні, атомні та побітові операції, оператори контролю та порівняння потоків даних, інструкції з вибірки, збору та завантаження, операції з невпорядкованим доступом (БПЛА, подання з невпорядкованим доступом).

На сучасному етапі розробки не всі виклики 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.