
D7VK 2.1 พร้อมใช้งานแล้วในฐานะเวอร์ชันใหม่ของเลเยอร์การแปลงกราฟิกแบบโอเพนซอร์ส ซึ่งช่วยให้เกม Windows รุ่นเก่าที่ใช้ Direct3D 7, 6, 5 และ 3 สามารถทำงานบน Vulkan ได้ หลังจากที่ได้มีการปรับปรุงประสิทธิภาพอย่างมากในเวอร์ชันก่อนหน้าการอัปเดตครั้งนี้มุ่งเน้นไปที่การลดเวลาในการโหลดและเริ่มต้นเกมในบางเกม การปรับปรุงนี้ช่วยลดเวลาในการโหลดหรือเปิดเกมลงได้ครึ่งหนึ่ง
D7VK ออกแบบมาโดยเฉพาะสำหรับเกมคลาสสิกที่ใช้ Direct3D เวอร์ชันแรกๆ และยังสามารถรันบน Linux ได้โดยใช้ Wine หรือ Proton โครงการนี้ใช้ Vulkan เป็นแบ็กเอนด์สำหรับ API รุ่นเก่าเหล่านี้ ซึ่งเป็นการเติมเต็มช่องว่างที่เวอร์ชันใหม่ๆ ของ DXVK ซึ่งเน้นไปที่ Direct3D 8, 9, 10 และ 11 หรือ VKD3D-Proton ที่ออกแบบมาสำหรับ Direct3D 12 ไม่ได้กล่าวถึงโดยตรง
D7VK 2.1 ช่วยลดเวลาในการโหลดเกมคลาสสิก
คุณสมบัติใหม่หลักใน D7VK 2.1 เกี่ยวข้องกับการสร้างและการทำลายวัตถุโครงการนี้ได้ลดภาระงานที่เกี่ยวข้องกับการติดตามวงจรชีวิตของวัตถุเหล่านี้ลง ทำให้ลดงานที่จำเป็นในระหว่างขั้นตอนการโหลดและการเริ่มต้นเกมลงได้
การเปลี่ยนแปลงนี้ส่งผลโดยตรงต่อเวลาในการเริ่มต้นเกม ตามที่ผู้พัฒนาได้กล่าวไว้ เกมหลายเกมมีการปรับปรุงที่เห็นได้ชัด โดยบางเกมมีเวลาในการโหลดลดลงครึ่งหนึ่งหรือมากกว่านั้นเมื่อเทียบกับเวอร์ชันก่อนหน้าของ D7VK แม้ว่าเกมคลาสสิกโดยทั่วไปจะไม่มีปัญหาเรื่องเวลาในการโหลดมากนักบนฮาร์ดแวร์สมัยใหม่ แต่โครงการเชื่อว่าการปรับปรุงเหล่านี้จะช่วยให้ใช้ทรัพยากรที่มีอยู่ได้อย่างมีประสิทธิภาพมากขึ้น
นอกจากนี้ยังมีการปรับปรุงระบบแคชด้วย การผสมผสานระหว่างต้นทุนการจัดการวงจรชีวิตของวัตถุที่ต่ำลงและพฤติกรรมแคชที่มีประสิทธิภาพมากขึ้น ช่วยลดภาระงานที่ D7VK ต้องทำระหว่างการเริ่มต้นแอปพลิเคชันและการดำเนินการบางอย่างในภายหลัง
นอกจากนี้ยังมีการแก้ไขปัญหาความเข้ากันได้ที่สำคัญอีกด้วย
D7VK 2.1 ไม่เพียงแต่ปรับปรุงเวลาในการโหลดเท่านั้น การอัปเดตนี้ยังแก้ไข ปัญหาการใช้งานหน่วยความจำ หลังจากถูกปล่อย (use-after-free ) ที่เกี่ยวข้องกับการปล่อย พื้นผิว สเตนซิลความลึก (depth stencil surfaces ) ที่เกี่ยวข้องด้วย บั๊กนี้ปรากฏเฉพาะกับไบนารีบางตัวที่คอมไพล์โดยใช้ MSVC หรือ Clang และอาจทำให้เกมบางเกมหยุดทำงานโดยไม่คาดคิดระหว่างการเริ่มต้น
หนึ่งในเกมที่ได้รับผลกระทบคือArx Fatalisซึ่งอาจเกิดอาการขัดข้องขณะเริ่มเกม การแก้ไขที่รวมอยู่ใน D7VK 2.1 ได้แก้ไขปัญหานี้และทำให้เกมสามารถทำงานได้โดยไม่พบข้อผิดพลาดดังกล่าว
การอัปเดตนี้ยังรวมถึงการปรับปรุงสำหรับเกมบางเกมด้วย ซึ่งรวมถึงการปรับปรุงประสิทธิภาพสำหรับResident Evil 2และEmpire Earth: The Art of Conquestสองเกมคลาสสิกที่ได้รับประโยชน์จากการปรับปรุงในเวอร์ชันนี้
เส้นทางเสริมใหม่สำหรับ GetDC และ ReleaseDC
อีกหนึ่งความแปลกใหม่ของ ดี7วีเค 2.1 นี่เป็นเส้นทางการดำเนินการเสริมสำหรับการเรียกใช้ฟังก์ชัน GetDC y ReleaseDCเป้าหมายคือการปรับปรุงประสิทธิภาพของเกมบางเกมที่ใช้คุณสมบัติเหล่านี้อย่างมาก
การนำไปใช้งานนั้นเป็นทางเลือก เนื่องจากผลลัพธ์ขึ้นอยู่กับพฤติกรรมของแต่ละเกมเป็นอย่างมาก ในบางกรณีอาจช่วยปรับปรุงประสิทธิภาพ ในขณะที่บางกรณีอาจส่งผลตรงกันข้ามและเพิ่มต้นทุนในการดำเนินการบางอย่างได้
ผู้พัฒนาเกมเองได้สังเกตเห็นว่าเฟรมเรต (FPS) ในระหว่างการเล่นเกม Arx Fatalis เพิ่มขึ้นประมาณ5-10%เมื่อใช้วิธีนี้ อย่างไรก็ตาม การเปลี่ยนแปลงเดียวกันนี้ทำให้ประสิทธิภาพการทำงานลดลงอย่างเห็นได้ชัดเมื่อแสดงผลเมนูหลักของเกม ดังนั้น นี่ไม่ใช่การปรับแต่งที่ควรเปิดใช้งานโดยไม่เลือกปฏิบัติ แต่เป็นตัวเลือกที่อาจมีประโยชน์ในบางเกมเท่านั้น
นับเป็นการปรับปรุงที่น่าสนใจสำหรับการเล่นเกมคลาสสิกของ Windows บน Linux
ข้อดีหลักของD7VK 2.1อยู่ที่แคตตาล็อกเกม ซึ่งอาจดูน้อยเมื่อเทียบกับเกมสมัยใหม่ แต่ก็ยังมีความสำคัญสำหรับผู้ที่ใช้ Linux เป็นแพลตฟอร์มสำหรับเกมคลาสสิก เลเยอร์นี้ช่วยแปลง API Direct3D รุ่นเก่า 3, 5, 6 และ 7 ไปเป็น Vulkan ทำให้สามารถเล่นเกมเหล่านี้ได้โดยใช้ Wine หรือ Proton
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับเกมที่พัฒนาขึ้นนานก่อนที่ API กราฟิกสมัยใหม่จะกลายเป็นมาตรฐาน แทนที่จะพึ่งพาการใช้งาน Direct3D แบบดั้งเดิมที่มีให้ใช้งานผ่าน Wine เพียงอย่างเดียว D7VK นำเสนอแนวทางที่ใช้ Vulkan ซึ่งสามารถให้ความเข้ากันได้และประสิทธิภาพที่ดีกว่าบนฮาร์ดแวร์และไดรเวอร์กราฟิกในปัจจุบัน
D7VK 2.1 พร้อมใช้งานแล้ว
D7VK 2.1พร้อมให้ดาวน์โหลดแล้วจากที่เก็บโปรเจ็กต์ เวอร์ชันใหม่นี้เน้นการปรับปรุงการทำงานภายในของเลเยอร์การแปลมากกว่าการเพิ่ม FPS อย่างมีนัยสำคัญเหมือนในเวอร์ชันก่อนหน้า
การลดภาระการทำงานระหว่างการสร้างวัตถุ การปรับปรุงแคช และการเพิ่มประสิทธิภาพกระบวนการบูต สามารถลดเวลาในการโหลดเกมบางเกมได้อย่างมาก นอกจากนี้ยังแก้ไขปัญหาเกม Arx Fatalis ขัดข้อง ปรับปรุงเกมอื่นๆ และเพิ่มเส้นทางเสริมใหม่สำหรับ... GetDC/ReleaseDC.
ด้วยเหตุนี้D7VK 2.1จึงยังคงพัฒนาแง่มุมเฉพาะด้านหนึ่งของการเล่นเกมบน Linux ต่อไป นั่นคือ การทำงานของเกมคลาสสิกที่ใช้ API กราฟิกแบบเก่าของ Microsoft การอัปเดตนี้แสดงให้เห็นว่ายังมีโอกาสที่จะปรับปรุงประสบการณ์เหล่านี้ให้ดียิ่งขึ้นได้ แม้ว่าเกมเหล่านั้นจะมีอายุหลายสิบปีและทำงานบนฮาร์ดแวร์ที่ทันสมัยก็ตาม