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

เล่นเกมเต็มหน้าจอใน Linux ด้วยจอภาพคู่: คู่มือฉบับสมบูรณ์

เมื่อคุณเปิดเกมใน Linux พร้อมเชื่อมต่อจอภาพ 2 จอ เกมมักจะพยายามเปิดบนจอหลัก (Primary) อย่างไรก็ตาม ขึ้นอยู่กับการตั้งค่าและ Display Server โหมดเต็มหน้าจออาจไม่ทำงานได้อย่างสมบูรณ์เสมอไป เกมอาจยืดตัวแปลกๆ เปิดในโหมด Borderless หรือปล่อยให้เมาส์เลื่อนไปจอที่สองแทนที่จะล็อคอยู่ที่จอเกม

ด้วยการตั้งค่าที่ถูกต้องและการปรับแต่งเล็กน้อย คุณสามารถเล่นเกมในโหมดเต็มหน้าจอบนจอเดียวได้อย่างสมบูรณ์ ในขณะที่จออีกจอหนึ่งยังใช้งานได้เต็มที่ หากคุณต้องการประสบการณ์แบบ Ultra-wide คุณยังสามารถขยายเกมให้ครอบคลุมทั้งสองจอพร้อมกันได้ โดยใช้เครื่องมืออย่าง Gamescope หรือสร้างหน้าจอเสมือนความละเอียดสูงด้วย XRandR หรือ Nvidia TwinView

ลองเปลี่ยน Display Server เป็น Wayland

ต่างจาก Windows Linux รองรับ Display Stack หลายระบบ โดยหลักคือ X11 และ Wayland บนระบบ X11 รุ่นเก่า จอภาพมักทำงานเหมือนผ้าใบเสมือนขนาดใหญ่เพียงผืนเดียว ผลคือ เกมเต็มหน้าจออาจยืดข้ามทั้งสองจอ เปิดบนจอผิด สูญเสียโฟกัสเมื่อเมาส์ข้ามจอ หรือลด Refresh Rate เหลือค่าต่ำสุดที่ทั้งสองจอรองรับร่วมกัน

Wayland ซึ่งเป็นตัวแทนที่ทันสมัย จัดการเรื่องนี้ได้ดีกว่ามาก มันจัดการ Exclusive Fullscreen Request อย่างเหมาะสม จำกัดเกมให้อยู่บนจอเดียวโดยไม่กระทบ Desktop ส่วนที่เหลือ Distro หลักๆ เช่น Fedora หรือ Ubuntu ใช้ Wayland เป็นค่าเริ่มต้น และการเล่นเกมบน Wayland มักรู้สึกเรียบเนียนกว่า หากคุณยังใช้ X11 การเปลี่ยนไป Wayland อาจแก้ปัญหาหลายอย่างทันที

ขั้นแรก ตรวจสอบประเภท Session โดยเปิด Terminal และพิมพ์:

echo $XDG_SESSION_TYPE
เล่นเกมเต็มหน้าจอใน Linux ด้วยจอภาพคู่: คู่มือฉบับสมบูรณ์

ถ้าผลลัพธ์แสดง x11 แสดงว่าคุณอยู่บนระบบเก่า ถ้าแสดง Wayland แสดงว่าอยู่บนมาตรฐานทันสมัย บน Distro ส่วนใหญ่ ให้ Log Out คลิกไอ콘รูปเฟืองบนหน้าจอ Login และเลือก Wayland (หรือ Plasma on Wayland สำหรับ KDE) จากนั้น Login ใหม่

ตั้งค่าจอภาพหลัก (Primary Monitor) ให้ถูกต้อง

ปัญหาเต็มหน้าจอมากมายเกิดจากการที่จอผิดถูกตั้งเป็น Primary บน KDE ไปที่ System Settings แล้ว Display เพื่อตั้งจอเล่นเกมเป็น Primary บน GNOME ไปที่ Settings แล้ว Displays ทำอย่างเดียวกัน

รีสตาร์ทเกมหลังเปลี่ยนแปลง ถ้าเกมยังเปิดบนจอผิด ลองเปิด Steam บนจอที่ต้องการให้เกมปรากฏ เนื่องจากเกมหลายตัวสืบทอดตำแหน่งของ Steam

เปลี่ยนมาใช้โหมด Borderless Window

ความแตกต่างด้านประสิทธิภาพระหว่าง Exclusive Fullscreen และ Borderless บน Linux ตอนนี้เล็กมาก โดยเฉพาะภายใต้ Wayland และ Compositor รุ่นใหม่อย่าง KDE Plasma หรือ GNOME

วิธีตั้งค่า: เปิดตั้งค่าเกม เปลี่ยน Display Mode เป็น Borderless Windowed ตั้ง Resolution ให้ตรง Native ของจอ และแน่ใจว่าจอเล่นเกมถูกตั้งเป็น Primary ใน Display Settings ของระบบ

วิธีนี้ใช้ได้เพราะ Compositor ยังคงควบคุม ไม่มีการสลับ Display Mode จอที่สองไม่มืด และ Alt+Tab ทำงานลื่นไหล สำหรับเกมส่วนใหญ่ วิธีนี้เพียงพอแล้ว ถ้าเกมไม่รองรับโหมดนี้โดยเนทีฟ ไม่ต้องกังวล มีเครื่องมือบังคับได้

ใช้ Gamescope Compositor

