Valve เปิดตัว Proton 4.11 ซึ่งเป็นชุดโปรแกรมสำหรับรันเกม Windows บน Linux

บริษัทวาล์ว การตีพิมพ์ สาขาโครงการใหม่ โปรตอน4.11ตามการพัฒนาของโครงการ Wine และมุ่งเป้าไปที่การรับรองการเปิดตัวแอปพลิเคชันเกมที่สร้างขึ้นสำหรับ Windows และนำเสนอในแค็ตตาล็อก Steam บน Linux การพัฒนาโครงการ การแพร่กระจาย ภายใต้ใบอนุญาต BSD เมื่อพร้อม การเปลี่ยนแปลงที่พัฒนาขึ้นใน Proton จะถูกโอนไปยัง Wine ดั้งเดิมและโปรเจ็กต์ที่เกี่ยวข้อง เช่น DXVK และ vkd3d

Proton ช่วยให้คุณสามารถรันแอพพลิเคชั่นเกมเฉพาะ Windows ได้โดยตรงในไคลเอนต์ Steam Linux แพ็คเกจนี้รวมการใช้งาน DirectX 10/11 (ขึ้นอยู่กับ ดีเอ็กซ์วีเค) และ 12 (ขึ้นอยู่กับ vkd3d) ซึ่งทำงานผ่านการแปลการเรียก DirectX เป็น Vulkan API ให้การสนับสนุนที่ได้รับการปรับปรุงสำหรับตัวควบคุมเกมและความสามารถในการใช้โหมดเต็มหน้าจอโดยไม่คำนึงถึงความละเอียดหน้าจอที่รองรับในเกม เมื่อเทียบกับไวน์ดั้งเดิม ประสิทธิภาพของเกมแบบมัลติเธรดเพิ่มขึ้นอย่างมากด้วยการใช้แพตช์ "อีซิงค์"(การซิงโครไนซ์ Eventfd) หรือ "futex/fsync"

หลัก การเปลี่ยนแปลงในโปรตอน 4.11:

  • มีการซิงโครไนซ์กับฐานรหัส Wine 4.11 ซึ่งมีการถ่ายโอนการเปลี่ยนแปลงมากกว่า 3300 รายการ (สาขาก่อนหน้านี้ใช้ไวน์ 4.2) แพตช์ 154 รายการจาก Proton 4.2 ได้รับการย้ายไปต้นทางแล้ว และตอนนี้รวมอยู่ในแพ็คเกจไวน์หลักแล้ว
  • เพิ่มการสนับสนุนการทดลองสำหรับการซิงโครไนซ์ดั้งเดิมตามการเรียกของระบบ futex() ซึ่งจะช่วยลดภาระของ CPU เมื่อเทียบกับ esync นอกจากนี้การดำเนินการใหม่ยังช่วยแก้ปัญหาความจำเป็นในการใช้งานอีกด้วย การตั้งค่าพิเศษ สำหรับ esync และตัวอธิบายไฟล์ที่มีอยู่หมดไป

    สาระสำคัญของงานที่กำลังทำอยู่คือการขยายฟังก์ชันการทำงานของการเรียกระบบ futex() มาตรฐานในเคอร์เนล Linux ด้วยความสามารถที่จำเป็นสำหรับการซิงโครไนซ์เธรดพูลอย่างเหมาะสมที่สุด แพตช์ที่รองรับแฟล็ก FUTEX_WAIT_MULTIPLE ที่จำเป็นสำหรับ Proton มีอยู่แล้ว โอนแล้ว เพื่อรวมไว้ในเคอร์เนล Linux หลักและ glibc. การเปลี่ยนแปลงที่เตรียมไว้ยังไม่รวมอยู่ในเคอร์เนลหลัก ดังนั้นจึงจำเป็นในขณะนี้ สร้าง เคอร์เนลพิเศษที่รองรับพื้นฐานเหล่านี้

    Valve เปิดตัว Proton 4.11 ซึ่งเป็นชุดโปรแกรมสำหรับรันเกม Windows บน Linux

  • อินเตอร์เลเยอร์ ดีเอ็กซ์วีเค (การใช้งาน 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 จำเป็นต้องติดตั้งเคอร์เนลพิเศษที่รองรับพูลการซิงโครไนซ์เธรดที่ใช้งานในชุดแพตช์ เอฟซิงค์. สำหรับ Arch Linux ใน AUR แล้ว การตีพิมพ์ แพ็คเกจเคอร์เนลสำเร็จรูปที่คอมไพล์ด้วยแพตช์ fsync บน Ubuntu 18.04 และ 19.04 คุณสามารถใช้เคอร์เนลทดลอง linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

หากคุณมีเคอร์เนลที่รองรับ fsync เมื่อคุณรัน Proton 4.11 คอนโซลจะแสดงข้อความ “fsync: up and running” คุณสามารถบังคับให้ปิด fsync ได้โดยใช้แฟล็ก PROTON_NO_FSYNC=1

ที่มา: opennet.ru

เพิ่มความคิดเห็น