- เปรียบเทียบ Wayland กับ X11 โดยถ่าย ความหน่วงอินพุตของเคอร์เซอร์ ในสภาพแวดล้อม Fedora Workstation 41·GNOME 47 ด้วยสโลว์โมชัน 240 FPS
- บันทึก ความหน่วงเป็นจำนวนเฟรม ของ Wayland 16 ครั้งและ X11 16 ครั้ง โดยนับตั้งแต่เฟรมที่เมาส์เริ่มขยับจนถึงเฟรมที่เห็นเคอร์เซอร์อยู่ในตำแหน่งใหม่
- GNOME X11 วัดได้เฉลี่ย 4 เฟรม·16.7ms·2.4 รอบรีเฟรชหน้าจอ ส่วน GNOME Wayland วัดได้เฉลี่ย 5.5625 เฟรม·23.2ms·3.3 รอบรีเฟรชหน้าจอ
- ในระบบดังกล่าว Wayland มี ความหน่วงของเคอร์เซอร์สูงกว่า X11 โดยเฉลี่ยประมาณ 6.5ms และส่วนต่างเกือบเท่ากับการรีเฟรชหน้าจอ 1 ครั้ง
- ผลลัพธ์แสดงเฉพาะ ความแตกต่างของความหน่วงเคอร์เซอร์ ในชุด GNOME/AMD เท่านั้น ไม่ใช่หลักฐานว่า Wayland มีความหน่วงอินพุตสูงกว่าในเกมหรือแอปกราฟิกทั่วไป
ทำไมจึงวัด
- ผู้ใช้ Linux รายหนึ่งทำการทดลองเพื่อหาค่า ตัวเลขที่เป็นรูปธรรม แทนความรู้สึกส่วนตัว หลังจากมีบทความ Wayland Cursor Lag: Just give me a break already... ที่พูดถึงข้อร้องเรียนเรื่องความหน่วงอินพุตของ Wayland
- จุดเริ่มต้นของการทดลองคือ แม้โดยรวมจะพอใจกับการใช้งาน Wayland แต่รู้สึกว่าอาจมี ความหน่วงของเคอร์เซอร์ มากกว่า X11
- เห็นว่ากล้องมือถือ 90 FPS ในบทความเดิมยังไม่เพียงพอสำหรับตัดสินความแตกต่างระดับหนึ่งรอบรีเฟรชหน้าจอ จึงใช้โหมดถ่าย 240 FPS
วิธีการวัด
- ใช้กล้องมือถือถ่ายหน้าจอ โต๊ะ เคอร์เซอร์เมาส์ เมาส์ และมือพร้อมกัน ขณะใช้นิ้วดีดเมาส์ซ้ำ ๆ
- ถ่ายในเซสชัน GNOME Wayland 16 ครั้ง จากนั้นล็อกอินเข้าเซสชัน GNOME X11 แล้วถ่ายอีก 16 ครั้งด้วยวิธีเดียวกัน
- แปลงวิดีโอที่ถ่ายเป็น เฟรม JPEG ด้วยคำสั่ง
ffmpeg -i <input file> %04d.jpg - นับความหน่วงเป็นเฟรมตามเกณฑ์ต่อไปนี้
- เริ่มนับจากเฟรมแรกที่เห็นว่าเมาส์ขยับ
- นับจนถึงเฟรมแรกที่เห็นชัดว่าเคอร์เซอร์ขยับไปตำแหน่งใหม่
- นับรวมทั้งเฟรมเริ่มต้นและเฟรมสิ้นสุด
- ตัวอย่างเช่น หากเมาส์ขยับที่เฟรม 1045 และเคอร์เซอร์ขยับที่เฟรม 1047 จะบันทึกเป็นความหน่วง 3 เฟรม
สภาพแวดล้อมทดสอบ
- ฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ทดลองมีดังนี้
- ดิสทริบิวชัน: Fedora Workstation 41
- เวอร์ชัน GNOME: 47
- CPU: AMD Ryzen 9 5950X
- GPU: AMD Radeon RX 7900XT
- จอภาพ: Gigabyte M32U, 4K IPS, 144.99Hz, ไม่มี DPI scaling
- เมาส์: Logitech G502 Lightspeed
- กล้อง: iPhone 15 Pro, สโลว์โมชัน 240 FPS
ข้อจำกัดในการวัด
- แม้ 240 FPS ก็ยังมีเฟรมกล้องน้อยกว่า 2 เฟรมต่อการรีเฟรชหน้าจอหนึ่งครั้งบนหน้าจอ 144Hz จึงเกิด ความแปรผันแบบสุ่ม ได้
- เนื่องจากพิกเซลไม่ได้เปลี่ยนสถานะทันที จึงมี เฟรมที่กำกวม ซึ่งเคอร์เซอร์เริ่มปรากฏจาง ๆ ในตำแหน่งใหม่
- แม้เคอร์เซอร์ยังไม่สว่างเต็มที่ แต่หากเห็นชัดในตำแหน่งใหม่ ก็ถือว่าเคอร์เซอร์ขยับแล้ว
- วิดีโอจาก iPhone มี เฟรมซ้ำ บางส่วน โดยไม่ทราบสาเหตุ
- เฟรมซ้ำถูกนับเหมือนเฟรมปกติ โดยถือว่าเวลาผ่านไปหนึ่งเฟรม
- ปัจจัยเหล่านี้ทำให้ผลลัพธ์มีความไม่แน่นอน แต่คาดว่าจะส่งผลต่อ Wayland และ X11 เหมือนกัน และจะถูกเฉลี่ยออกหากมีข้อมูลเพียงพอ
- ไม่ได้ทดสอบ Wayland compositor อื่นนอกเหนือจาก GNOME หรือไดรเวอร์ GPU อื่นนอกเหนือจาก AMD ดังนั้นผลลัพธ์อาจต่างออกไปในชุดอื่น
ผลการวัด
- ค่าที่วัดได้ 16 ครั้งของ GNOME X11 คือ
5, 4, 3, 4, 5, 4, 6, 5, 1, 4, 4, 4, 3, 4, 4, 4เฟรม- ค่าเฉลี่ย: 4 เฟรม
- เวลาหน่วง: 16.7ms
- การรีเฟรชหน้าจอ: 2.4 ครั้ง
- ค่าที่วัดได้ 16 ครั้งของ GNOME Wayland คือ
6, 5, 6, 5, 5, 6, 6, 4, 8, 6, 5, 5, 5, 6, 5, 6เฟรม- ค่าเฉลี่ย: 5.5625 เฟรม
- เวลาหน่วง: 23.2ms
- การรีเฟรชหน้าจอ: 3.3 ครั้ง
- ในระบบนี้ Wayland มีความหน่วงของเคอร์เซอร์สูงกว่า X11 โดยเฉลี่ยประมาณ 6.5ms
- แม้ไม่มีความเชี่ยวชาญพอจะวิเคราะห์อย่างถูกต้องว่ามีนัยสำคัญทางสถิติหรือไม่ แต่จากค่าที่วัดได้ ดูเหมือนมีความแตกต่างที่ชัดเจนและสม่ำเสมอ
- ส่วนต่างเกือบเท่ากับ การรีเฟรชหน้าจอ 1 ครั้ง และไม่ทราบว่าเป็นเรื่องบังเอิญหรือไม่
ข้อสรุปและขอบเขตการตีความ
- การทดลองนี้แสดงให้เห็นว่า บนฮาร์ดแวร์เฉพาะชุดหนึ่ง มี ความแตกต่างของความหน่วงอินพุต ระหว่าง X11 และ Wayland และอาจมากพอที่ผู้ใช้บางคนจะสังเกตได้
- หากต้องการทำความเข้าใจขอบเขตและขนาดของปัญหาให้ชัดเจน จำเป็นต้องทดสอบเพิ่มเติมกับฮาร์ดแวร์และอัตรารีเฟรชหน้าจอที่หลากหลายกว่าเดิม
- ขนาดของความแตกต่างอาจเปลี่ยนไปตามปัจจัยอย่าง compositor ที่ใช้และอัตรารีเฟรชหน้าจอ
- การทดลองเพิ่มเติมใช้เวลามาก จึงมีความเป็นไปได้สูงว่าจะไม่ได้ทำเอง
- การทดสอบนี้ไม่ได้แสดงว่า Wayland มีความหน่วงอินพุตโดยรวมสูงกว่า X11
- โดยเฉพาะอย่างยิ่ง ไม่ใช่หลักฐานว่า Wayland มีความหน่วงอินพุตสูงกว่าในเกม
- เป็นไปได้ว่าความหน่วงที่เพิ่มขึ้นเป็น เฉพาะเคอร์เซอร์
- เข้าใจว่าเคอร์เซอร์ถูกจัดการแตกต่างจากแอปกราฟิกทั่วไปมาก
- การที่ Wayland มีความหน่วงอินพุตสูงกว่า X11 ในเกมหรือไม่ จำเป็นต้องทดสอบแยกต่างหาก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เป็นแนวทางที่ยอดเยี่ยม ดูเหมือนผู้คนมักจะเดาเรื่องที่สามารถ ตรวจสอบเชิงทดลอง ได้บ่อยเกินไป หลังจากเรียนรู้วิธีการทางวิทยาศาสตร์แล้ว ผมมักถูกดึงไปทาง “ลองออกแบบการทดลองกันเถอะ” เสมอ
ไม่รู้ว่าทำไม Wayland ถึงมี latency เพิ่มขึ้น แต่ในฐานะคนที่อยู่ในคอมมูนิตี้คอมพิวเตอร์ตั้งแต่ยุคที่ X11 เพิ่งออกมา ผมบอกได้ว่าตั้งแต่ช่วงแรก ๆ ก็มีเสียงบ่นเรื่องความหน่วงของหน้าจอไม่ขาดสายแล้ว ไม่ว่าจะเป็นการตอบสนองของเคอร์เซอร์หรือการเลื่อนใน xterm ก็เหมือนกัน
ตอนที่ “เวิร์กสเตชัน” ปรากฏขึ้น บางเครื่องมีฮาร์ดแวร์แสดงผลแยกต่างหากสำหรับเมาส์โดยเฉพาะ เป็นอุปกรณ์เพื่อลดความหน่วงในการเรนเดอร์เมาส์ลงในเฟรม และยังมีสิทธิบัตร XOR อันเลื่องชื่อด้วย: https://patents.google.com/patent/US4197590
เพราะเสียงบ่นเหล่านี้ เส้นทางโค้ดตั้งแต่อินพุตคีย์บอร์ด/เมาส์ไปจนถึงการสะท้อนผลบนหน้าจอจึงถูกทบทวนอยู่เสมอว่าจะทำให้ “เร็วขึ้น หน่วงน้อยลง” ได้อย่างไร Wayland ค่อนข้าง “ใหม่” เมื่อเทียบกับ X11 จึงยังไม่ได้ถูกพิสูจน์มายาวนานเท่า แต่ก็หวังว่าผู้คนจะช่วยกันแก้ไขต่อไป
plane สามารถอัปเดตหรือเปลี่ยนตำแหน่งได้โดยไม่ต้องวาดหน้าจอส่วนที่เหลือใหม่ ภาพหน้าจอทั่วไปอยู่บน primary plane ส่วนการเลื่อนเคอร์เซอร์ก็ใกล้เคียงกับการ commit ตำแหน่ง plane ใหม่
latency อินพุตที่ GNOME Mutter ซึ่งเป็นเซิร์ฟเวอร์ Wayland ที่ใช้ในที่นี้เพิ่มเข้ามา น่าจะเป็นปัญหาเรื่องกลยุทธ์ timing ของการ sampling อินพุตและการ commit เป็นหลัก แต่ละเซิร์ฟเวอร์มีกลยุทธ์และลำดับความสำคัญต่างกัน จึงมีข้อดีข้อเสียต่างกัน
Wayland เป็นโปรโตคอล จึงไม่ได้เข้าไปเกี่ยวข้องกับกระบวนการกำหนดตำแหน่งเคอร์เซอร์โดยทั่วไป ดังนั้นปัญหานี้จึงเป็นเรื่องภายใน implementation และการ optimize ของ display server ทั้งหมด ในระดับโปรโตคอล สิ่งที่เกิดขึ้นก็แค่ให้ client ตั้งค่าภาพเคอร์เซอร์ และแจ้งตำแหน่งเคอร์เซอร์ให้ client ทราบเท่านั้น
เท่าที่จำได้ สถานการณ์เริ่มแย่ลงเมื่อ glamour ปรากฏใน Xorg เมื่อเส้นทางการเรนเดอร์เคอร์เซอร์ไม่ปลอดภัยที่จะรันใน signal handler อีกต่อไป ซึ่งถ้าใช้ OpenGL เป็นฐานก็ย่อมเป็นแบบนั้นอยู่แล้ว latency จึงแย่ลงไปอีก
สมัยก่อนแม้เครื่อง Linux จะกำลัง thrashing อยู่ pointer ของเมาส์ก็ยังตอบสนองต่อไป และเป็นตัวบ่งชี้ที่เชื่อถือได้ว่าคอร์เนลค้างหรือไม่ ถ้า pointer ไม่ตอบสนองเร็วพอ มักเป็นกรณีที่ต้องเปิด unmask irq ด้วย hdparm บนโฮสต์ IDE/PATA pointer ที่ไม่ตอบสนองใน XFree86 เป็นสัญญาณที่มีประโยชน์มากว่ามีอะไรผิดปกติหรือการตั้งค่าผิดพลาด คิดถึงวันเหล่านั้นจริง ๆ
ผมเข้าใจว่าการบ่นซอฟต์แวร์ฟรีเป็นอย่างไร แต่สิ่งนี้ถูก บังคับให้ย้าย ไปสู่สิ่งที่แย่กว่ามานานเกินไปแล้ว การนำ Wayland มาใช้ควรตั้งอยู่บนสมมติฐานว่ามันเหนือกว่าแทบจะครอบคลุมทั้งหมดในทุกความต้องการด้านอินพุตและการแสดงผล
ผู้ผลิต Intel, AMD, Nvidia, Arm ควรรวมพลังกันผ่านคอนซอร์เทียมเพื่อผลักดันเดสก์ท็อป Linux ที่ใช้งานได้จริงอย่างเต็มที่ รัฐบาลก็ควรทำเช่นเดียวกัน เพราะเดสก์ท็อป Linux ที่ปลอดภัยนั้นเป็นไปได้จริง และเป็นเส้นทางที่เร็วที่สุดในการแสดงศักยภาพของ CPU, ฟังก์ชัน 3D และฮาร์ดแวร์เวกเตอร์/คอมพิวต์ขั้นสูง
Wayland ปรากฏขึ้นในช่วงที่ Windows กำลังพยายามทำลายตัวเองด้วย UI แบบ tile ที่ย่ำแย่ และช่วงที่ Apple ดื้อดึงปฏิเสธมูลค่าตลาดเพิ่มเติมที่อาจได้หากปล่อย macOS สำหรับ x86 ทั่วไป จึงกลายเป็นการเพิ่มความล่าช้าให้เดสก์ท็อป Linux เข้าไปอีก
ส่วนที่ต้องใช้เทคนิคคือเวลาลากหน้าต่างหรือไอคอน ตอนนั้น latency ของ swapchain จะเริ่มปรากฏให้เห็น compositor บางตัวเห็นว่าอัตรารีเฟรชสูงช่วยให้ latency ดูน้อยลงแล้วจึงไม่ใส่ใจอีกต่อไป เช่น macOS ส่วน Windows ดูเหมือนจะสลับไปใช้เคอร์เซอร์เมาส์แบบซอฟต์แวร์ระหว่างการลาก
แอปเต็มหน้าจอควรใช้ fast path ที่ผ่าน compositor หรือข้าม compositor ไปเลย
ถ้าใครใช้ ffmpeg สำหรับการวิเคราะห์เป็นรายเฟรมแบบนี้ สามารถใช้
ffmpeg -skip_frame nokey -i file -vsync 0 -frame_pts true out%d.pngเพื่อดู เวลาที่แสดงผล ของแต่ละเฟรมในวิดีโอได้ วิธีนี้แม่นยำกว่าการ dump เฟรมแล้วคำนวณ timestamp เองในเว็บเบราว์เซอร์ก็ทำคล้ายกันได้โดยใช้
requestVideoFrameCallback()ระหว่างเล่นวิดีโอ แต่ถ้าคอมพิวเตอร์ถอดรหัสทุกเฟรมได้ไม่เร็วพอ อาจต้องลด.playbackRateลงการที่ Wayland บนหน้าจอ 144Hz ช้ากว่า X11 โดยเฉลี่ยประมาณ 6.5ms และความต่างนั้นเกือบเท่ากับการรีเฟรชหน้าจอหนึ่งครั้ง อาจไม่ใช่เรื่องบังเอิญ ถ้า latency เกือบเท่ากับ 1/144 วินาที บนจอ 60Hz ทั่วไปก็อาจกลายเป็น 1/60 วินาทีได้ แม้จะยากที่จะรับรู้แบบมีสติโดยไม่มีการฝึก แต่คนส่วนใหญ่อาจ “รู้สึก” ได้แม้อธิบายไม่ออก
แน่นอนว่าสำหรับผู้ใช้จำนวนมาก อัตรา polling ของเมาส์ 125Hz ก็เป็นปัจจัยรบกวนด้วย แต่ในกรณีนี้ใช้เมาส์ 1KHz
ความต่าง 7ms ไม่แย่ แต่ความต่าง 16.6ms เริ่มถือว่าค่อนข้างมาก โดยส่วนตัวคิดว่าคอมพิวเตอร์ควรพยายามตั้งเป้า latency 1.6 เฟรม ซึ่งประกอบด้วย phase แบบสุ่มครึ่งเฟรม หนึ่งเฟรม และเวลา processing อีกเล็กน้อย
ผลลัพธ์น่าจะต่างกันไปตามคอมโพสิตเตอร์, GPU และการตั้งค่า ใน X11 นั้นการติดตั้งใช้งาน X server ที่ระบบเดสก์ท็อป Linux ใช้มีอยู่แทบจะตัวเดียว จึงมีความต่างแบบนี้น้อยกว่า
ทุกวันนี้ยังอาจมีปัญหาที่คอมโพสิตเตอร์/GPU หลายชุดยังไม่ได้ hardware cursor plane และถ้าเป็นเช่นนั้น ความต่างของดีเลย์แบบนี้ก็เกิดขึ้นได้มากพอสมควร
วันนี้เพิ่งรู้ว่า Wayland มีอายุถึง 16 ปี แล้ว อีกไม่กี่ปี Wayland ก็จะอายุเท่ากับ X ตอนที่ Wayland ออกมา แต่ดูเหมือนว่ายังถูกมองว่าแค่ธรรมดา หรือแย่กว่า X อยู่
$very_specific_feature” หรือ “เศร้าเพราะไดรเวอร์ proprietary ของผู้ผลิตการ์ดจอของฉันยังไม่ได้ทดสอบกับ Wayland มากพอ”ข้อบ่นแบบนั้นราว 99.999% มาจากคนที่ 1) ไม่ได้ลงมือทำเอง 2) ไม่มีความสนใจหรือความสามารถจะทำ และ 3) ไม่เข้าใจหรือไม่ยอมรับว่านักพัฒนา Wayland กับ X ส่วนใหญ่เป็นคนกลุ่มเดียวกัน และพวกเขาไม่อยากทำงานกับ X11 อีกแล้ว
ผมไม่ได้มีส่วนได้เสียเป็นพิเศษในเรื่องถกเถียงนี้ แต่เบื่อที่เห็นคนใช้ซอฟต์แวร์ที่คนอื่นให้ใช้ฟรีแล้วก็บ่นเรื่อง Wayland ถ้าคำบ่นเรื่อง Wayland มีมากขนาดนั้น ป่านนี้ก็น่าจะรวมตัวกันมาดูแลและปรับปรุง X แล้ว และถ้าคำบ่นกับทฤษฎีเหล่านั้นถูกต้อง ก็อาจทิ้ง Wayland ไว้ข้างหลังได้แล้ว
น่าแปลกที่ X เป็นโอเพนซอร์สและ fork ได้เต็มที่ แถมยังเคยมีกรณี X.org เกิดจาก XFree86 แต่ผู้สนับสนุนกลับปล่อยให้ฝุ่นจับและไม่ทำอะไรเพื่อดูแลรักษาเลย
ถ้ามีผลงานออกมาว่า “Wayland ไม่ดีเท่า X เราจึงทำ fork ของ X ที่ทันสมัยขึ้นและทุกคนใช้ได้” ก็คงน่าสนใจไม่น้อย
กล่าวคือ Wayland มีอายุแค่ประมาณ 66% ของอายุ X ในตอนที่ Wayland ออกมา และถ้าจะให้มีอายุเท่ากัน ต้องเพิ่มจากอายุของ Wayland ตอนนี้ไปอีก 50%
ตอนนี้ผมใช้ Wayland บน Plasma 6 และมันทำงานได้ดีพอ แต่ผมไม่มีความต้องการพิเศษ เลยไม่รู้ว่าตัวอ่านหน้าจอทำงานได้ดีแค่ไหน เป็นต้น
ถึงตอนนั้นผมคาดว่า frontend stack ของเบราว์เซอร์คงกลืนเดสก์ท็อปไปหมดแล้ว ยังไงเสียก็ไม่ได้มีแอปเดสก์ท็อปใหม่ ๆ บน Linux ออกมามากมายอยู่แล้ว
ความพยายามเขียนสิ่งที่ใช้งานได้อยู่แล้วใหม่ด้วยเหตุผลว่า “ทันสมัยกว่า ดูแลง่ายกว่า และรองรับอนาคตได้ดีกว่า” ส่วนใหญ่ไม่ได้ออกมาเป็นแบบนั้น จึงไม่น่าแปลกใจ โดยมากมันช้าลง ดีเลย์มากขึ้น และเป็นแค่ฮาร์ดแวร์ที่เร็วขึ้นมาช่วยพยุงไว้ ไม่ใช่ซอฟต์แวร์ที่เร็วขึ้น
รู้สึกเหมือนทุก ๆ 20 ปี คนรุ่นใหม่จะอ่อนแอลง เพราะเอาแต่พึ่งพา abstraction ที่คนรุ่นก่อนทำงานหนักสร้างไว้ หลังจากนักพัฒนาซอฟต์แวร์ผ่านมาสัก 3 รุ่น สิ่งที่เหลืออยู่ก็มีแต่คนเรียกใช้ไลบรารี/เฟรมเวิร์ก และแทบไม่มีใครเข้าใจเรื่องประสิทธิภาพกับการปรับแต่งให้เหมาะสมอย่างแท้จริง
Wayland ยังมีฟีเจอร์ที่ขาดเมื่อเทียบกับ X11 แต่ด้วยข้อดีด้านอื่น ๆ ผมยอมประนีประนอมกับเรื่องนั้นได้
คอมโพสิตเตอร์ Wayland หลายตัวมีปัญหาใหญ่กับคีย์บอร์ด เมาส์ และอุปกรณ์อินพุตอื่น ๆ เพราะสเปก Wayland และ implementation อ้างอิงเลือกที่จะไม่รองรับสิ่งเหล่านั้น ดังนั้นคอมโพสิตเตอร์ Wayland แต่ละตัวจึงเลือกวิธีแก้ต่างกันไป
ตัวเลือกที่พบได้บ่อยคือ libei และ libinput แต่หลายกรณีก็ไม่รองรับอินพุตเมาส์/คีย์บอร์ด “ขั้นสูง” เลย weston เป็นตัวอย่างหนึ่ง เราไม่มีทางรู้เลยว่าซอฟต์แวร์ Linux ตัวหนึ่งจะทำงานในสภาพแวดล้อม Wayland แบบใดแบบหนึ่งได้หรือไม่ และ การแตกเป็นเสี่ยง ๆ นั้นรุนแรงมาก
ใน X มี reference ของ X11 ที่แข็งแรงซึ่ง implement แทบทุกอย่างจริง ๆ ดังนั้นถ้ามันทำงานที่หนึ่ง ก็มั่นใจได้ว่าจะทำงานที่อื่นด้วย
แม้จะผ่านมา 12 ปีแล้ว ก็ยังไม่มีคอมโพสิตเตอร์ Wayland ตัวไหนรองรับตัวอ่านหน้าจอสำหรับผู้พิการทางสายตาเลย ระดับเหมือนของเล่น
ดังนั้นจึงไม่ดีสำหรับเกม ไม่ดีสำหรับงานกราฟิกระดับมืออาชีพ และไม่ดีสำหรับคนที่สายตาไม่ดี สรุปคือโดยทั่วไปไม่ดีสำหรับผู้ใช้ที่ต่างจากคนสร้างมันแม้แต่นิดเดียว
แต่ถ้าโชคดี มันอาจลดอาการภาพฉีกที่ผมไม่เคยรู้สึกได้เลยก็ได้
หนึ่งในผลลัพธ์เจ๋ง ๆ ที่เกิดขึ้นคือการเห็นผู้คนเพิ่มเวิร์กโฟลว์ด้าน accessibility บนระบบนิเวศนี้ บางคนควบคุมเดสก์ท็อปทั้งระบบผ่าน tiling window manager ด้วยการสั่งงานด้วยเสียง: https://youtu.be/fiPJLmhnnXM
เมื่อ GPU รับโหลดหนัก เช่น งานอนุมาน Stable Diffusion จะเกิดสไปก์ดีเลย์ขนาดใหญ่ แม้ไม่ได้ทำ A/B test กับ X11 แต่เมื่อก่อนจำได้ว่าไม่เคยเจอแบบนี้
การมีดีเลย์เพิ่มขึ้นอีกหนึ่งเฟรมก็ไม่ดีอยู่แล้ว แต่ สไปก์ดีเลย์ ที่โผล่มาเป็นครั้งคราวนี่น่ารำคาญจริง ๆ
ดีเลย์ของอินพุตเคอร์เซอร์เป็นสิ่งรบกวนที่คอยบั่นทอนความพึงพอใจต่อแอปพลิเคชันหรือระบบปฏิบัติการอยู่ตลอด
ดีเลย์ของเคอร์เซอร์ข้อความใน IDE? รับไม่ได้
ดีเลย์ของเคอร์เซอร์ข้อความใน shell? รับไม่ได้
ดีเลย์ของเคอร์เซอร์เมาส์ใน GUI? รับไม่ได้
ทั้งหมดเป็นเงื่อนไขตกรอบทันที
แม้แต่ System 1 ที่รันบนฮาร์ดแวร์อ่อนแอแทบจะสุด ๆ เมื่อกว่า 40 ปีก่อน ก็ยังให้ความสำคัญสูงสุดกับ การตอบสนองของเคอร์เซอร์ จนเหนือกว่าคู่แข่งทั้งหมด แม้รากฐานของ OS และ UI ในปัจจุบันจะแตกต่างไป 100% แล้ว แต่ลำดับความสำคัญนั้นยังคงอยู่
ช่วงหลังเจออาการเมาส์หน่วงอย่างหนักกับ KDE/Plasma 6 บน X11 ร่วมกับ NVidia โดยสังเกตได้ว่าหน่วงหนักเป็นพิเศษเวลาอยู่เหนือแท็บของเบราว์เซอร์
ขอจดไว้สำหรับคนที่เจอปัญหาเดียวกัน วิธีแก้คือปิด OpenGL flipping ไม่รู้เลยว่า OpenGL flipping ทำอะไร แต่พอปิดใน nvidia-settings และ
/etc/X11/xorg.confแล้วปัญหาก็หายไปถ้ามีใครอธิบายได้ว่าทำไมเป็นแบบนั้น หรือทำไมค่านี้ถึงไม่ใช่ค่าเริ่มต้น ก็คงดี
เป็นงานที่ยอดเยี่ยม น่าจะคุ้มที่จะลองตั้งจอไว้ที่อัตรารีเฟรชต่ำมาก ๆ เช่น 30Hz แล้วทำการทดลองซ้ำ
ถ้า Wayland ช้ากว่า X11 หนึ่งเฟรมเสมอ ก็น่าจะสังเกตได้ง่ายกว่ามาก
มีข้อบ่นส่วนตัวที่ต่างออกไปเล็กน้อย ตอนเริ่มใช้ Linux ใหม่ ๆ เดสก์ท็อปยังเป็นการ composite ด้วยซอฟต์แวร์ น่าจะเป็นลักษณะที่ CPU วาด UI ลงใน RAM แล้ว blit ไปยัง framebuffer ของ GPU และคิดว่าเป็นวิธีที่ใช้กันมานานแล้ว
เมื่อ compositor รวมถึง X11 composite และ GPU renderer เริ่มเป็นที่นิยม ดีเลย์ก็แย่มากจนอยู่ในระดับหลายร้อย ms จริง ๆ แปลกดี เพราะตอนโตมากับเกม DOS ไม่เคยมีปัญหาแบบนี้
แม้เวลาผ่านไปจะดีขึ้น แต่ก็ไม่แน่ใจว่าเราได้กลับไปสู่ ยุคทองของการเรนเดอร์ด้วย CPU แล้วหรือยัง