Wine proiektuak vkd3d 1.7 paketearen kaleratzea argitaratu du Direct3D 12ren inplementazioarekin, Vulkan graphics APIrako deien bidez difusioz funtzionatzen duena. Paketeak libvkd3d liburutegiak barne hartzen ditu Direct3D 12 inplementazioekin, libvkd3d-shader 4 eta 5 shader ereduen itzultzaile batekin eta libvkd3d-utils Direct3D 12 aplikazioen porturatzea errazteko funtzioekin, baita demo adibide multzo bat ere, portu bat barne. glxgears-en Direct3D 12-ra. Proiektuaren kodea LGPLv2.1 lizentziapean banatzen da.
libvkd3d liburutegiak Direct3D 12 funtzio gehienak onartzen ditu, besteak beste, grafikoak eta konputazio-instalazioak, ilarak eta komando-zerrendak, heldulekuak eta pila-heldulekuak, root sinadurak, ordenaz kanpoko sarbidea, Samplers, komando sinadurak, erro-konstanteak, zeharkako errendaketa, Garbitu metodoak *( ) eta Kopiatu*(). libvkd3d-shader-en, 4 eta 5 itzal ereduen bytecodearen itzulpena tarteko SPIR-V irudikapen batean inplementatzen da. Erpinak, pixelak, teselazioa, konputazioa eta geometria itzaltzaile sinpleak, erroko sinaduraren serializazioa eta deserializazioa onartzen ditu. Shader argibideak aritmetikoak, atomikoak eta bit-eragiketak, konparaketa eta datu-fluxua kontrolatzeko operadoreak, lagin, biltzeko eta kargatzeko argibideak, ordenatu gabeko sarbide-eragiketak (UAV, Unordered Access View).
Bertsio berrian:
- Lanak jarraitu zuen HLSLn (High-Level Shader Language) itzal-konpilatzailea hobetzeko:
- Funtzio pertsonalizatuak deitzeko eta arrayak parametro gisa erabiltzeko gaitasuna gehitu da funtzio pertsonalizatuetan.
- SV_DispatchThreadID, SV_GroupID eta SV_GroupThreadID parametroetarako laguntza gehitu da.
- Funtzio integratuak all(), distantzia(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt. () , urratsa (), transposizioa ().
- Doitasun baxuko koma mugikorreko motetarako hasierako laguntza gehitu da, hala nola "min16float".
- Nabarmen hobetu da Direct3D 1/2/3 itzal ereduaren profiletarako laguntza.
- API publikoa gehitu da DXBC datu bitarren analizatzeko (vkd3d_shader_parse_dxbc) eta serializatzeko (vkd3d_shader_serialize_dxbc).
Iturria: opennet.ru