CodeWeavers ช่วยให้เกม DirectX 12 Windows ทำงานบน Linux

CodeWeavers ผู้พัฒนา CrossOver กำลังทำงานเพื่อปรับปรุง DirectX 12 ในเลเยอร์ความเข้ากันได้ของ CodeWeavers และ Wine

CodeWeavers ครอสโอเวอร์ เป็นหนึ่งในวิธีที่ได้รับความนิยมมากที่สุดในการรันแอพพลิเคชั่น Windows บนระบบปฏิบัติการอื่น เป็นการผสมผสานการทำงานที่ยอดเยี่ยมของโอเพ่นซอร์ส โครงการไวน์ (ซึ่งนักพัฒนาของ CrossOver สนับสนุนโค้ด) ด้วยอินเทอร์เฟซและส่วนหน้าที่ใช้งานง่ายกว่า CodeWeavers เปิดตัว CrossOver 21 ย้อนกลับไปในเดือนสิงหาคมและตอนนี้บริษัทได้แชร์รายละเอียดเกี่ยวกับการทำงานเพื่อนำการรองรับเกมสมัยใหม่มาสู่ Linux และ Mac

เกม Windows ล่าสุดหลายเกม (และแอพพลิเคชั่นที่เน้นกราฟิกหนักๆ) ต้องใช้ DirectX 12 ซึ่งเป็นเวอร์ชันล่าสุดของ ไลบรารีกราฟิก DirectX ของ Microsoftซึ่งใช้ API ระดับล่างเพื่อให้ได้ประสิทธิภาพที่เร็วขึ้น DirectX ใช้งานได้เฉพาะบน Windows (และคอนโซล Xbox) ดังนั้นเลเยอร์ความเข้ากันได้ของ Wine จึงใช้ VKD3D ไลบรารีกราฟิกเพื่อดำเนินการเรียก Direct3D บน Vulkan (ซึ่งมีให้ใช้งานบน Linux, Windows และอื่น ๆ แพลตฟอร์ม) ไลบรารี Vkd3d คือ พัฒนาโดย Valve Software เป็นหลัก สำหรับมัน ชั้นความเข้ากันได้ของโปรตอน

และความก้าวหน้าอย่างรวดเร็วของ VKD3D เป็นสาเหตุหลักที่ทำให้เกม Windows จำนวนมากสามารถเล่นได้บน Linux

แม้ว่า CrossOver จะมี VKD3D อยู่แล้ว แต่ CrossOver ก็ไม่รองรับเกม DirectX 12 อย่างเป็นทางการ ในขณะที่ผู้พัฒนาได้ค้นพบปัญหาด้านประสิทธิภาพบางประการแล้ว โพสต์บล็อก:

CrossOver ใช้ VKD3D เพื่อรันเกม DirectX 12 VKD3D เป็นไลบรารีกราฟิก 3 มิติที่สร้างขึ้นจาก วัลแคน. ขณะนี้มีการทำงานมากมายเพื่อปรับปรุงประสิทธิภาพของ VKD3D ด้วยความช่วยเหลือของวัลแคน ส่วนขยายการจัดทำดัชนีคำอธิบายซึ่งช่วยให้มีฟังก์ชันการทำงานคล้ายกับฮีปตัวอธิบาย DirectX 12 ตัวอธิบาย Vulkan ถูกเขียนน้อยกว่าและใช้หน่วยความจำ GPU น้อยกว่ามาก ด้วยเหตุนี้ VKD3D จึงสามารถรองรับเกมที่ใช้คำอธิบายเพียงพอที่จะต้องการทรัพยากรจากฮาร์ดแวร์ระดับ 2 และระดับ 3

CrossOver วางแผนที่จะเริ่มรองรับเกมและแอปพลิเคชัน DirectX 12 อย่างเป็นทางการบน Linux ในปี 2565 ด้วยการเปิดตัว CrossOver 22 ในอนาคต อย่างไรก็ตาม บริษัทไม่แน่ใจว่า VKD3D จะทำงานบน Mac เมื่อใด Apple ไม่รองรับ Vulkan เลยบน macOS (หรือ iOS) แต่ขอให้นักพัฒนาใช้งานแทน ไลบรารีกราฟิกโลหะ. นั่นเป็นปัญหาสำหรับ CrossOver เนื่องจากโพสต์บนบล็อกกล่าวต่อไปว่า:

โดยทั่วไปแล้ว Metal จะทำเทสเซลเลชั่นแตกต่างออกไป และไม่มีตัวเชดเดอร์เรขาคณิตและฟีดแบ็กในการแปลง เฉพาะกับ DirectX 12 และ Metal เท่านั้น มีปัญหาเรื่องการจำกัดทรัพยากร โดยทั่วไป เกมจำเป็นต้องเข้าถึงมุมมองทรัพยากรเชเดอร์ (SRV) อย่างน้อยหนึ่งล้านครั้ง การเข้าถึง SRV จำนวนมากนั้นจำเป็นต้องมีการเชื่อมโยงทรัพยากรในระดับ Tier 2 Metal รองรับทรัพยากรประมาณ 500,000 รายการต่อบัฟเฟอร์อาร์กิวเมนต์เท่านั้น ดังนั้นจึงไม่สามารถผูกทรัพยากรระดับ 2 ได้ ขีดจำกัดของ Metal ที่ครึ่งล้านนั้นเพียงพอสำหรับการจัดทำดัชนีตัวอธิบายของ Vulkan แต่ไม่ใช่สำหรับ D3D12 ข้อจำกัดนี้หมายความว่า CrossOver Mac ไม่สามารถรองรับการผูก Tier 2 ได้ ดังนั้นเกม DirectX 12 จำนวนมากจึงไม่ทำงาน

แม้จะมีความท้าทายเหล่านี้ CodeWeavers ก็หวังว่าเกมและแอพพลิเคชั่น DirectX 12 จะสามารถทำงานได้บน Mac ด้วยการอัพเดต CrossOver 23 ในอนาคต โดยปกติแล้ว CrossOver เวอร์ชันหลักใหม่ๆ จะเกิดขึ้นทุกปี ดังนั้นจึงน่าจะเกิดขึ้นในปี 2023

แม้ว่าคุณจะไม่ได้ใช้ CrossOver การปรับปรุงความเข้ากันได้ส่วนใหญ่ที่พัฒนาโดย CodeWeavers จะถูกส่งไปยังโปรเจ็กต์ Wine นั่นหมายความว่างานของบริษัทสามารถช่วยปรับปรุงเกม Windows บน Lutris ได้ คอนโซล Steam Deck, PlayOnLinux และโปรเจ็กต์อื่น ๆ ที่ใช้ Wine ดังที่กล่าวไปแล้ว เมื่อมีการรองรับ DirectX 12 อย่างเต็มรูปแบบ CrossOver อาจเป็นตัวเลือกที่น่าสนใจสำหรับการเล่นเกม Windows บน Linux นอก Steam