แชร์ประสบการณ์ติดตั้ง Steam ใน Linux (Ubuntu 24.04.03) #1
https://pantip.com/topic/43695821
ต่อจากตอนที่แล้วครับ วันนี้จะมาเขียนเกี่ยวกับการ Up-Scaling, Frame-Generation ใน Linux (มี Windows นิดหน่อยด้วยแหละ)
การเล่นเกมใน Linux สามารถใช้เทคโนโลยี FSR, DLSS, XeSS ที่มีอยู่ในตัวเกมได้ปกตินะครับ, กรณีนี้จะพูดถึงเกมที่ไม่มีเทคโนโลยีข้างต้น
Lossless Scaling (Frame-generation): https://github.com/PancakeTAS/lsfg-vk?tab=readme-ov-file
ใช่ครับ! เป็ดเหลืองเอง ตั้งแต่ version 3.2.1 Lossless Scaling สามารถใช้บน Linux ได้แล้วครับ,
ต้องขอขอบคุณ คุณ PancakeTAS ที่ทำให้เป็ดเหลืองใช้งานได้บน Linux
โปรแกรมนี้ถ้าใน WIndows จะใช้ได้เป็นทั้งตัว Up-Scaling และ Frame-Generation เลยครับ, ใน Linux จะใช้ได้แค่ Frame-Generation
Frame-Generation บน Ubuntu 24.04 (Frame-Rate ตกหน่อยนะครับอัดจออยู่)
วิธีการติดตั้งจะแยกเป็น 2 แบบครับ
1. แบบใช้กับ Steam (Native), แนะนำให้ติดตั้งแบบนี้ก่อนครับสำหรับคนที่ใช้ Steam (Flatpak) ด้วย, มันจะได้ หนาต่าง UI หน้าตาเหมือนรูปด้านล่าง,
ถ้าลงแบบ Steam (Flatpak) เพียวๆ การ Config ต้องเข้าไปแก้ในไฟล์ .conf อย่างเดียว, คือมันแก้ File .conf ลงที่เดียวกันน่ะครับ
อย่างแรกซื้อโปรแกรม Lossless Scaling ใน Steam ก่อนครับ กด INSTALL เลยครับไม่ต้องแก้ beta ถัดไป
เข้า GitHub
https://github.com/PancakeTAS/lsfg-vk/releases แล้วโหลด File .deb มา, รัน command
$sudo apt install ./lsfg-vk-x.y.z-x86_64.deb (แก้ Version ด้วยนะครับ)
ติดตั้งเสร็จจะมีไฟล์ .desktop เป็นรูปเป็ดเหลืองโผล่ขึ้นมา ให้คลิกเข้าไปครับ, หรือจะรัน $lsfg-vk-ui ก็ได้
โปรแกรมเปิดมาจะหน้าตาเป็นแบบนี้
2. แบบใช้กับ Steam (Flatpak) ต้องซื้อโปรแกรม Lossless Scaling ใน Steam ก่อนเหมือนกันครับ INSTALL แล้ว
เข้า GitHub
https://github.com/PancakeTAS/lsfg-vk/releases แล้วโหลด ไฟล์นามสกุล .flatpak มา 2 ตัวครับ แล้วรัน command
$flatpak --user install ./org.freedesktop.Platform.VulkanLayer.lsfg_vk_23.08.flatpak #(*1)
$flatpak --user install ./org.freedesktop.Platform.VulkanLayer.lsfg_vk_24.08.flatpak #(*1)
$mkdir -pv ~/.config/lsfg-vk
$flatpak override --user --filesystem=/home/$USER/.config/lsfg-vk:rw com.valvesoftware.Steam
$flatpak override --user --env=LSFG_CONFIG=/home/$USER/.config/lsfg-vk/conf.toml com.valvesoftware.Steam
(Package Flatpak ชอบจะหายครับ, ถ้ารัน flatpak list | grep lsfg แล้วไม่เจออะไรเลย รัน (*1) ใหม่)
สิ่งที่การติดตั้งทั้งสองแบบต้องทำเหมือนกันคือแก้ไฟล์ .conf ครับ, เปิดหน้าต่าง UI โปรแกรมเป็ดเหลืองขึ้นมา
Path to Lossless.dll : ../SteamLibrary/steamapps/common/Lossless Scaling/loseless.dll (แล้วแต่จะติดตั้งไว้ที่ไหน)
Profile name : ให้เปิดเกมก่อนครับ แล้วค่อยกดที่แว่นขยายด้านหลัง Form, หาชื่อเกมแล้วคลิกเลือก
หรือจะแก้ตรง Lauch Options ของเกม อย่าง HELLDIVERS 2 ให้เพิ่ม LSFG_PROCESS=HELLDIVERS_2
แล้วสร้าง Profile ใหม่, กรอกตรง Profile name เป็น HELLDIVERS_2
Multiplier : อันนี้คือตัวคูณเฟรมครับ ตรงๆเลย
Flow Scale : ถ้าเล่น 1080p ต้องเปิดเต็มครับ, แต่ถ้าใครคอมไม่แรงก็ลดได้มันจะสร้าง Frame ได้มากขึ้น แลกมากับภาพสั่นๆ
Performance Mode : แนะนำให้เปิดไว้ก่อนครับ กันงง, ถ้าเกมมันปั่นเฟรมขึ้นค่อยลองปิดดู
HDR Mode : อันนี้ถ้าจอรับรอง เปิด HDR Mode ในเกมเปิดได้ก็เปิดด้วยครับ
Present Mode : ถ้าจอไม่เป็น Adaptive-Sync เลือก Vsync/FIFO ถ้าเป็น Adaptive-Sync เลือก Immediate
ถ้าไม่มีปัญหาอะไร Lossless Scaling จะทำงานตอนที่เปิดเกมเลยครับ (ไม่ต้องกด Ctrl+Alt+S เหมือนใน Windows)
ถ้าจะเช็คว่ามันทำงานจริงมั้ยก็ปรับ Multiplier ครับ, ถ้าทำงาน Frame-Rate มันจะเปลี่ยนทันทีเลย
พยายามทำให้ Frame-Rate อยู่ประมาณ 50-60 ยิ่งมากยิ่งดีครับ ถ้าจะเปิด Frame-Gen ถ้าต่ำกว่านั้นแล้วเปิดขึ้นมาภาพมันจะหลอนๆ
ผมเคยเล่นการ์ดจอ AMD นะ Series 6000 มันจะมี Feature ที่ชื่อ AFMF (AMD Fluid Motion Frames)
มันคือ Frame-Generation ที่เป็น In-Driver คือเปิดจากตัว AMD Adrenaline เลย, แต่มันจะ Fix Multiplier ไว้ที่ x2 แล้ว
ถ้าเอาการ์ดแดงมาเปิด AFMF เทียบ LSFG, AFMF จะหลอนน้อยกว่าพอสมควร แล้วสร้าง Frame ได้มากกว่าหน่อยนึงด้วย
งั้นถ้าจะเล่น LSFG อย่างน้อยต้องเปิด x3
เอาไว้อ่านเพิ่ม/อ้างอิง
https://www.reddit.com/r/losslessscaling/comments/1jjmia7/ultimate_lsfg_guide/
https://www.reddit.com/r/losslessscaling/comments/1jtaoau/official_dual_gpu_overview_guide/
มาต่อกันกับการ Up-Scaling
Proton-GE (FSR-1) : https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/GE-Proton7-24
Frame-Generation + FSR-1.0 บน Ubuntu 24.04
อ้างอิงจาก GE-Proton7-24 แล้วกันครับ,
โดยปกติค่า Defaults ของ Proton-GE จะเป็น WINE_FULLSCREEN_FSR=0 (ถึงใน GE-Proton7-29 จะบอกเปิดอัตโนมัติ)
ถ้า Resolution ของเกมเท่ากับ Resolution ของจอ FSR จะไ่ม่ทำงาน, ถ้าปรับ Resolution ในเกมให้ต่ำกว่าจอเมื่อไร FSR จะถูกใช้ทำการ Up-Scaling
(ถ้าใครเคยเล่น AMD คงนึกออกเหมือนการใช้ Feature ที่ชื่อ RSR (Radeon Super Resolution) นั่นแหละ)
กำหนดตัวแปร WINE_FULLSCREEN_FSR=1 ใช้เพื่อเปิดใช้งาน FSR
ตัวแปร WINE_FULLSCREEN_FSR_MODE มีค่าที่รองรับ ultra, quality, balanced, performance
ถ้าแบบเก่าจะใช้ Launch Options แบบนี้ครับ : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_MODE=ultra %command%
ถ้ากำหนดตัวแปร WINE_FULLSCREEN_FSR_MODE, Resolution List ในเกมที่มีค่าสูงสุดที่ไม่ใช่ Resolution ของจอ จะเป็นไปตามด้านล่าง
มันจะเพิ่ม Resolution ที่มีค่า Aspects Ratio 16:9, 4:3 ตัวอื่นๆมาด้วย, แต่จะไม่มี 1600x900, 1368x768
1920x1080 (16:9):
{960, 640}, // 16:9 - 'FSR 1080p Performance'
{1129, 635}, // 16:9 - 'FSR 1080p Balanced'
{1280, 720}, // 16:9 - 'FSR 1080p Quality'
{1477, 831}, // 16:9 - 'FSR 1080p Ultra Quality'
ถ้าไม่ได้กำหนดตัวแปร WINE_FULLSCREEN_FSR_MODE, Resolution List ที่ออกมาจะเยอะมาก
ค่า Aspects Ratio ที่เจอมี 16:10, 16:9, 12:5, 4:3, 3:2, มันทำให้เลือก Resolution ไม่ถูกครับ Up-Scale ขึ้นมาก็ไม่เต็มจอ
แล้วจะทำไงดี คือก่อนจะ Up-Scale ต้องรู้ครับว่าเราจอเรามีค่า Aspect Ratio เท่าไร, แล้วดูว่า Aspect Ratio นั้นๆมีค่า Resolution เท่าไรบ้าง
ตัวอย่าง WINE_FULLSCREEN_FSR_MODE=ultra, 1472x828 นี่มันดูไม่เหมือนจะเป็น ultra เลย, ถ้าเป็น 1600x900 นี่จะดูเป็น ultra มากกว่า
ใช้ Launch Options นี้ครับ : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_CUSTOM_MODE=WIDTHxHEIGHT
ตามตัวอย่างด้านบน : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_CUSTOM_MODE=1600x900 %command%
เข้าเกมแล้วเปิด Full Screen, แล้วเลือก Resolution ที่จะตั้งใจจะใช้ Up-Scale ครับ
ตัวแปร WINE_FULLSCREEN_FSR_STRENGTH ใช้กำหนด Sharpness มีค่า 0 - 5 (Max - Min)
การ Up-Scale นี้ไม่ Support ใน Proton-Valve นะครับ, ถ้าใช้ Proton-Valve ต้องใช้ Gamescope Up-Scale แทน
Gamescope (FSR-1) : https://github.com/ValveSoftware/gamescope
วิธีติดตั้งแบบ Steam (Flatpak) อยู่ในกระทู้เก่า #1 นะครับ
วิธีติดตั้งแบบ Steam (Native)
ถ้าใช้ Ubuntu 25.04 ขึ้นไปใช้ : รัน command
$sudo add-apt-repository multiverse
$sudo apt update
$sudo apt install gamescope,
Ubuntu 24.04 หมดสิทธิ์
gamemoderun gamescope -w 1600 -h 900 -W 1920 -H 1080 -f -F fsr --force-grab-cursor --mangoapp -- %command%
gamemoderun gamescope -h 900 -H 1080 -f -F fsr --force-grab-cursor --mangoapp -- %command% (ทำงานเหมือนข้างบน)
ถ้าใส่ Options แค่ -h, -H โปรแกรมจะเดา -w, -W ด้วย Aspect Ratio 16:9 ; ค่า Defaults -H 1280 -W 720
-w, -h : ความกว้าง, สูง ก่อน Up-Scale ; -W, -H : ความกว้าง, สูง หลัง Up-Scale ; -f : เปิด Full Screen ; -F fsr : เปิดใช้ FSR-1
--force-grab-cursor : อันนี้กันเม้าส์หลุดจอ ; --mangoapp : MangoHUD ต้องเปิดคู่ Gamescope แบบนี้ครับ
ถ้า Resolution ในตัวเกมไม่ตรงกับ -w, -h ปรับให้ตรงกันด้วย, เข้าไปดู Keyboard shortcuts ใน GitHub ด้วยนะครับ
แชร์ประสบการณ์ติดตั้ง Steam ใน Linux (Ubuntu 24.04.03) #2
ต่อจากตอนที่แล้วครับ วันนี้จะมาเขียนเกี่ยวกับการ Up-Scaling, Frame-Generation ใน Linux (มี Windows นิดหน่อยด้วยแหละ)
การเล่นเกมใน Linux สามารถใช้เทคโนโลยี FSR, DLSS, XeSS ที่มีอยู่ในตัวเกมได้ปกตินะครับ, กรณีนี้จะพูดถึงเกมที่ไม่มีเทคโนโลยีข้างต้น
Lossless Scaling (Frame-generation): https://github.com/PancakeTAS/lsfg-vk?tab=readme-ov-file
ใช่ครับ! เป็ดเหลืองเอง ตั้งแต่ version 3.2.1 Lossless Scaling สามารถใช้บน Linux ได้แล้วครับ,
ต้องขอขอบคุณ คุณ PancakeTAS ที่ทำให้เป็ดเหลืองใช้งานได้บน Linux
โปรแกรมนี้ถ้าใน WIndows จะใช้ได้เป็นทั้งตัว Up-Scaling และ Frame-Generation เลยครับ, ใน Linux จะใช้ได้แค่ Frame-Generation
วิธีการติดตั้งจะแยกเป็น 2 แบบครับ
1. แบบใช้กับ Steam (Native), แนะนำให้ติดตั้งแบบนี้ก่อนครับสำหรับคนที่ใช้ Steam (Flatpak) ด้วย, มันจะได้ หนาต่าง UI หน้าตาเหมือนรูปด้านล่าง,
ถ้าลงแบบ Steam (Flatpak) เพียวๆ การ Config ต้องเข้าไปแก้ในไฟล์ .conf อย่างเดียว, คือมันแก้ File .conf ลงที่เดียวกันน่ะครับ
อย่างแรกซื้อโปรแกรม Lossless Scaling ใน Steam ก่อนครับ กด INSTALL เลยครับไม่ต้องแก้ beta ถัดไป
เข้า GitHub https://github.com/PancakeTAS/lsfg-vk/releases แล้วโหลด File .deb มา, รัน command
$sudo apt install ./lsfg-vk-x.y.z-x86_64.deb (แก้ Version ด้วยนะครับ)
ติดตั้งเสร็จจะมีไฟล์ .desktop เป็นรูปเป็ดเหลืองโผล่ขึ้นมา ให้คลิกเข้าไปครับ, หรือจะรัน $lsfg-vk-ui ก็ได้
โปรแกรมเปิดมาจะหน้าตาเป็นแบบนี้
2. แบบใช้กับ Steam (Flatpak) ต้องซื้อโปรแกรม Lossless Scaling ใน Steam ก่อนเหมือนกันครับ INSTALL แล้ว
เข้า GitHub https://github.com/PancakeTAS/lsfg-vk/releases แล้วโหลด ไฟล์นามสกุล .flatpak มา 2 ตัวครับ แล้วรัน command
$flatpak --user install ./org.freedesktop.Platform.VulkanLayer.lsfg_vk_23.08.flatpak #(*1)
$flatpak --user install ./org.freedesktop.Platform.VulkanLayer.lsfg_vk_24.08.flatpak #(*1)
$mkdir -pv ~/.config/lsfg-vk
$flatpak override --user --filesystem=/home/$USER/.config/lsfg-vk:rw com.valvesoftware.Steam
$flatpak override --user --env=LSFG_CONFIG=/home/$USER/.config/lsfg-vk/conf.toml com.valvesoftware.Steam
(Package Flatpak ชอบจะหายครับ, ถ้ารัน flatpak list | grep lsfg แล้วไม่เจออะไรเลย รัน (*1) ใหม่)
สิ่งที่การติดตั้งทั้งสองแบบต้องทำเหมือนกันคือแก้ไฟล์ .conf ครับ, เปิดหน้าต่าง UI โปรแกรมเป็ดเหลืองขึ้นมา
Path to Lossless.dll : ../SteamLibrary/steamapps/common/Lossless Scaling/loseless.dll (แล้วแต่จะติดตั้งไว้ที่ไหน)
Profile name : ให้เปิดเกมก่อนครับ แล้วค่อยกดที่แว่นขยายด้านหลัง Form, หาชื่อเกมแล้วคลิกเลือก
หรือจะแก้ตรง Lauch Options ของเกม อย่าง HELLDIVERS 2 ให้เพิ่ม LSFG_PROCESS=HELLDIVERS_2
แล้วสร้าง Profile ใหม่, กรอกตรง Profile name เป็น HELLDIVERS_2
Multiplier : อันนี้คือตัวคูณเฟรมครับ ตรงๆเลย
Flow Scale : ถ้าเล่น 1080p ต้องเปิดเต็มครับ, แต่ถ้าใครคอมไม่แรงก็ลดได้มันจะสร้าง Frame ได้มากขึ้น แลกมากับภาพสั่นๆ
Performance Mode : แนะนำให้เปิดไว้ก่อนครับ กันงง, ถ้าเกมมันปั่นเฟรมขึ้นค่อยลองปิดดู
HDR Mode : อันนี้ถ้าจอรับรอง เปิด HDR Mode ในเกมเปิดได้ก็เปิดด้วยครับ
Present Mode : ถ้าจอไม่เป็น Adaptive-Sync เลือก Vsync/FIFO ถ้าเป็น Adaptive-Sync เลือก Immediate
ถ้าไม่มีปัญหาอะไร Lossless Scaling จะทำงานตอนที่เปิดเกมเลยครับ (ไม่ต้องกด Ctrl+Alt+S เหมือนใน Windows)
ถ้าจะเช็คว่ามันทำงานจริงมั้ยก็ปรับ Multiplier ครับ, ถ้าทำงาน Frame-Rate มันจะเปลี่ยนทันทีเลย
พยายามทำให้ Frame-Rate อยู่ประมาณ 50-60 ยิ่งมากยิ่งดีครับ ถ้าจะเปิด Frame-Gen ถ้าต่ำกว่านั้นแล้วเปิดขึ้นมาภาพมันจะหลอนๆ
ผมเคยเล่นการ์ดจอ AMD นะ Series 6000 มันจะมี Feature ที่ชื่อ AFMF (AMD Fluid Motion Frames)
มันคือ Frame-Generation ที่เป็น In-Driver คือเปิดจากตัว AMD Adrenaline เลย, แต่มันจะ Fix Multiplier ไว้ที่ x2 แล้ว
ถ้าเอาการ์ดแดงมาเปิด AFMF เทียบ LSFG, AFMF จะหลอนน้อยกว่าพอสมควร แล้วสร้าง Frame ได้มากกว่าหน่อยนึงด้วย
งั้นถ้าจะเล่น LSFG อย่างน้อยต้องเปิด x3
เอาไว้อ่านเพิ่ม/อ้างอิง
https://www.reddit.com/r/losslessscaling/comments/1jjmia7/ultimate_lsfg_guide/
https://www.reddit.com/r/losslessscaling/comments/1jtaoau/official_dual_gpu_overview_guide/
มาต่อกันกับการ Up-Scaling
Proton-GE (FSR-1) : https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/GE-Proton7-24
ถ้า Resolution ของเกมเท่ากับ Resolution ของจอ FSR จะไ่ม่ทำงาน, ถ้าปรับ Resolution ในเกมให้ต่ำกว่าจอเมื่อไร FSR จะถูกใช้ทำการ Up-Scaling
(ถ้าใครเคยเล่น AMD คงนึกออกเหมือนการใช้ Feature ที่ชื่อ RSR (Radeon Super Resolution) นั่นแหละ)
กำหนดตัวแปร WINE_FULLSCREEN_FSR=1 ใช้เพื่อเปิดใช้งาน FSR
ตัวแปร WINE_FULLSCREEN_FSR_MODE มีค่าที่รองรับ ultra, quality, balanced, performance
ถ้าแบบเก่าจะใช้ Launch Options แบบนี้ครับ : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_MODE=ultra %command%
ถ้ากำหนดตัวแปร WINE_FULLSCREEN_FSR_MODE, Resolution List ในเกมที่มีค่าสูงสุดที่ไม่ใช่ Resolution ของจอ จะเป็นไปตามด้านล่าง
มันจะเพิ่ม Resolution ที่มีค่า Aspects Ratio 16:9, 4:3 ตัวอื่นๆมาด้วย, แต่จะไม่มี 1600x900, 1368x768
1920x1080 (16:9):
{960, 640}, // 16:9 - 'FSR 1080p Performance'
{1129, 635}, // 16:9 - 'FSR 1080p Balanced'
{1280, 720}, // 16:9 - 'FSR 1080p Quality'
{1477, 831}, // 16:9 - 'FSR 1080p Ultra Quality'
ถ้าไม่ได้กำหนดตัวแปร WINE_FULLSCREEN_FSR_MODE, Resolution List ที่ออกมาจะเยอะมาก
ค่า Aspects Ratio ที่เจอมี 16:10, 16:9, 12:5, 4:3, 3:2, มันทำให้เลือก Resolution ไม่ถูกครับ Up-Scale ขึ้นมาก็ไม่เต็มจอ
แล้วจะทำไงดี คือก่อนจะ Up-Scale ต้องรู้ครับว่าเราจอเรามีค่า Aspect Ratio เท่าไร, แล้วดูว่า Aspect Ratio นั้นๆมีค่า Resolution เท่าไรบ้าง
ตัวอย่าง WINE_FULLSCREEN_FSR_MODE=ultra, 1472x828 นี่มันดูไม่เหมือนจะเป็น ultra เลย, ถ้าเป็น 1600x900 นี่จะดูเป็น ultra มากกว่า
ใช้ Launch Options นี้ครับ : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_CUSTOM_MODE=WIDTHxHEIGHT
ตามตัวอย่างด้านบน : WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_CUSTOM_MODE=1600x900 %command%
เข้าเกมแล้วเปิด Full Screen, แล้วเลือก Resolution ที่จะตั้งใจจะใช้ Up-Scale ครับ
ตัวแปร WINE_FULLSCREEN_FSR_STRENGTH ใช้กำหนด Sharpness มีค่า 0 - 5 (Max - Min)
การ Up-Scale นี้ไม่ Support ใน Proton-Valve นะครับ, ถ้าใช้ Proton-Valve ต้องใช้ Gamescope Up-Scale แทน
Gamescope (FSR-1) : https://github.com/ValveSoftware/gamescope
gamemoderun gamescope -w 1600 -h 900 -W 1920 -H 1080 -f -F fsr --force-grab-cursor --mangoapp -- %command%
gamemoderun gamescope -h 900 -H 1080 -f -F fsr --force-grab-cursor --mangoapp -- %command% (ทำงานเหมือนข้างบน)
ถ้าใส่ Options แค่ -h, -H โปรแกรมจะเดา -w, -W ด้วย Aspect Ratio 16:9 ; ค่า Defaults -H 1280 -W 720
-w, -h : ความกว้าง, สูง ก่อน Up-Scale ; -W, -H : ความกว้าง, สูง หลัง Up-Scale ; -f : เปิด Full Screen ; -F fsr : เปิดใช้ FSR-1
--force-grab-cursor : อันนี้กันเม้าส์หลุดจอ ; --mangoapp : MangoHUD ต้องเปิดคู่ Gamescope แบบนี้ครับ
ถ้า Resolution ในตัวเกมไม่ตรงกับ -w, -h ปรับให้ตรงกันด้วย, เข้าไปดู Keyboard shortcuts ใน GitHub ด้วยนะครับ