D7VK 2.2 meningkatkan dukungan Direct3D 3 untuk memainkan game klasik Windows di Linux.

  • D7VK 2.2 secara signifikan meningkatkan dukungan Direct3D 3, memperbaiki masalah perangkat, buffer eksekusi, dan transformasi verteks.
  • Pembaruan ini juga meningkatkan manajemen tekstur dan transparansi kunci warna serta mengurangi beban pada beberapa jalur Direct3D 5 dan 6.
  • D7VK 2.2 didasarkan pada DXVK 3.1 dan terus meningkatkan kinerja game Windows klasik menggunakan Wine dan Proton di Linux.

D7VK 2.2

D7VK 2.2 kini tersedia sebagai versi baru dari lapisan terjemahan grafis yang dirancang untuk menjalankan game Windows klasik di Linux. Proyek ini, yang berasal dari DXVK, berfokus pada penerjemahan API Direct3D 7, 6, 5, dan 3 yang lebih lama ke Vulkan untuk digunakan dengan Wine dan Proton, dan versi baru ini mendedikasikan sebagian besar pekerjaannya untuk salah satu area yang masih memiliki kekurangan paling banyak: dukungan Direct3D 3.

Pembaruan ini hadir hanya beberapa minggu setelah D7VK 2.1 dan melanjutkan proses pematangan teknologi yang sangat menarik bagi mereka yang ingin memainkan game dari akhir tahun 90-an dan awal 2000-an di sistem Linux modern. Selain meningkatkan Direct3D 3, D7VK 2.2 menggabungkan banyak perbaikan bug dan penyesuaian internal, dan didasarkan pada versi DXVK 3.1 terbaru.

D7VK 2.2 berfokus pada Direct3D 3

Fitur baru utama di D7VK 2.2 terkait dengan Direct3D 3, sebuah API yang agak tertinggal dibandingkan teknologi lama lainnya yang didukung oleh proyek ini. Meskipun game Direct3D 3 yang telah dikumpulkan dan diuji oleh pengembang sudah kompatibel dengan D7VK, masih ada beberapa kasus khusus dan perilaku yang belum diimplementasikan dengan benar.

Hal ini menjadi masalah khusus karena katalog game yang menggunakan Direct3D 3 sulit untuk direkonstruksi. Ini adalah judul-judul yang sangat lama, banyak di antaranya sudah tidak tersedia secara komersial atau sulit ditemukan, sehingga menyulitkan untuk menguji semua kemungkinan implementasi yang mungkin ditemui dalam praktiknya.

Dengan versi ini, pengembang telah merevisi sebagian besar implementasi Direct3D 3 untuk mendekatkannya ke tingkat kematangan yang dicapai oleh API lain yang kompatibel dengan D7VK.

Perilaku perangkat D3D3 sesuai dengan aslinya.

Salah satu perubahan teknis melibatkan pengerjaan ulang sistem penghitungan referensi untuk perangkat Direct3D 3. D7VK 2.2 memodifikasi mekanisme ini sehingga perilakunya sesuai dengan implementasi API asli.

Detail semacam ini mungkin tampak tidak relevan bagi pengguna, tetapi sangat penting dalam lapisan terjemahan. Gim-gim lama dapat bergantung pada perilaku spesifik terkait pembuatan dan penghancuran objek, dan perbedaan yang tampaknya kecil dapat menyebabkan kesalahan yang sulit didiagnosis.

Implementasi baru ini mengurangi kemungkinan judul-judul tertentu gagal mengelola perangkat grafisnya dengan cara yang tidak diharapkan oleh D7VK.

D7VK 2.2 memperkenalkan peningkatan transparansi menggunakan kunci warna.

D7VK 2.2 juga memodifikasi manajemen color keying pada perangkat Direct3D 3 murni. Hingga saat ini, proyek ini menggunakan model yang sangat sederhana di mana fungsi ini selalu diaktifkan dalam keadaan tertentu.

Versi baru ini memungkinkan kontrol yang lebih tepat atas kapan fitur tersebut diaktifkan, sehingga lebih akurat mereproduksi perilaku Direct3D 3. Hal ini sangat penting terutama untuk game-game lama yang menggunakan teknik transparansi berdasarkan warna-warna tertentu.

Selain itu, perhitungan yang terkait dengan rentang warna yang dinormalisasi telah dioptimalkan. Nilai-nilai ini sekarang hanya diperbarui ketika deskripsi permukaan berubah, sehingga dapat disimpan dalam cache dan digunakan kembali di kemudian hari.

Hasilnya seharusnya berupa peningkatan kinerja yang kecil hingga sedang pada game yang menggunakan transparansi kunci warna, serta perilaku yang lebih tepat.

Kasus batas dalam buffer eksekusi telah diperbaiki.

Aspek penting lainnya dari D7VK 2.2 adalah revisi validasi buffer eksekusi Direct3D 3. Proyek ini telah menata ulang sebagian dari logika ini untuk mengatasi berbagai kasus khusus yang diidentifikasi selama pengujian.

Untuk memverifikasi perilaku API yang diharapkan, pengembang juga dapat mengandalkan pengujian Wine yang secara khusus terkait dengan Direct3D 3. Pengujian ini memungkinkan untuk membandingkan perilaku D7VK dengan perilaku yang diharapkan dari implementasi yang kompatibel dan mendeteksi perbedaan yang mungkin tidak disadari jika hanya menggunakan game-game yang sudah dikenal.

