Проект Wine випустив Vkd3d 1.3 з реалізацією Direct3D 12

Після півтора року розробки проект Wine опублікував випуск пакету vkd3d 1.3 з реалізацією Direct3D 12, що працює через трансляцію викликів до графічного API Vulkan. До складу пакету входять бібліотеки libvkd3d з реалізацій Direct3D 12, libvkd3d-shader з транслятором 4 і 5 моделі шейдерів і libvkd3d-utils з функціями для спрощення портування додатків Direct3D 12, а також набір демонстраційних прикладів 3D12D2.1Ds. під ліцензією LGPLvXNUMX.

Бібліотека libvkd3d підтримує більшу частину можливостей Direct3D 12, включаючи засоби для графіки та обчислень, черги та списки команд, дескриптори та дескриптори купи, кореневі підписи, неупорядкований доступ, Sampler-и, сигнатури команд, кореневі константи, непряму ( *() та Copy*().

У libvkd3d-shader реалізована трансляція байткоду 4 та 5 моделей шейдерів у проміжне уявлення SPIR-V. Підтримуються вершинні, піксельні, тесселяційні, обчислювальні та прості геометричні шейдери, серіалізація та десеріалізація кореневого підпису. З шейдерних інструкцій реалізовані арифметичні, атомарні та бітові операції, оператори порівняння та управління потоком передачі даних, інструкції sample, gather та load, операції неупорядкованого доступу (UAV, Unordered Access View).

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

Джерело: opennet.ru

Додати коментар або відгук