Gamescope เป็น Micro-compositor ที่ Valve สร้างขึ้นใช้บน Steam Deck เพื่อสร้างสภาพแวดล้อมที่ควบคุมได้สำหรับเกม มันจับเมาส์ บังคับ Resolution จัดการ Refresh Rate แก้ปัญหาโฟกัสหลายจอ และป้องกันบั๊กเต็มหน้าจอ

ติดตั้ง Gamescope ได้หลายวิธีตาม Distro บน Rolling/Up-to-date distro อย่าง Arch Linux และ Fedora มีอยู่ใน Repository อย่างเป็นทางการ เช่น Arch Linux (และ Arch-based):

sudo pacman -S gamescope

บน Fedora:

sudo dnf install gamescope

ถ้า Distro ไม่มีเวอร์ชันใหม่ สร้างจาก GitHub อย่างเป็นทางการได้เสมอ

ติดตั้งเสร็จ เพิ่มใน Steam Launch Options:

gamescope -f -w 2560 -h 1440 -r 144 -- %command%

ปรับ -w และ -h ให้ตรง Resolution จอ และ -r ให้ตรง Refresh Rate ฟลै็ก -f บังคับโหมดเต็มหน้าจอ Gamescope จะจำกัดเกมไม่ให้รบกวนจอที่สอง

เช็คเอกสารแพ็กเกจ Gamescope ของ Distro คุณสำหรับฟลै็กล่าสุด เพราะอาจเปลี่ยนแปลงไปตามเวลา

การปรับแต่งสำหรับ Steam, Lutris และ Heroic

เนื่องจากเกมเมอร์ Linux ส่วนใหญ่ใช้ Steam กับ Proton มีการปรับแต่งเพิ่มเติมบางอย่าง หากเต็มหน้าจอทำงานแปลกบน Dual Monitor ใน Steam คลิกขวาเกม เปิด Properties หา Launch Options ใต้แท็บ General เพิ่ม:

SDL_VIDEO_FULLSCREEN_DISPLAY=0 %command%
เล่นเกมเต็มหน้าจอใน Linux ด้วยจอภาพคู่: คู่มือฉบับสมบูรณ์

ตัวแปรสภาพแวดล้อมนี้บอกเกมที่ใช้ SDL ให้ใช้จอไหนสำหรับเต็มหน้าจอ ถ้ายังเปิดบนจอผิด ลองเปลี่ยน 0 เป็น 1 (หรือตัวเลขอื่น) ขึ้นกับลำดับจอของคุณ

ลองสลับ Proton Version ด้วย ไปแท็บ Compatibility เลือก Proton Experimental หรือ Stable ล่าสุด บั๊กเต็มหน้าจอ โฟกัส หรือหลายจอ บางอย่างเฉพาะ Proton build ตรงๆ การสลับเวอร์ชันอาจแก้ปัญหาทันทีโดยไม่ต้องแก้ระบบ

สำหรับเกม Non-Steam เครื่องมืออย่าง Lutris และ Heroic Games Launcher มีการควบคุมคล้ายกัน ใน Lutris คลิกขวาเกม เลือก Configure ไป Runner Options เปิด Windowed (Virtual Desktop)

เล่นเกมเต็มหน้าจอใน Linux ด้วยจอภาพคู่: คู่มือฉบับสมบูรณ์

ฟีเจอร์นี้สร้าง Virtual Windows Desktop ภายในหน้าต่างเดียวที่ Resolution ที่คุณกำหนด ตั้งให้ตรง Native ของจอ เกมจะอยู่ในพื้นที่เสมือนนั้น ป้องกันไม่ให้ยืดข้ามจอหรือหลุดโฟกัสตอน Alt+Tab

ใน Heroic Games Launcher เปิด Wine/Proton Settings ของเกม เปิด Gamescope ด้วย Toggle ง่ายๆ Gamescope ทำหน้าที่ Compositor เบาๆ ครอบเกม ควบคุม Resolution และ Refresh Rate รวมทั้งล็อคให้อยู่จอเดียวโดยไม่ต้องใส่ Command-line เอง

ใช้ XRandR ควบคุมจอภาพ (บน X11)

ถ้าชอบอยู่บน X11 สามารถควบคุมจอด้วย XRandR ได้ เปิด Terminal รัน xrandr เพื่อดูชื่อจอที่เชื่อมต่อ (เช่น HDMI-1, DP-1)

ปิดจอรองชั่วคราวก่อนเล่นเกม:

xrandr --output HDMI-1 --off

แทน HDMI-1 ด้วยชื่อจอรองจริง หลังเล่นเสร็จ เปิดกลับ:

xrandr --output HDMI-1 --auto

วิธีนี้เป็น Brute-force แต่รับประกันว่าเกมรันเต็มหน้าจอจริงบนจอที่เหลือ

ทั้ง KDE (KWin) และ GNOME (Mutter) มีตั้งค่าอย่าง Unredirect Fullscreen Windows หรือปิด Compositing สำหรับแอปเต็มหน้าจอ เปิดตัวเลือกเหล่านี้ช่วยเพิ่มประสิทธิภาพและลดสตัตเตอร์เล็กน้อย

สรุป

Linux ทำงานได้ดีที่สุดเมื่อคุณเข้าใจ Setup ของตัวเอง คุณสามารถตั้งค่าหลายจอและใช้เล่นเกมได้ง่าย พร้อมเก็บจอที่สองเปิดทำงานอื่นๆ โดยไม่รบกวนเกม คุณควรดูเพิ่มเติมวิธีเพิ่มประสิทธิภาพเกมใน Linux ด้วย GameMode ด้วย