-
บล็อกโพสต์ที่อ่านเมื่อวานพูดถึงผู้ใช้ Linux ที่กำลังถกเถียงกันเรื่องความไม่พอใจต่อ input latency บน Wayland ผู้ใช้รายนี้อธิบายประสบการณ์เชิงอัตวิสัย แต่ไม่สามารถแสดงหลักฐานที่ชัดเจนได้
-
ผู้เขียนซึ่งเป็นผู้ใช้ Wayland ก็มีความรู้สึกร่วมกันว่าความหน่วงของเคอร์เซอร์มากกว่า X11 แม้ว่าการทดลองก่อนหน้าจะถูกจำกัดด้วยกล้อง 90 FPS แต่ผู้เขียนคิดว่าการใช้กล้อง 240 FPS น่าจะให้ผลลัพธ์ที่ชัดเจนกว่า
การออกแบบการทดลอง
- ผู้เขียนตั้งกล้องให้เห็นทั้งหน้าจอและโต๊ะ โดยให้เมาส์เคอร์เซอร์และมืออยู่ในเฟรม แล้วบันทึกวิดีโอขณะขยับเมาส์ซ้ำ ๆ
- บันทึกอย่างละ 16 ครั้งในเซสชัน Wayland และ X11 จากนั้นแปลงไฟล์วิดีโอผลลัพธ์เป็นชุดภาพ JPEG แล้วนับตั้งแต่เฟรมที่เมาส์เริ่มขยับจนถึงเฟรมที่เคอร์เซอร์เริ่มขยับ
รายละเอียดฮาร์ดแวร์
- ดิสโทร: Fedora Workstation 41
- เวอร์ชัน GNOME: 47
- CPU: AMD Ryzen 9 5950X
- GPU: AMD Radeon RX 7900XT
- จอภาพ: Gigabyte M32U (4k IPS @ 144.99, ไม่มีการสเกล DPI)
- เมาส์: Logitech G502 Lightspeed
- กล้อง: iPhone 15 Pro, สโลว์โมชัน 240 FPS
ข้อจำกัด
- 240 FPS ก็ยังไม่เพียงพอ บนหน้าจอ 144Hz จะได้ไม่ถึงสองเฟรมของกล้องต่อการรีเฟรชหน้าจอหนึ่งครั้ง
- พิกเซลไม่ได้สลับทันที จึงมีเฟรมที่กำกวมซึ่งเคอร์เซอร์เริ่มมองเห็นได้เล็กน้อยในตำแหน่งใหม่
- การบันทึกวิดีโอมีเฟรมซ้ำรวมอยู่ด้วย ซึ่งผู้เขียนตีความเป็นการผ่านไปของเวลาและนำมาคำนวณตามปกติ
ผลลัพธ์
- ค่าเฉลี่ยความหน่วงของ GNOME X11 อยู่ที่ 16.7ms ส่วน Wayland อยู่ที่ 23.2ms โดย Wayland มี cursor latency มากกว่า X11 ประมาณ 6.5ms
- ยังไม่แน่ชัดว่าความต่างนี้มีนัยสำคัญทางสถิติหรือไม่ แต่เห็นความแตกต่างที่ชัดเจนและสม่ำเสมอ
บทสรุป
- ผลลัพธ์นี้พิสูจน์ว่ามีความแตกต่างของ input latency ระหว่าง X11 กับ Wayland และจำเป็นต้องมีการทดสอบเพิ่มเติมกับฮาร์ดแวร์และอัตรารีเฟรชอื่น ๆ
- การทดสอบนี้ไม่ได้พิสูจน์ว่า Wayland มี input latency ในเกมสูงกว่า X11 เพราะอาจเป็นความหน่วงที่จำกัดอยู่เฉพาะเคอร์เซอร์เท่านั้น จึงยังต้องมีการทดสอบเพิ่มเติม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีความเห็นว่าการออกแบบการทดลองด้วยวิธีการทางวิทยาศาสตร์เป็นสิ่งสำคัญ ไม่ทราบเหตุผลของความหน่วงเพิ่มเติมใน Wayland แต่ในช่วงแรกของ X11 ก็มีเสียงบ่นเรื่องความหน่วงของหน้าจอมากเช่นกัน Wayland เป็นเทคโนโลยีที่ใหม่กว่า X11 จึงยังไม่ได้รับการตรวจสอบอย่างเพียงพอ
อธิบายวิธีใช้
ffmpegเพื่อดึง "เวลาแสดงผล" ของแต่ละเฟรมในวิดีโอ โดยสามารถทำงานคล้ายกันได้ในเว็บเบราว์เซอร์ และหากคอมพิวเตอร์ไม่สามารถถอดรหัสทุกเฟรมได้เร็วพอ อาจต้องตั้งค่า.playbackRateให้ต่ำลงบนหน้าจอ 144Hz นั้น Wayland มีความหน่วงของเคอร์เซอร์มากกว่า X11 โดยเฉลี่ยประมาณ 6.5ms ซึ่งเกือบเท่ากับการรีเฟรชหน้าจอ 1 ครั้ง และบนจอ 60Hz ก็อาจเท่ากับ 1/60 วินาที คนส่วนใหญ่อาจอธิบายไม่ได้ แต่สามารถรู้สึกถึงความแตกต่างได้
ผลลัพธ์อาจแตกต่างกันไปตาม compositor, GPU และการตั้งค่า ส่วน X11 ใช้การติดตั้งใช้งาน X server เพียงแบบเดียว จึงมีความแตกต่างลักษณะนี้น้อยกว่า อาจมีปัญหาที่หลายชุดค่าผสมของ compositor/GPU ไม่สามารถใช้ hardware cursor plane ได้
Wayland มีอายุ 16 ปีแล้ว และอีกไม่กี่ปีก็จะมีอายุใกล้เคียงกับตอนที่ X เพิ่งออกมาในช่วงแรก แต่ก็ยังมีความเห็นว่ามันยังแย่กว่า X
มีความเห็นว่าความพยายามทำโซลูชันเดิมให้ดูทันสมัยและดูแลรักษาง่ายขึ้นนั้นไม่ได้ประสบความสำเร็จเสมอไป และมีคำวิจารณ์ว่านักพัฒนารุ่นใหม่ขาดความรู้ด้านประสิทธิภาพและการปรับแต่งประสิทธิภาพ
เมื่อ GPU ทำงานหนักเกินไปจะเกิดอาการความหน่วงพุ่งสูงเป็นช่วง ๆ แม้จะไม่ได้ทดสอบเทียบกับ X11 แต่ก่อนหน้านี้ไม่เคยมีปัญหาแบบนี้ ความหน่วงเพิ่มขึ้นอีกหนึ่งเฟรมก็แย่อยู่แล้ว และอาการความหน่วงที่พุ่งขึ้นเป็นครั้งคราวก็น่ารำคาญมาก
บน iPhone สามารถใช้
isitsnappy.comวัดได้อย่างรวดเร็ว และยืนยันได้ว่าในเกมแนวจังหวะบน Steam Deck ที่ต่อเข้ากับทีวีมีความหน่วง 100msหาก Wayland ช้ากว่า X11 อยู่หนึ่งเฟรมเสมอ ก็น่าจะคุ้มที่จะลองทำการทดลองซ้ำโดยตั้งค่าจอภาพให้มีอัตรารีเฟรชต่ำมาก
เรื่องนี้น่าจะขึ้นอยู่กับ compositor และมีคนสงสัยว่าเป็นปัญหาของ mutter โดยเฉพาะ หรือว่าสามารถทำให้เกิดซ้ำได้บน kwin ด้วย
มีความเห็นว่าตนเองไม่มีความเชี่ยวชาญด้านสถิติมากพอที่จะวิเคราะห์ได้ว่าความแตกต่างนั้นมีนัยสำคัญทางสถิติหรือไม่ โดยค่าสถิติ two-sample t-test คือ -4.74 และค่า p-value คือ 4.20e-05