El projecte Wine ha publicat el llançament del paquet vkd3d 1.4 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ó:
- S'han fet nombroses millores al compilador shader HLSL (High-Level Shader Language) proporcionat des de DirectX 9.0.
- S'ha proposat una nova implementació del Descriptor Heap, utilitzant l'extensió Vulkan VK_EXT_descriptor_indexing.
- S'ha afegit una nova implementació de tanca basada en l'extensió Vulkan K_KHR_timeline_semaphore.
Font: opennet.ru