Le phrojekthi Iwayini likhiphe uhlobo olusha lwephakethe le-vkd3d 1.2 con ukuqaliswa kwe-Direct3D 12 esebenza ngokuhumushela izingcingo ku-Vulkan graph API.
Le nguqulo entsha ye-vkd3d 1.2 iqukethe ukuthuthuka okuhlukahlukene, kepha kokuphambili okuvelele yi ukutholakala kwe-libvkd3d-shader njengomtapo wolwazi womphakathi, the shader ukwesekwa i-tessellation, kanye nokusekelwa kokukhipha kokugeleza.
Iphakhejifuthi ifaka imitapo yolwazi ye-libvkd3d ngokuqalwa 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, kufaka phakathi imisebenzi yehluzo neyekhompiyutha, uhlu lwemiyalo nolayini, izincazelo zenqwaba nezincazelo, amasiginesha ezimpande, ukufinyelela okunganqunyelwe, amasampuli, amasiginesha wemiyalo, izixazululo zezimpande, ukumelwa okungaqondile, njalonjalo.
I-Libvkd3d-shader isebenzisa ukuhunyushwa kwekhodi ye-byte 4 no-5 yamaphethini wokufiphaza ekumelelekeni okuphakathi kwe-SPIR-V. Ama-verices, amaphikseli, i-tessellation, i-computational kanye ne-geometry shader elula, i-serialization yesiginesha yezimpande, kanye nokwenziwa kwe-desificationization 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 izivivinyo zenziwa ikakhulukazi kusethi yezicelo zedemo. Ukukhishwa akubandakanyi izici entuthukweni njengokusekelwa kwama-shader anzima we-geometry kanye ne-tessellation, kanye nezithuthukisi eziningi ezihlobene nezindlela eziyisisekelo ze-Direct3D 12. Lezi zici zizonikezwa ekukhishweni okuzayo.
Izici ezintsha eziyinhloko zeVkd3d 1.2
Ezingxenyeni ezibaluleke kakhulu ezethulwe kunguqulo entsha, i- ukutholakala kwelabhulali ye-libvkd3d-shader ukusetshenziswa kumaphrojekthi wezinkampani zangaphandle, kusukela Kwengezwe imisebenzi ehlukahlukene ye-Direct3D 12, efana:
- Isampuli eziningi.
- Izinsizakusebenza ezibekiwe.
- Amanani wokudlula kwedatha yesimo.
- "Idatha eyimfihlo" i-API yazo zonke izixhumi ezibonakalayo.
- Ukulungiswa kwemithombo yesizinda se-Shader.
- VK_KHR_draw_indirect_count extension.
- Isibikezelo / ukumelwa okunemibandela.
- Ukunikezwa kokujula ngaphandle kwe-pixel shader.
- Ukusika okujulile. Lokhu kudinga i-VK_EXT_depth_clip_enable extension.
- Lahla i-rasterizer.
- Ukuhlanganiswa kwemithombo emibili.
- Ukwenza imephu kwezinsizakusebenza ezibekiwe.
- Izindlela ze-ReadFromSubresource () ne-WritToSubresource () ID3D12Resource.
- Ukufinyelela ngasikhathi sinye kuzinsizakusebenza zolayini abaningi.
- Ukubuka okungenamqondo. Lokho, ukubuka ngaphandle kwesisetshenziswa esingaphansi.
- Imibuzo eminingi yokuxhaswa kwesici.
Ngaphezu kwalokhu, Kungezwe ukusekelwa kokuguqula amasiginesha, ukwenza i-serialing nokwenza i-deserializing impande (vkd3d_serialize_versioned_root_signature () kanye ne-vkd3d_create_versioned_root_signature_deserializer (), kanye nokusekelwa kokukhipha okusakazwayo.
Olunye ushintsho olugqamile yi Ukusetshenziswa okuguqukayo kwemvelo: I-VKD3D_CONFIG ukusetha izinketho zokushintsha ukusebenza kwe-libvkd3d ne-VKD3D_VULKAN_DEVICE ukubhala ngaphezulu idivayisi ye-Vulkan API.
Ngaphandle kwalokho kungezwe ukusekelwa kwemiyalo yokufiphaza i-bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos kanye nokwesekwa kokuqala kwemodeli shader.
Futhi nokusekelwa kwezindawo ezibhekiswe ku-OpenGL SPIR-V. Lokhu kuvumela i-SPIR-V ekhiqizwe yi-libvkd3d-shader ukuthi isetshenziswe ne-GL_ARB_gl_spirv. Lokhu kufaka ukusekelwa kwamabala wokubala we-OpenGL kanye namasampuli ahlanganisiwe.
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