Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

Linux ก้าวหน้าอย่างลافتนับในปีที่ผ่านมาในด้านการเข้าถึงสำหรับเกมเมอร์ทุกแนวตั้ง แม้จะมีความท้าทายด้านความเข้ากันได้ของเกมจากแหล่งหลากหลาย รวมถึงความสม่ำเสมอของ frame rate เราอยู่ที่นี่เพื่อสำรวจว่าทำไมเกมที่ไม่ได้ต้องการทรัพยากรมากนัก ถึงสUFFER อย่างไม่คาดคิด แม้จะ port มาเล่นบน Linux โดยเฉพาะ

บางครั้ง OpenGL คือทั้งสิ่งที่คุณมี

OpenGL เป็นวิธีสร้าง 3D rendering แบบ cross-platform โดยไม่ต้อง port ทุกอย่าง หากนักพัฒนาพยายามเผยแพร่เกมสำหรับ Windows, Linux และ Mac เส้นทางที่ต้านทานน้อยที่สุดคือ focus ความละเอียดที่มากที่สุดบนกลุ่มผู้ใช้ใหญ่ที่สุด (Windows, DirectX) และ port เกมด้วย OpenGL ให้คนอื่น

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

เนื่องจาก OpenGL ไม่สื่อสารกับ GPU โดยตรงเท่า DirectX และ Vulkan ทำให้พึ่งพา CPU มากกว่า และนำไปสู่ประสิทธิภาพที่ลดลงในหลายสถานการณ์

ตั้งแต่ MoltenVK มีให้ Mac และคนสามารถรัน Vulkan บน OS ยอดนิยมทั้งหมด API ที่ใช้จึงเป็นเรื่องเลือกได้ นักพัฒนาเกมใหม่สามารถข้าม OpenGL ไปเลย และพึ่งพา Vulkan เพียงอย่างเดียว แต่ไม่อาจปฏิเสธว่าเกมจำนวนมากที่ port มาบน Linux ยังคงพึ่งพา OpenGL ซึ่งไม่สามารถแข่งขันประสิทธิภาพกับ DirectX ในสถานการณ์ที่ต้องการประสิทธิภาพสูง

Vulkan ยังมีสิ่งที่ต้องเอาชนะ

คำตอบของ Linux สำหรับ DirectX คือ Vulkan ซึ่งเป็นลูกประดิษฐ์ขององค์กรและนักพัฒนาอิสระกว่า 170 ราย ที่ตัดสินใจเป็นชุมชนให้ high-performance low-level API ใช้ได้บนทุกแพลตฟอร์ม ตั้งแต่ปล่อยเมื่อกุมภาพันธ์ 2016 กลายเป็น juggernaut และ (ปากเปล่าหมายเล่นคำ) game-changer สำหรับนักพัฒนากราฟิกทั่วโลก ทำได้เกินคาด และในหลายกรณี เกินประสิทธิภาพ DirectX

เรื่องราวดีนะ แตถ้าคุณประสบ stuttering บนเกมที่ port มา Linux ด้วย Vulkan API ความสำเร็จอันยิ่งใหญ่นี้อาจไม่น่าประทับใจมากนัก จริงๆ แล้ว Vulkan มีข้อบกพร่องบ้าง ไม่ว่าจะเป็น on-screen stability

การวิเคราะห์ของ HWRIG เปรียบเทียบประสิทธิภาพระหว่าง Windows DX12 และ Vulkan ด้วย benchmarking tools แสดงว่าแม้ Vulkan ให้ average frame rates สูงกว่า DX 5% แต่ minimum frame rate ต่ำกว่า

สิ่งนี้แปลว่าในการใช้งานจริง มี stuttering เกิดขึ้นบ่อยขึ้นเมื่อจัดการกับ graphical load รุนแรง แต่ยังสำคัญที่จะทราบว่า Vulkan ยังคง fantastique เมื่อเกมถูกออกแบบรอบตัว Vulkan แทนที่จะ port เป็นหลักการหลัง

ตัวอย่างดีคือ Valheim survival sandbox ที่ปล่อยเมื่อกุมภาพันธ์ 2021 การบังคับให้รันบน Vulkan เพิ่มประสิทธิภาพอย่างน่าสังเกตเทียบกับ DX12

