Ngemva konyaka nengxenye yentuthuko, futhihe Wine project umemezele ukwethulwa kwe inguqulo entsha yephakheji «i-vkd3d 1.3″ ngokuqaliswa kwe-Direct3D 12 okusebenza ngokuhumusha izingcingo ku-API yezithombe ze-Vulkan.
Le nguqulo iqukethe ukuthuthukiswa okuhlukahlukene futhi okugqamile kule nguqulo entsha Ukusekelwa kokuqala kwe-HLS yokwakhaL, kanye ne- I-Shader Model 5.1 yokusekela uhlu oluchazayo, usekelo lokwehlisa ama-shader e-Direct3D, nokunye.
Kulabo abangalazi iphakethe, kufanele bakwazi lokho ihlanganisa imitapo yolwazi ye-libvkd3d enokuqaliswa kwe-Direct3D 12, libvkd3d-shader nge-model 4 ne-5 shader translator kanye ne-libvkd3d-utils enemisebenzi yokwenza lula ukufuduka kwezicelo ze-Direct3D 12, kanye neqoqo lamademo, kufaka phakathi i-glxgears port eya ku-Direct3D 12. Ikhodi yephrojekthi isatshalaliswa ilayisensi ngaphansi kwe-LGPLv2.1.
Umtapo Wezincwadi libvkd3d isekela iningi lezici ze-Direct3D 12, okuhlanganisa imisebenzi yegrafu neyokubala, izinhlu zemiyalo nolayini, izincazelo nezichazi zenqwaba, amasiginesha ezimpande, ukufinyelela okungahleliwe, amasampula, amasiginesha emiyalo, ama-root constants, ukumelwa kommeleli, njll.
I-Libvkd3d-shader isebenzisa ukuhunyushwa kwekhodi ye-byte 4 no-5 yamamodeli e-shading ekumeleleni okuphakathi kwe-SPIR-V. Ama-Vertices, amaphikseli, i-tessellation, ama-shader ejiyomethri ekhomputha futhi alula, ukwenziwa kwe-root signature serialization, kanye ne-deserialization kuyasekelwa.
Imiyalo ye-shader ifaka ukusebenza kwe-arithmetic, i-atomic kanye ne-bitwise, ukulawulwa kokugeleza kwedatha nokuqhathanisa opharetha, izibonelo zalokho, ukuqoqa nokulayisha imiyalo, imisebenzi yokufinyelela engaxhunywanga (i-UAV, ukubuka okungenamkhawulo kokufinyelela).
Kulesi sigaba samanje sentuthuko, akuzona zonke izingcingo eziya ku-Direct3D 12 ezisetshenziswayo futhi ukuhlolwa kwenziwa ikakhulukazi kusethi yezicelo zedemo.
Izici ezintsha eziyinhloko zeVkd3d 1.3
Kule nguqulo entsha ye-vkd3d 1.3 eyethulwa, kugqanyiswe ukuthi wengeze usekelo lokuqala lokuhlanganisa kanye nokunikeza ama-shader kusengaphambili nge-HLSL (ulimi lwe-shader olusezingeni eliphezulu), olunikezwa kusukela ku-DirectX 9.0.
Olunye ushintsho olugqamile kule nguqulo entsha yi- ukusekelwa kokusebenza kwamaphoyinti antantayo anembayo kabili kuma-shader, kanye nokungaqondisi kahle kwamashader e-tessellation, ukuthunyelwa kwezifanekiso ezivela kuma-shader, isilungisi "esinembile" se-shader, kanye nemingcele yomhlaba wonke yezinsiza ezisenkumbulweni.
Singathola futhi ukuthi ikhono lokuqaqa ama-shader we-Direct3D kukhodi yamabhayithi esifanekisweni se-assembler, kanye nokwesekwa okwengeziwe kokuhlaziya ifomethi ye-bytecode ye-Direct3D endala esetshenziswa kumamodeli we-Direct3D 1, 2, kanye no-3 shader.
libvkd3d yengeze izici ze-Direct3D 12, njengamasiginesha ezimpande, izinto zokubala zokubheka ezingahlelekile, okukhiphayo okuhlanganisa ama-booleans, imodi yokubhala ye-mirror_once, kanye nesakhiwo se-vkd3d_host_time_domain_info yengeza.
Kwezinye izinguquko okuvelele kule nguqulo entsha:
- I-vkd3d_shader_preprocess_info inweba ukwakheka kwe-vkd3d_shader_compile_info, futhi ingasetshenziswa ukucacisa amapharamitha wokucubungula ngaphambili njengezincazelo ze-preprocessor macro.
- I-vkd3d_shader_hlsl_source_info inweba ukwakheka kwe-vkd3d_shader_compile_info, futhi ingasetshenziswa ukucacisa i-HLSL nokwakha amapharamitha njengephrofayili eqondiwe nendawo yokungena.
- Xhumanisa i-Direct3D 12 namamodeli we-Vulkan
- I-VKD3D_SHADER_COMPILE_OPTION_API_VERSION ingasetshenziswa ukucacisa inguqulo ye-libvkd3d-shader API uhlelo oluqondiswe kuyo. Uma kungashiwongo, kuzosetshenziswa i-VKD3D_SHADER_API_VERSION_1_2.
- I-vkd3d-compiler izoshintsha ngokuzenzakalelayo ekuphumeni kombala uma inganquma ukuthi i
okukhiphayo kuyi-teleprinter ekwazi umbala. - Ukwesekwa okungeziwe kwamalungu afanayo esichazi achazwe ku-Shader Model 5.1.
Okokugcina uma ufuna ukwazi kabanzi ngayo mayelana nale nguqulo entsha, ungabheka uhlu oluphelele lwezinguquko Kulesi sixhumanisi esilandelayo.
Ungayifaka kanjani i-vkd3d ku-Linux?
Kulabo abanentshisekelo yokukwazi ukufaka i-vkd3d kusistimu yabo, kufanele bathole ikhodi yomthombo bese beqhubeka nokuhlanganiswa, yize kungenxa yezinjongo ezisebenzayo noma zalabo abasha, bangazama lo mtapo wolwazi ngaphandle komzamo omkhulu. Ngalokhu, kufanele bafake i-lutris kuphela nangaphakathi kokucushwa kwayo.
Ngokuqondene nalabo abanentshisekelo yokuhlanganiswa, kufanele bathole ikhodi nge:
git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"
Ekugcineni, izendlalelo zeVulkan kumele zinikwe amandla:
export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug