Проект Wine
Бібліотека libvkd3d
У libvkd3d-shader реалізована трансляція байткоду 4 та 5 моделей шейдерів у проміжне уявлення SPIR-V. Підтримуються вершинні, піксельні, тесселяційні, обчислювальні та прості геометричні шейдери, серіалізація та десеріалізація кореневого підпису. З шейдерних інструкцій реалізовані арифметичні, атомарні та бітові операції, оператори порівняння та управління потоком передачі даних, інструкції sample, gather та load, операції неупорядкованого доступу (UAV, Unordered Access View).
Серед найбільш значних
- Готовність бібліотеки libvkd3d-shader для використання у сторонніх проектах.
- Підтримка тесселяційних шейдерів.
- Підтримка перетворення, серіалізації та десеріалізації кореневих сигнатур (vkd3d_serialize_versioned_root_signature() та vkd3d_create_versioned_root_signature_deserializer()).
- Підтримка потокового виводу.
- Реалізація багатьох раніше недоступних можливостей Direct3D 12, включаючи підтримку мультисемплінгу, резервування ресурсів,
непрямого індексованого відмальовування, рендерингу глибини без піксельних шейдерів, одночасного доступу до ресурсів різних черг команд, нульових уявлень (Null-views). - Додані змінні оточення: VKD3D_CONFIG для встановлення опцій для зміни поведінки libvkd3d та VKD3D_VULKAN_DEVICE для перевизначення пристрою для API Vulkan.
- Додано підтримку шейдерних інструкцій bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
Джерело: opennet.ru