อาจไม่ได้เกี่ยวกับ GPU เลย

ใน Linux เหมือนใน Windows CPU performance ถูกกระทบโดย power management settings ของระบบ หากคุณเล่นเกมที่ CPU-heavy โดยไม่ใช้ GPU มาก (เช่น grand-strategy map-painting game เช่น Hearts of Iron หรือ Europa Universalis) และประสบการลดประสิทธิภาพ Linux อาจกำลังผลัก CPU ไปที่ governor "powersave" เกิดบ่อยหากคุณอยู่บน laptop ที่รันบนแบตเตอรี่

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

ส่วนใหญ่ modern CPUs และ powersave governor ทำงานร่วมกันได้ดี แต่ยังบางครั้งให้ input lag ที่สังเกตได้ขณะเล่นเกม เพื่อแก้ไข ใช้ auto-cpufreq ทำให้ laptop ประหยัดแบตเตอรี่มากขึ้น และเพิ่ม CPU performance โดยสลับ governor ไป "performance" เมื่อจำเป็นที่สุด

Linux Ports ยังเป็น (ส่วนใหญ่) หลักการหลัง

แม้ share ของ Linux ในพายของทุก desktop platforms จะเพิ่มขึ้นอย่างต่อเนื่องในทศวรรษที่ผ่านมา จนถึงค่าปัจจุบัน 2.4% ยังต่ำมากเทียบกับยักษ์ใหญ่ที่แข่งขันคือ Apple และ Microsoft น่าเสียดายที่นักพัฒนาเกมหลายคนจะ port ผลิตภัณฑ์ไป Linux อย่างรวดเร็วโดยไม่ใส่ใจ optimization มากนัก ณ จุดนั้น พวกเขา focus บน release deadline มากกว่าการทำให้ 2.4% ของผู้เล่นที่เป็นไปได้พอใจ

นอกจาก performance issues ในช่วงหลังกลาง 2010s ชุมชน Linux gaming ได้รับความรักมากขึ้นในรูปของตัวเลือก gameplay ที่ยอมรับได้ และประสิทธิภาพที่ดีขึ้น ผลมาจากความพยายามของทั้ง Linux developers และ publishers ของเกมเอง

ปัญหา Graphics Driver

สิ่งแรกที่ต้องชี้แจง หากคุณไม่ได้ประสบประสิทธิภาพเท่าเดิมบนเกมที่ port มาเทียบกับเวอร์ชันระบบอื่น คือ graphics driver หากใช้ Noveau หรือ default open-source driver อื่นๆ นี่คือสาเหตุที่น่าจะเป็นไปได้มากที่สุด

เพื่อให้ได้ framerate ที่ดีที่สุดบนเกมของคุณ ยกเว้นข้อจำกัดอื่นๆ ต้องติดตั้ง latest drivers สำหรับ GPU หากใช้การ์ด Nvidia บน Ubuntu หรือ Debian-based Linux distributions อื่นๆ ดู คู่มือติดตั้ง proprietary drivers

ปัญหา Dual Monitor

หากคุณใช้สองจอมอนิเตอร์บน distro และรำคาญกับ poor FPS performance เมื่อเล่นเกม ลองถอดจอหนึ่งออกและ restart เกม คุณได้ buttery-smooth performance ทันทีไหม?

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

ถ้าคำตอบ "ใช่" คุณอาจช่วยแก้ปัญหานี้ได้โดยปรับ Nvidia graphics settings บ้าง บางครั้ง display scaling ทำงานไม่ค่อยดีกับ dual-monitor setups อาจช่วยได้หากย้ายงานนั้นไปที่ GPU เอง

ไปที่ Nvidia control panel ไปที่ "Adjust desktop size and position" เลือก "GPU" จาก drop-down menu ใต้ "Perform scaling on"

ทำไมเกมบน Linux ถึงลैग? เหตุผลที่เป็นไปได้

หลังทำแล้ว หากยังไม่สังเกตการเพิ่มประสิทธิภาพ ตรวจสอบว่าไม่มี bottlenecks อื่นในฮาร์ดแวร์ ตรวจสอบว่า CPU และ RAM เพียงพอสำหรับรันเกมและ render สิ่งที่อยู่บนจออีกตัว ใน worst case ต้องยอมปิดจอที่สองก่อนเล่นเกม จนกว่าจะแก้ bottleneck ฮาร์ดแวร์ได้

