Iprojekthi yeWayini ipapashe ukukhutshwa kwephakheji ye-vkd3d 1.7 ngokuphunyezwa kwe-Direct3D 12 esebenza ngokufowunela ukusasaza kwi-API yemizobo ye-Vulkan. Iphakheji iquka iilayibrari ze-libvkd3d ngokuphunyezwa kwe-Direct3D 12, i-libvkd3d-shader kunye nomguquleli weemodeli ze-shader 4 kunye ne-5 kunye ne-libvkd3d-utils kunye nemisebenzi yokwenza lula ukuthunyelwa kwe-Direct3D 12 izicelo, kunye neseti yemizekelo yeedemo, kuquka izibuko. ye-glxgears ukuya ku-Direct3D 12. Ikhowudi yeprojekthi isasazwa ilayisensi phantsi kwe-LGPLv2.1.
Ithala leencwadi le-libvkd3d lixhasa uninzi lweempawu ze-Direct3D ezili-12, kubandakanywa imizobo kunye nezixhobo zokubala, imigca kunye noluhlu lwemiyalelo, izibambo kunye neziphatho zemfumba, iingcambu zesignesha, ukufikelela ngaphandle kwe-odolo, Iisampuli, utyikityo lomyalelo, iingcambu eziguquguqukayo, unikezelo olungathanga ngqo, Iindlela ezicacileyo *( ) kwaye Khuphela*(). Kwi-libvkd3d-shader, ukuguqulelwa kwe-bytecode yeemodeli ze-shader 4 kunye ne-5 kumboniso ophakathi we-SPIR-V uphunyeziwe. Ixhasa i-vertex, i-pixel, i-tessellation, i-comute kunye ne-geometry shaders elula, i-root signature serialization kunye ne-deserialization. Imiyalelo ye-Shader ibandakanya i-arithmetic, i-atomic kunye nokusebenza kwe-bit, uthelekiso kunye nabaqhubi bolawulo lokuhamba kwedatha, isampuli, ukuqokelela kunye nokulayisha imiyalelo, imisebenzi yokufikelela okungenamyalelo (i-UAV, i-UAV engalawulwayo).
Kwinguqulelo entsha:
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ HLSL (High-Level Shader Language):
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² SV_DispatchThreadID, SV_GroupID ΠΈ SV_GroupThreadID.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠΎΠ² Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Β«min16floatΒ».
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΈΠ»Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Direct3D 1/2/3.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ API Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° (vkd3d_shader_parse_dxbc) ΠΈ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (vkd3d_shader_serialize_dxbc) Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ DXBC.
umthombo: opennet.ru