La projekto Wine publikigis la liberigon de la pako vkd3d 1.4 kun efektivigo de Direct3D 12, kiu funkcias per elsendaj vokoj al la grafika API de Vulkan. La pakaĵo inkluzivas libvkd3d-bibliotekojn kun efektivigoj de Direct3D 12, libvkd3d-shader kun tradukisto de shader-modeloj 4 kaj 5 kaj libvkd3d-utils kun funkcioj por simpligi la portadon de Direct3D 12-aplikoj, same kiel aron da demo-ekzemploj, inkluzive de haveno. de glxgears al Direct3D 12. La projektkodo estas distribuita licencite laŭ LGPLv2.1.
La libvkd3d-biblioteko subtenas plej multajn funkciojn de Direct3D 12, inkluzive de grafikaĵoj kaj komputikaj instalaĵoj, atendovicoj kaj komandlistoj, teniloj kaj amaso-teniloj, radiksignaturoj, neorda aliro, Samplers, komandsignaturoj, radikaj konstantoj, nerekta bildigo, Klaraj metodoj *( ) kaj Kopiu*().
En libvkd3d-shader, la traduko de bajtkodo de ombraj modeloj 4 kaj 5 en mezan SPIR-V-reprezentantaron estas efektivigita. Elportas verticajn, pikselojn, teselacion, komputadon kaj simplajn geometriajn nuancilojn, radiksignaturan seriigon kaj deseriigon. Shader-instrukcioj inkluzivas aritmetikajn, atomajn kaj bitajn operaciojn, komparajn kaj datumfluajn kontrolfunkciigistojn, specimenon, kunvenigi kaj ŝarĝi instrukciojn, neordigitajn aliroperaciojn (UAV, Neordered Access View).
En la nova versio:
- Multaj plibonigoj estis faritaj al la HLSL (High-Level Shader Language) ombra kompililo disponigita ekde DirectX 9.0.
- Nova efektivigo de la Descriptor Heap estis proponita, uzante la Vulkan-etendaĵon VK_EXT_descriptor_indexing.
- Aldonita nova barilo efektivigo bazita sur la Vulkan etendo K_KHR_timeline_semaphore.
fonto: opennet.ru