บริษัทวาล์ว
Proton ช่วยให้คุณสามารถรันแอพพลิเคชั่นเกมเฉพาะ Windows ได้โดยตรงในไคลเอนต์ Steam Linux แพ็คเกจนี้รวมการใช้งาน DirectX 10/11 (ขึ้นอยู่กับ
หลัก
- มีการซิงโครไนซ์กับฐานรหัส Wine 4.11 ซึ่งมีการถ่ายโอนการเปลี่ยนแปลงมากกว่า 3300 รายการ (สาขาก่อนหน้านี้ใช้ไวน์ 4.2) แพตช์ 154 รายการจาก Proton 4.2 ได้รับการย้ายไปต้นทางแล้ว และตอนนี้รวมอยู่ในแพ็คเกจไวน์หลักแล้ว
- เพิ่มการสนับสนุนการทดลองสำหรับการซิงโครไนซ์ดั้งเดิมตามการเรียกของระบบ futex() ซึ่งจะช่วยลดภาระของ CPU เมื่อเทียบกับ esync นอกจากนี้การดำเนินการใหม่ยังช่วยแก้ปัญหาความจำเป็นในการใช้งานอีกด้วย
การตั้งค่าพิเศษ สำหรับ esync และตัวอธิบายไฟล์ที่มีอยู่หมดไปสาระสำคัญของงานที่กำลังทำอยู่คือการขยายฟังก์ชันการทำงานของการเรียกระบบ futex() มาตรฐานในเคอร์เนล Linux ด้วยความสามารถที่จำเป็นสำหรับการซิงโครไนซ์เธรดพูลอย่างเหมาะสมที่สุด แพตช์ที่รองรับแฟล็ก FUTEX_WAIT_MULTIPLE ที่จำเป็นสำหรับ Proton มีอยู่แล้ว
โอนแล้ว เพื่อรวมไว้ในเคอร์เนล Linux หลักและglibc . การเปลี่ยนแปลงที่เตรียมไว้ยังไม่รวมอยู่ในเคอร์เนลหลัก ดังนั้นจึงจำเป็นในขณะนี้สร้าง เคอร์เนลพิเศษที่รองรับพื้นฐานเหล่านี้ - อินเตอร์เลเยอร์
ดีเอ็กซ์วีเค (การใช้งาน DXGI, Direct3D 10 และ Direct3D 11 บน Vulkan API) อัปเดตเป็นเวอร์ชัน1.3 และดี9วีเค (การใช้งานทดลองของ Direct3D 9 บน Vulkan) จนถึงเวอร์ชัน 0.13f หากต้องการเปิดใช้งานการสนับสนุน D9VK ใน Proton ให้ใช้แฟล็ก PROTON_USE_D9VK - อัตรารีเฟรชจอภาพปัจจุบันจะถูกส่งไปยังเกม
- มีการแก้ไขเพื่อจัดการกับโฟกัสของเมาส์และการจัดการหน้าต่าง
- แก้ไขความล่าช้าในการป้อนข้อมูลและปัญหาเกี่ยวกับการรองรับการสั่นสำหรับจอยสติ๊กที่เกิดขึ้นในบางเกม โดยเฉพาะอย่างยิ่งในเกมที่ใช้ Unity engine
- เพิ่มการรองรับ OpenVR SDK เวอร์ชันล่าสุด
- ส่วนประกอบ FAudio พร้อมการใช้งานไลบรารีเสียง DirectX (API XAudio2, X3DAudio, XAPO และ XACT3) ได้รับการอัปเดตเป็นรุ่น 19.07;
- ปัญหาเกี่ยวกับระบบย่อยเครือข่ายในเกมบน GameMaker ได้รับการแก้ไขแล้ว
- ขณะนี้โมดูลไวน์จำนวนมากถูกสร้างขึ้นเป็นไฟล์ Windows PE แทนที่จะเป็นไลบรารี Linux ในขณะที่งานในพื้นที่นี้ดำเนินไป การใช้ PE จะช่วยระบบ DRM และป้องกันการโกงบางส่วนได้ หากคุณใช้ Proton builds แบบกำหนดเอง คุณอาจต้องสร้างเครื่องเสมือน Vagrant ขึ้นมาใหม่เพื่อสร้างไฟล์ PE
ก่อนที่แพตช์ของ Valve จะถูกนำมาใช้ในเคอร์เนล Linux หลัก การใช้ futex() แทน esync จำเป็นต้องติดตั้งเคอร์เนลพิเศษที่รองรับพูลการซิงโครไนซ์เธรดที่ใช้งานในชุดแพตช์
หากคุณมีเคอร์เนลที่รองรับ fsync เมื่อคุณรัน Proton 4.11 คอนโซลจะแสดงข้อความ “fsync: up and running” คุณสามารถบังคับให้ปิด fsync ได้โดยใช้แฟล็ก PROTON_NO_FSYNC=1
ที่มา: opennet.ru