El projecte Wine ha publicat el llançament del paquet vkd3d 1.5 amb una implementació de Direct3D 12 que funciona mitjançant trucades de difusió a l'API de gràfics Vulkan. El paquet inclou biblioteques libvkd3d amb implementacions de Direct3D 12, libvkd3d-shader amb un traductor dels models shader 4 i 5 i libvkd3d-utils amb funcions per simplificar la portabilitat d'aplicacions Direct3D 12, així com un conjunt d'exemples de demostració, inclòs un port de glxgears a Direct3D 12. El codi del projecte es distribueix amb llicència LGPLv2.1.
La biblioteca libvkd3d admet la majoria de les funcions de Direct3D 12, incloses les instal·lacions de gràfics i informàtics, cues i llistes d'ordres, identificadors i maneigs de pila, signatures arrel, accés fora d'ordre, samplers, signatures d'ordres, constants arrel, renderització indirecta, mètodes Clear *( ) i Copia*().
libvkd3d-shader implementa la traducció del bytecode dels models shader 4 i 5 en una representació SPIR-V intermèdia. Admet ombrejadors de vèrtex, píxels, tessel·lació, càlcul i geometria simple, serialització i deserialització de signatura arrel. Les instruccions shader inclouen operacions aritmètiques, atòmiques i de bits, operadors de comparació i control de flux de dades, instruccions de mostreig, recopilació i càrrega, operacions d'accés no ordenat (UAV, vista d'accés no ordenat).
En la nova versió:
- Внесены многочисленные улучшения в компилятор шейдеров на языке HLSL (High-Level Shader Language), предоставляемом начиная с DirectX 9.0. В том числе в структурах и массивах улучшена поддержка объектных типов HLSL, таких как Texture2D, добавлена поддержка встроенных функций dot(), ldexp() и lerp(), для 4 и 5 моделей шейдеров добавлена поддержка логических операторов «and», «or» и «not», а также возможность приведения булевых типов.
- Реализована опция VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV для загрузки неупорядоченного представления доступа (UAV) для многокомпонентных форматов SPIR-V (DXGI_FORMAT).
Font: opennet.ru