
D7VK 2.1 kini tersedia sebagai versi baru dari lapisan terjemahan grafis sumber terbuka ini yang memungkinkan game Windows lama berbasis Direct3D 7, 6, 5, dan 3 untuk berjalan di Vulkan. Setelah peningkatan performa signifikan yang diperkenalkan pada versi sebelumnya , pembaruan ini memfokuskan sebagian besar pekerjaannya pada aspek lain: mengurangi waktu pemuatan dan memulai game . Pada beberapa judul, peningkatan tersebut mengurangi waktu yang dibutuhkan untuk memuat game atau meluncurkan game hingga setengahnya.
D7VK secara khusus ditujukan untuk game klasik yang menggunakan versi awal Direct3D dan masih dapat dijalankan di Linux menggunakan Wine atau Proton. Proyek ini menggunakan Vulkan sebagai backend untuk API lama tersebut, mengisi celah yang tidak secara langsung ditangani oleh versi DXVK modern, yang berfokus pada Direct3D 8, 9, 10, dan 11, atau VKD3D-Proton, yang dirancang untuk Direct3D 12.
D7VK 2.1 mempercepat waktu pemuatan untuk game klasik.
Fitur baru utama D7VK 2.1 terkait dengan pembuatan dan penghancuran objek . Proyek ini telah mengurangi beban yang terkait dengan pelacakan siklus hidup objek-objek ini, sehingga mengurangi pekerjaan yang dibutuhkan selama fase pemuatan dan inisialisasi game.
Perubahan ini berdampak langsung pada waktu startup. Menurut pengembang, beberapa judul mengalami peningkatan yang signifikan, dengan beberapa di antaranya mengalami pengurangan waktu pemuatan hingga setengahnya atau bahkan lebih dibandingkan dengan versi D7VK sebelumnya. Meskipun game klasik biasanya tidak memiliki masalah waktu pemuatan yang signifikan pada perangkat keras modern, proyek ini percaya bahwa optimasi ini memungkinkan pemanfaatan sumber daya yang tersedia dengan lebih baik.
Perbaikan juga telah dilakukan pada sistem caching. Kombinasi biaya manajemen siklus hidup objek yang lebih rendah dan perilaku cache yang lebih efisien mengurangi beban kerja yang harus dilakukan D7VK selama startup aplikasi dan operasi-operasi selanjutnya.
Terdapat juga perbaikan kompatibilitas penting.
D7VK 2.1 tidak hanya mengoptimalkan waktu pemuatan. Pembaruan ini juga memperbaiki masalah use-after-free yang terkait dengan pelepasan permukaan depth stencil terkait . Bug ini hanya muncul pada biner tertentu yang dikompilasi menggunakan MSVC atau Clang dan dapat menyebabkan beberapa game mengalami crash secara tak terduga selama proses startup.
Salah satu judul yang terpengaruh adalah Arx Fatalis , yang dapat mengalami crash saat diluncurkan. Perbaikan yang disertakan dalam D7VK 2.1 mengatasi masalah ini dan memungkinkan game berjalan tanpa mengalami bug spesifik tersebut.
Pembaruan ini juga mencakup penyesuaian untuk game tertentu. Ini termasuk peningkatan performa untuk Resident Evil 2 dan Empire Earth: The Art of Conquest , dua judul klasik yang dapat memperoleh manfaat dari perbaikan yang dilakukan dalam versi ini.
Rute opsional baru untuk GetDC dan ReleaseDC
Hal baru lainnya D7VK 2.1 Ini adalah jalur eksekusi opsional untuk panggilan. GetDC y ReleaseDCTujuannya adalah untuk meningkatkan performa game-game tertentu yang banyak menggunakan fitur-fitur tersebut.
Implementasi bersifat opsional karena hasilnya sangat bergantung pada perilaku setiap permainan. Dalam beberapa kasus, hal ini dapat memberikan peningkatan kinerja, sementara dalam kasus lain dapat menghasilkan efek yang justru sebaliknya dan meningkatkan biaya operasi tertentu.
Pengembang sendiri telah mengamati peningkatan sekitar 5-10% pada FPS selama permainan di Arx Fatalis menggunakan cara ini. Namun, perubahan yang sama menyebabkan penurunan performa yang cukup signifikan saat menampilkan menu utama game. Oleh karena itu, ini bukanlah optimasi universal yang dapat diaktifkan tanpa pandang bulu, melainkan opsi yang mungkin berguna pada judul game tertentu.
Peningkatan menarik untuk memainkan game klasik Windows di Linux.
Manfaat utama D7VK 2.1 terletak pada katalog gimnya, yang mungkin tampak kecil dibandingkan dengan judul-judul modern, tetapi tetap relevan bagi mereka yang menggunakan Linux sebagai platform untuk gim klasik. Lapisan ini memungkinkan penerjemahan API Direct3D lama 3, 5, 6, dan 7 ke Vulkan, sehingga memungkinkan untuk menjalankan gim-gim ini menggunakan Wine atau Proton.
Ini sangat berguna terutama untuk judul game yang dikembangkan jauh sebelum API grafis modern menjadi standar. Alih-alih hanya mengandalkan implementasi Direct3D tradisional yang tersedia melalui Wine, D7VK menyediakan pendekatan berbasis Vulkan yang dapat menawarkan kompatibilitas dan kinerja yang lebih baik pada perangkat keras dan driver grafis saat ini.
D7VK 2.1 kini tersedia.
D7VK 2.1 kini tersedia untuk diunduh dari repositori proyek. Versi baru ini lebih berfokus pada penyempurnaan cara kerja internal lapisan terjemahan daripada peningkatan FPS yang signifikan dibandingkan pembaruan sebelumnya.
Mengurangi overhead selama pembuatan objek, meningkatkan caching, dan mengoptimalkan proses booting dapat secara signifikan mengurangi waktu pemuatan di game tertentu. Ini di samping memperbaiki crash Arx Fatalis, melakukan penyesuaian pada judul lain, dan menambahkan jalur opsional baru untuk GetDC/ReleaseDC.
Dengan ini, D7VK 2.1 terus meningkatkan aspek yang sangat spesifik dari bermain game di Linux: eksekusi judul-judul klasik yang mengandalkan API grafis lama dari Microsoft. Pembaruan ini menunjukkan bahwa masih ada ruang untuk menyempurnakan pengalaman ini, bahkan ketika game tersebut sudah berusia puluhan tahun dan berjalan di perangkat keras modern.