Proyek Wine telah menerbitkan rilis paket vkd3d 1.7 dengan implementasi Direct3D 12 yang bekerja melalui panggilan penyiaran ke API grafis Vulkan. Paket ini mencakup perpustakaan libvkd3d dengan implementasi Direct3D 12, libvkd3d-shader dengan penerjemah model shader 4 dan 5 dan libvkd3d-utils dengan fungsi untuk menyederhanakan porting aplikasi Direct3D 12, serta serangkaian contoh demo, termasuk port dari glxgears ke Direct3D 12. Kode proyek didistribusikan dengan lisensi di bawah LGPLv2.1.
Pustaka libvkd3d mendukung sebagian besar fitur Direct3D 12, termasuk fasilitas grafis dan komputasi, antrian dan daftar perintah, pegangan dan pegangan tumpukan, tanda tangan akar, akses tidak berurutan, Sampler, tanda tangan perintah, konstanta akar, rendering tidak langsung, Metode yang jelas *( ) dan Salin*(). Di libvkd3d-shader, terjemahan bytecode model shader 4 dan 5 ke dalam representasi SPIR-V perantara diimplementasikan. Mendukung vertex, pixel, tessellation, komputasi dan shader geometri sederhana, serialisasi tanda tangan root dan deserialisasi. Instruksi shader mencakup operasi aritmatika, atom dan bit, operator perbandingan dan kontrol aliran data, instruksi pengambilan sampel, pengumpulan dan pemuatan, operasi akses tidak berurutan (UAV, Tampilan Akses Tidak Terurut).
ΠΎΠ²ΠΎΠΉ Π΅ΡΡΠΈΠΈ:
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ 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.
Sumber: opennet.ru