Rilis D9VK 0.40, implementasi Direct3D 9 di atas Vulkan

ambil tempat pelepasan proyek D9VK 0.40, yang menyediakan implementasi Direct3D 9 yang bekerja dengan menerjemahkan panggilan ke API grafis Vulkan. Proyek ini didasarkan pada basis kode proyek Dxvk, yang telah diperluas untuk mendukung Direct3D 9. Dibandingkan dengan implementasi Direct3D 9 berbasis WineD3D, D9VK mencapai kinerja yang lebih baik karena terjemahan Direct3D 9 melalui OpenGL lebih lambat dibandingkan terjemahan melalui Vulkan.

D9VK dapat digunakan untuk menjalankan aplikasi dan game 3D di Linux menggunakan Wine. Sebagian besar game berbasis Direct3D 9 yang menggunakan Model Shader versi 2 atau 3 didukung. Kode proyek didistribusikan oleh di bawah lisensi Zlib gratis. D9VK memerlukan driver yang mendukung Vulkan API, seperti AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+, dan AMDVLK.

Perbaikan utama:

  • Kemampuan untuk menggunakan memori video lebih dari 4 GB dalam aplikasi 32-bit telah diterapkan, yang memecahkan masalah saat meluncurkan mod untuk game Skyrim dan Oblivion;
  • Pemrosesan asinkron dalam menampilkan hasil rendering di layar diaktifkan (tahap presentasi). Untuk mengurangi latensi pada thread rendering utama, pemrosesan output dilakukan di thread pengiriman perintah;
  • Menghapus titik sinkronisasi aliran perintah yang tidak diperlukan saat mengambil data yang diminta;
  • Kode untuk menentukan waktu internal telah diterjemahkan untuk menggunakan pengatur waktu khusus platform, yang membantu memecahkan masalah dengan perilaku yang salah dari jam_resolusi tinggi dari MinGW;
  • Buffer yang ditangguhkan MANAGED dan SYSTEMMEM diturunkan pada tahap sebelum eksekusi PrepareDraw, yang memecahkan masalah kinerja dalam game Risen dan Legend of the Heroes: Trails of the Sky;
  • Ditambahkan dukungan D3DTA_CONSTANT, yang memungkinkan penerapan rendering yang benar efek cahaya di game SpinTyres dan Mudrunner;
  • Peningkatan kompatibilitas dengan DirectX 9Ex (D3D9Ex). Kekhususan pemrosesan ResetEx dan Reset diperhitungkan;
  • Kode yang dibersihkan dan difaktorkan ulang;
  • Pemetaan langsung buffer WRITEONLY disediakan, yang dapat memberikan efek positif pada kinerja dan melewati bug dalam game
    Counter-Strike: Global Offensive, mengakibatkan penulisan ke buffer terus berlanjut setelah dibuka kuncinya;

  • Metode yang diterapkan SetDialogBoxMode, yang memungkinkan Anda menggunakan kotak dialog dalam aplikasi layar penuh;
  • Dukungan diterapkan memadukan simpulTermasuk pencampuran titik terindeks, diperlukan untuk SWVP (Pemrosesan Vertex Perangkat Lunak);
  • Penghitung sampler, yang ditampilkan di atas gambar saat ini (tampilan head-up, HUD), telah didesain ulang;
  • Menambahkan opsi d3d9.dialogBoxMode, yang dapat digunakan untuk menonaktifkan pekerjaan hanya dalam mode layar penuh;
  • Melakukan optimalisasi kinerja dan menyelesaikan masalah yang terjadi saat meluncurkan game GTA: San Andreas, The Masquerade Bloodlines, Max Payne 2, The Sims 2, Silent Hunter 3, Senran Kagura Shinovi, Dungeons and Dragons, Crysis, Metal Slug X, ANGLE, Need for Kecepatan: Karbon dan Bangkit 1.

Selain itu, dapat diperhatikan maksud pengembang proyek Dxvk (implementasi DXGI, Direct3D 10 dan Direct3D 11 di atas Vulkan API) untuk sementara akan memfokuskan upaya hanya pada perbaikan bug, sehingga memperlambat perluasan fungsionalitas. Keinginan serupa disebabkan oleh kekhawatiran tentang penurunan kualitas basis kode dan pemeliharaan yang lebih sulit di masa depan. Setiap pembaruan pada cabang 1.4.x menimbulkan keluhan tentang perubahan regresif yang tidak dapat direproduksi, dilokalisasi, dan diperbaiki.

Masalah-masalah ini memerlukan analisis penyebab kemunculannya, jika tidak, membiarkannya tidak diperbaiki sambil terus meningkatkan fungsionalitas hanya akan memperburuk situasi dan mengubah proses pemeliharaan menjadi mimpi buruk. Rencana yang ingin diterapkan oleh pengembang DXVK sebelum beralih ke mode perbaikan bug saja termasuk menambahkan dukungan untuk beberapa ekstensi Vulkan yang berguna dan menggabungkannya dengan pengembangan proyek D9VK.

Tambahan: panas di tumit terbentuk rilis korektif D9VK 0.40.1, di mana tetap setel vec4(1) ke nilai default untuk COLOR0 di vertex shader, dan memperbaiki bug di mana bit slot keluaran shader default diterapkan secara tidak benar sehingga dikoreksi secara tidak benar oleh backend, menyebabkan bit tersebut digantikan oleh vec4(0).

Sumber: opennet.ru

Tambah komentar