Proyek Wine merilis Vkd3d 1.3 dengan implementasi Direct3D 12

Setelah satu setengah tahun pengembangan, proyek Wine telah menerbitkan rilis paket vkd3d 1.3 dengan implementasi Direct3D 12 yang bekerja melalui terjemahan panggilan 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 demo, termasuk port glxgears ke Direct3D 12 Kode proyek didistribusikan dengan lisensi di bawah LGPLv2.1.

Pustaka libvkd3d mendukung sebagian besar fitur Direct3D 12, termasuk grafis dan komputasi, antrian dan daftar perintah, deskriptor dan deskriptor heap, tanda tangan root, akses tidak berurutan, Sampler, tanda tangan perintah, konstanta root, rendering tidak langsung, metode Hapus *() dan Salin *().

libvkd3d-shader mengimplementasikan terjemahan bytecode 4 dan 5 model shader menjadi representasi perantara SPIR-V. Mendukung vertex, pixel, tessellation, komputasi dan shader geometri sederhana, serialisasi tanda tangan root dan deserialisasi. 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) diimplementasikan dari instruksi shader.

Di antara inovasi paling signifikan di Vkd3d 1.3 yang menonjol:

  • Menambahkan dukungan awal untuk kompilasi dan pra-pemrosesan shader dalam HLSL (Bahasa Shader Tingkat Tinggi), yang disediakan sejak DirectX 9.0.
  • Menambahkan dukungan untuk array deskriptor yang ditentukan dalam model shader 5.1.
  • Dukungan untuk operasi floating-point presisi ganda di shader, penanganan tidak langsung untuk shader tessellation, ekspor stensil dari shader, pengubah shader "tepat", dan hambatan global untuk sumber daya dalam memori.
  • Menerapkan kemampuan untuk membongkar shader Direct3D dari bytecode ke representasi assembler.
  • Menambahkan dukungan untuk parsing format bytecode Direct3D lama yang digunakan dalam model shader Direct3D 1, 2 dan 3.
  • libvkd3d menambahkan fitur Direct3D 12 seperti tanda tangan root, penghitung pencarian tidak berurutan, boolean penggabungan keluaran, mode pengalamatan tekstur mirror_once. Menambahkan struktur vkd3d_host_time_domain_info.

Sumber: opennet.ru

Tambah komentar