La projekto Wine publikigis la liberigon de la pako vkd3d 1.5 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. Inkluzive de plibonigita subteno por HLSL-objekttipoj kiel Texture2D en strukturoj kaj tabeloj, aldonita subteno por enkonstruitaj funkcioj dot(), ldexp() kaj lerp(), aldonita subteno por logikaj funkciigistoj "kaj", "aŭ" por ombraj modeloj 4 kaj 5 kaj "ne", same kiel la kapablo gisi Buleajn tipojn.
- Efektivigis la opcion VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV por ŝargi neordigitan alirprezentadon (UAV) por SPIR-V plurpartaj formatoj (DXGI_FORMAT).
fonto: opennet.ru