คำถามที่พบบ่อย

1. OpenGL แย่ทั่วไปไหม?

แค่ Vulkan และ DX เกิน OpenGL ในประสิทธิภาพโดยรวม ไม่ทำให้ OpenGL irrelevant เกมที่ไม่พึ่งพาสภาพแวดล้อมกราฟิกส์รายละเอียดมาก (เช่น Factorio, EU IV, HoI4 ฯลฯ) ไม่ต้องการประสิทธิภาพเพิ่มจาก lower-level APIs การ port ทั้งหมดไป Vulkan ไม่สมเหตุสมผลจากมุมมอง development เพราะสร้างความยุ่งยากที่หลีกเลี่ยงได้ด้วย OGL ที่ง่ายกว่า

จากมุมมองนักพัฒนา หากหลีกเลี่ยง Vulkan หรือ DirectX เพื่อบีบประสิทธิภาพเกม คุณสามารถ focus มากขึ้นที่การขัดจังหวะผลิตภัณฑ์ก่อนปล่อยและดูแลหลังปล่อย นี่คือประโยชน์ที่มองไม่เห็นต่อผู้เล่น ที่จงตัวออกมาในรูปของประสบการณ์เล่นเกมที่ดีขึ้นโดยรวม

2. CPU governor คืออะไร?

CPU governor คือวิธีของ OS บอก CPU ให้ใช้ช่วง clock frequencies ไหน performance governor จะบอก CPU ให้ดูดพลังงานเท่าที่อยากทำอะไรก็ได้ ขณะที่ power-saving governor จะควบคุม CPU ให้ prioritize lower power usage

3. อะไรอีกที่ทำได้เพื่อปรับปรุง gaming performance บน Linux?

นอกจากคำแนะนำในบทความนี้ นี่คือสิ่งเพิ่มเติมที่ช่วยได้:

  • อัปเดต drivers ให้แน่ใจว่า OS รู้จักสื่อสารกับ GPU อย่างมีประสิทธิภาพที่สุด
  • อัปเดต kernel ให้ Linux พร้อมทำงานกับฮาร์ดแวร์อย่างปลอดภัยและมีประสิทธิภาพ
  • ลอง desktop environments ต่างๆ เช่น KDE, GNOME, Budgie, หรือ LXDE อาจสังเกตประสิทธิภาพดีกว่าบางตัว ผมสังเกต performance issues กับ XFCE ใน graphical environments และผู้ใช้ Linux จำนวนมากรายงานเหมือนกัน ซึ่งเป็นเหตุผลที่ผมไม่ได้กล่าวถึง desktop environment นี้

สรุป

สำคัญที่จะวาดภาพให้เห็นภาพจริง: Linux ไม่ใช่ OS ที่สมบูรณ์สำหรับเกมเมอร์ แต่มันก็ ดีกว่า คู่แข่งหลายเท่า ในขณะที่นักพัฒนานำชุมชน Linux มานำเสนออย่างจริงจัง พวกเขาก็พยายาม optimize เกมของพวกเขาสำหรับ OS มากขึ้น

ตั้งแต่ช่วงที่หยุดภัยในต้นๆ ปี 2000s Linux ก้าวหน้ามากในหลายแวดวง และเพิ่งเริ่มเจริญเติบโตเป็น OS ที่ต้อนรับผู้ที่อยากนำเกมมารัน Proton ของ Steam ที่ใช้ libraries เช่น VKD3D ทำให้เกมที่ exclusive Windows เล่นบน Linux ได้เต็มที่

คุณก็สามารถมีส่วนร่วมได้ โดยไปที่ discussion boards ของเกมโปรด และเปิดเสียงเป็น Linux gamer สำคัญที่จะให้นักพัฒนารู้ว่า non-Windows demographic ประกอบด้วยคนจริง ไม่ใช่แค่ tiny segment ของ usage และ purchase statistics

คุณควรดู คุณสมบัติสำคัญที่ทำให้จอมอนิเตอร์เหมาะสำหรับเล่นเกม ด้วย