
D8VK คือการใช้งาน Direct3D 8 ที่ให้คุณเรียกใช้แอปพลิเคชัน 3 มิติบน Linux โดยใช้ Wine
ไม่กี่วันที่ผ่านมา มีการประกาศเปิดตัวเวอร์ชันเสถียรแรกของโครงการ "D8VK 1.0" เสนอ การใช้งาน API กราฟิก Direct3D 8 ซึ่งทำงานผ่านการแปลการเรียก Vulkan API และอนุญาตให้คุณใช้ Wine หรือ Proton เพื่อเรียกใช้แอปพลิเคชันและเกม 3 มิติที่พัฒนาสำหรับ Windows บน Linux ที่เชื่อมโยงกับ Direct3D 8 API
อย่างที่หลายๆ คนทราบ ใน Linux เรามี VKD3D-Proton สำหรับการแปล Direct3D 12 ใน Vulkan นอกจากนั้นเรายังมี Steam Play ที่ใช้ DXVK เพื่อใช้งาน Direct3D 9/10/11 APIs บน Vulkan แต่สำหรับอันเก่า . การดำเนินการของ Direct3D 8 ไม่มีอะไรเป็นรูปธรรม
นั่นคือเหตุผลที่ D8VK ถือกำเนิดขึ้น ซึ่งเป็นการนำ Microsoft Direct3D 8 API แบบเก่ามาใช้เหนือ Vulkan เพื่อปรับปรุงประสบการณ์ของเกมรุ่นเก่า
D8VK 1.0 ถูกระบุว่าเป็นรุ่นแรกของโครงการ เหมาะสำหรับการใช้งานและการทดสอบในหลายร้อยเกม เมื่อเปรียบเทียบกับโครงการ WineD3D และ d3d8to9 ซึ่งใช้การแปล Direct3D 8 เป็น OpenGL และ Direct3D 9 โครงการ D8VK แสดงให้เห็นถึงประสิทธิภาพ ความเสถียร และความเข้ากันได้กับเกมที่ดีกว่า
ตัวอย่างเช่น เมื่อทดสอบบนแพ็คเกจ 3DMark 2001 SE โครงการ D8VK ได้คะแนน 144660 คะแนน การรวมกันของ d3d8to9 และ dxvk – 118033 และ WineD3D – 97134
การเปิดตัวของ D8VK 1.0 แนะนำ d3d8.dll(d3d9 เชื่อมโยงแบบคงที่) เช่นเดียวกับไฟล์ โปรเซสเซอร์แบทช์แบบกำหนดเองใหม่ สำหรับบางเกมที่มีพฤติกรรมที่ไม่ได้กำหนด
นอกจากนี้ ยังเน้นย้ำว่า รองรับการประกาศ Vertex Shader สำหรับเกมที่มีลักษณะการทำงานที่ไม่ได้กำหนด และบัฟเฟอร์จุดยอดนั้นสามารถเก็บไว้ในพูลที่จัดการด้วยตนเองเพื่อปรับปรุงประสิทธิภาพและหลีกเลี่ยงปัญหาลำดับการเขียน
มีข้อสังเกตด้วยว่าการสนับสนุนคอมไพล์ถูกนำมาใช้ใน MSVC เช่นเดียวกับการสนับสนุนการสืบค้น GetInfo และประเภทบล็อกสถานะ
ของคนอื่น การเปลี่ยนแปลงที่โดดเด่น:
- แก้ไขขนาดคำอธิบายพื้นผิวตามรูปแบบ
- อนุญาตให้รักษาการติดตั้ง Proton ปัจจุบัน
- การตั้งค่าเฉพาะเกมจำนวนนับไม่ถ้วนและคุณสมบัติเล็กน้อยและการปรับแต่ง
- แก้ไขข้อบกพร่องที่ CreateTexture จะพยายามรวมพื้นผิวที่เป็นค่าว่าง
- แก้ไขแบ็คบัฟเฟอร์ที่ไม่ถูกแคชหรืออ้างอิงไปยังอุปกรณ์ที่เป็นเจ้าของ
- แก้ไขพื้นผิว สตรีม และดัชนีที่ไม่ถูกล้างเมื่อรีบูต
- แก้ไขตำแหน่งของ Direct3DCreate8 ใน d3d8.def
- จำนวนการอ้างอิงคงที่สำหรับเป้าหมายการเรนเดอร์ เทมเพลตเชิงลึก และพื้นผิว
- แก้ไข null pixel shaders ที่ไม่ถูกจดจำ
- แก้ไขเป้าหมายการเรนเดอร์และเทมเพลตเชิงลึกที่ไม่ถูกแคช
- แก้ไขข้อบกพร่องหากไคลเอนต์พยายามเปิดใช้งาน SWVP บนอุปกรณ์ฮาร์ดแวร์
- แก้ไขอุปกรณ์ที่ไม่เจลเบรก
- แก้ไข segfault ในการเปิดตัวอุปกรณ์ด้วยพื้นผิวที่ถูกผูกไว้
สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม สามารถปรึกษารายละเอียดได้ ในลิงค์ต่อไปนี้.
คุณควรทราบว่ารหัสโครงการเขียนด้วยภาษา C++ และเผยแพร่ภายใต้ลิขสิทธิ์ Zlib ฐานรหัสของโครงการ DXVK พร้อมการใช้งาน Direct3D 9, 10 และ 11 ที่ด้านบนของ Vulkan ถูกใช้เป็นพื้นฐานสำหรับการพัฒนา
จะติดตั้ง D8VK บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจสามารถติดตั้ง D8VK ได้ พวกเขาควรทราบว่าการติดตั้งนั้นค่อนข้างง่ายและไม่ต้องการอะไรมากมาย เพียงเปิดเทอร์มินัลเพื่อรับเวอร์ชันใหม่ ในนั้นเราจะพิมพ์คำสั่งต่อไปนี้:
git clone https://github.com/AlpyneDreams/d8vk.git
หรือหากคุณต้องการดาวน์โหลดจากเบราว์เซอร์ของคุณ (คุณเพียงแค่คลายซิปไฟล์และวางตำแหน่งตัวเองในเทอร์มินัลภายในโฟลเดอร์) คุณสามารถทำได้โดยคลิก ในลิงค์นี้
เสร็จแล้วตอนนี้เราจะเข้าสู่ไดเร็กทอรีด้วย:
cd d8vk
และเราดำเนินการติดตั้ง d8vk แล้วแต่กรณี ในการนำไปใช้กับไวน์ เราต้องพิมพ์สิ่งต่อไปนี้:
./setup_d3d8.sh install --no-proton
หรือในกรณีที่ต้องการนำไปใช้กับ Proton ต้องพิมพ์คำสั่งดังนี้
./setup_d3d8.sh install
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานหรือการติดตั้งสำหรับบางกรณี คุณสามารถปรึกษาได้ ลิงค์ต่อไปนี้