Karya ini sangat berharga khususnya untuk API yang sudah lama seperti ini, di mana judul-judul yang tersedia untuk pengujian sangat sedikit dan tidak selalu mencakup semua kemungkinan implementasi aslinya.

Ketahanan yang lebih baik untuk tekstur Direct3D 5 dan 3

Pembaruan ini tidak terbatas pada Direct3D 3. D7VK 2.2 juga meningkatkan penanganan tekstur yang digunakan oleh Direct3D 5 dan Direct3D 3 untuk mencegah permukaan di bawahnya keluar dari jangkauan saat masih digunakan.

Perubahan ini meningkatkan ketahanan penanganan sumber daya grafis dan dapat mengatasi kesalahan yang hanya muncul pada urutan operasi tertentu. Pengembang juga mencatat bahwa peningkatan ini telah memberikan dampak positif pada Frogger , yang awalnya dirilis pada tahun 1997.

Patch ini menunjukkan bagaimana perubahan internal yang dimaksudkan untuk mengatasi masalah manajemen sumber daya dapat berujung pada efek yang terlihat pada game tertentu, bahkan ketika modifikasi tersebut tidak dirancang khusus untuk game tersebut.

D7VK 2.2 juga memperbaiki masalah transformasi dan matriks.

D7VK 2.2 juga memperbaiki bug yang terkait dengan transformasi buffer eksekusi Direct3D 3. Masalah ini disebabkan oleh penentuan format FVF yang salah yang digunakan untuk input verteks.

Masalah pada perhitungan matriks proyeksi lama juga telah diperbaiki. Bug tersebut ditemukan melalui pengujian Wine yang tidak berfungsi seperti yang diharapkan dan dapat berdampak negatif pada aplikasi Direct3D 6, 5, dan 3 tertentu.

Perubahan ini semakin menunjukkan pentingnya pengujian kompatibilitas untuk D7VK. Banyak masalah dengan API grafis lama tidak selalu muncul di game-game paling populer, melainkan pada kombinasi fitur spesifik yang dapat tetap tersembunyi selama bertahun-tahun.

Pengurangan overhead pada jalur gambar lama

Versi baru ini juga mengatur ulang jalur penggambaran. Begin() / Vertex() / End() Digunakan oleh Direct3D 6 dan Direct3D 5. Modifikasi ini mengurangi konsumsi memori dan memberikan sedikit peningkatan kinerja.

Sekali lagi, Frogger termasuk di antara game yang dapat memperoleh manfaat dari perubahan ini. Meskipun optimasi ini tidak akan menggandakan FPS semua judul retro, ini membantu mengurangi beberapa beban berlebih yang terakumulasi pada rute yang digunakan oleh API lama.

D7VK telah menerima optimasi kinerja yang signifikan dalam versi sebelumnya, sehingga pekerjaan saat ini semakin difokuskan pada penyempurnaan implementasi dan penghapusan biaya yang tidak perlu.

D7VK 2.2 bagian dari DXVK 3.1

Fitur penting lainnya dari versi ini adalah bahwa D7VK 2.2 telah digantikan oleh DXVK 3.1 . Hal ini memungkinkan proyek untuk memanfaatkan basis yang lebih baru dan menjaga implementasinya tetap selaras dengan evolusi DXVK.

Hubungan antara kedua proyek ini sangat penting. D7VK bermula sebagai turunan dari DXVK yang mengkhususkan diri pada API Direct3D lama yang tidak tercakup oleh penggunaan DXVK standar, sementara keduanya menggunakan Vulkan sebagai tujuan untuk panggilan grafis yang berasal dari Windows.

Berkat hubungan ini, peningkatan struktural yang hadir di DXVK dapat berfungsi sebagai dasar bagi D7VK untuk terus berkembang tanpa harus mengembangkan dari awal semua infrastruktur yang diperlukan untuk berkomunikasi dengan Vulkan.

Sebuah proyek yang dirancang untuk menghidupkan kembali game klasik.

D7VK memiliki tujuan yang sangat spesifik dalam ekosistem Linux: memungkinkan game Windows yang menggunakan Direct3D 7, 6, 5, dan 3 untuk berjalan menggunakan Vulkan. Hal ini membedakannya dari DXVK, yang terutama berfokus pada Direct3D 9, 10, dan 11.

Pentingnya proyek ini meningkat ketika menyangkut judul-judul yang bergantung pada teknologi grafis yang tidak diimplementasikan langsung oleh Wine atau yang dapat memperoleh manfaat dari terjemahan yang lebih akurat ke Vulkan.

Dengan menggabungkan D7VK dengan Wine atau Proton, pengguna Linux dapat memulihkan sejumlah besar perangkat lunak dari akhir abad ke-20 dan awal abad ke-21 tanpa harus menggunakan instalasi Windows lama.

Bagi mereka yang menggunakan Wine atau Proton untuk memainkan game di Linux dan tertarik untuk menghidupkan kembali judul-judul klasik, D7VK 2.2 memperkuat salah satu bagian terpenting dari infrastruktur kompatibilitas. Dan meskipun banyak peningkatannya mungkin tidak terlihat oleh pengguna, setiap perbaikan meningkatkan peluang bahwa game lain yang hilang di era Direct3D 3, 5, 6, atau 7 dapat berfungsi dengan benar kembali pada sistem Linux modern.


Tambahkan sebagai sumber pilihan di Google