วิธีการใช้ 3D อย่างมีประสิทธิภาพผ่านการเชื่อมต่อระยะไกล?


12

ฉันมีพีซีที่อ่อนแอหนึ่งตัว (ไคลเอนต์) แต่มีประสิทธิภาพ 3D ที่ยอมรับได้และพีซีที่แข็งแกร่งหนึ่งตัว (เซิร์ฟเวอร์) ซึ่งควรจะสามารถเรียกใช้แอปพลิเคชันที่ใช้ OpenGL สองครั้งคือครั้งเดียวในพื้นที่และครั้งเดียวจากไคลเอนต์ ขณะนี้ฉันssh -Xเข้าสู่ระบบแล้ว แต่การแสดงผลคอนโซลของไคลเอ็นต์ใช้การแสดงผลซอฟต์แวร์และฉันได้รับเพียง 3 เฟรมต่อวินาที (fps) อันที่จริงแล้วการเข้ารหัสของ ssh ไม่จำเป็นเพราะนี่คือใน LAN แต่มันเป็นสิ่งที่ฉันรู้แล้วสำหรับการใช้งานระยะไกล ...

ดังนั้นประสิทธิภาพของไคลเอ็นต์จะเพิ่มขึ้นได้อย่างไร ความคิดของฉันคือ

  • ใช้การเร่งด้วยฮาร์ดแวร์ แต่เซิร์ฟเวอร์หรือไคลเอนต์และอย่างไร
  • ใช้สิ่งที่แตกต่างจาก ssh

ฉันรู้ว่าในความละเอียดเต็มรูปแบบและไม่มีการบีบอัดที่ซับซ้อน LAN ขนาด 100 Mbit / s จะไม่ทำให้ fps เพิ่มขึ้น แต่เป็นแอปพลิเคชันที่มีหน้าต่าง 800x450 ดังนั้นในทางทฤษฎีมากถึง 12 fps (ที่ 24 บิต / พิกเซล) ควรใช้ข้อมูลกราฟิกที่ไม่มีการบีบอัด และบางทีสิ่งที่ดีกว่านั้นอาจเป็นไปได้โดยใช้ GPU ของลูกค้าหรือการบีบอัดข้อมูลแบบสมาร์ท

-

แก้ไขกลับกลายเป็นสิ่งที่ฉันต้องการจะเป็นพื้นรุ่นท้องถิ่นของสิ่งเช่นOnLiveและGaikaiข้อเสนอ มีสิ่งนี้สำหรับ Linux (และอาจฟรี)?

-

edit2 VirtualGL ดูเหมือนเป็นทางออกที่ดีที่สุด (แต่ปัจจุบันยังไม่ทำงานสำหรับฉัน) แต่ฉันสงสัยว่าเป็นไปได้ไหมที่จะทำการเรนเดอร์ฮาร์ดแวร์กับลูกค้า



การติดตามตั้งแต่พีซีอยู่ติดกันและฉันสงสัยว่าทำไมไม่ใช้พีซีหนึ่งเครื่องสำหรับผู้ใช้สองคน: ผู้ใช้สองคนสามารถใช้พีซีหนึ่งเครื่องพร้อมกันผ่านหน้าจอคู่ได้หรือไม่
Tobias Kienzler

คำตอบ:


7

คุณสามารถตรวจสอบVirtualGLพร้อมกับTurboVNCควรให้ 20fps @ 1280x1024 บน 100 Mbit ( ดูวิกิพีเดีย )

โปรดทราบว่าอาจไม่ทำงานกับแอปพลิเคชันทั้งหมดขึ้นอยู่กับวิธีการใช้งาน OpenGL


+1 เสียงนี้เหมือนกับสิ่งที่ฉันกำลังมองหาขอบคุณ! (ฉันจะยอมรับคำตอบหลังจาก (หวังว่า) การทดสอบที่ประสบความสำเร็จ)
Tobias Kienzler


ฉันมีพีซีเครื่องใหม่ซึ่งรองรับ pbuffer แต่ตอนนี้น่าเสียดายที่vglrun segfaults อาจเป็นเพราะเซิร์ฟเวอร์ทำงานบน 64 บิตในขณะที่ไคลเอ็นต์เป็น 32 บิต?
โทเบียส Kienzler

(ยอมรับเนื่องจากคำตอบนั้นถูกต้องและ segfault เป็นคำถามที่แยกต่างหาก)
Tobias Kienzler

2

นี่เป็นคำถามเก่า แต่ก็ยังมีความเกี่ยวข้อง มีคู่มือทีละขั้นตอนเกี่ยวกับวิธีการกำหนดค่าและแก้ไขปัญหาการแสดงผล X11 3D ของแอปพลิเคชันระยะไกลบนฮาร์ดแวร์ท้องถิ่น: การเร่งความเร็วฮาร์ดแวร์ OpenGL ผ่านการเชื่อมต่อ x11 ssh ระยะไกล

เกม Chromium BSU ใช้ในบทความเป็นตัวอย่าง มันทำงานด้วย 5-8 FPS พร้อมซอฟต์แวร์เริ่มต้นที่แสดงผลผ่านการเชื่อมต่อ SSH, 30 FPS พร้อมการเรนเดอร์ฮาร์ดแวร์ทางอ้อมและ> 30 FPS พร้อมการเชื่อมต่อ TCP X11 แบบไม่เข้ารหัส โปรดทราบว่ามันใช้ได้กับบางแอปพลิเคชันเท่านั้น

บทสรุปของบทความ

การแสดงผลทางอ้อมและการเชื่อมต่อ TCP ถูกปิดใช้งานในการกำหนดค่าเซิร์ฟเวอร์ X11 เริ่มต้น +iglx and -listen tcpพารามิเตอร์เปิดใช้งานพวกเขา นอกจากนี้ยังมีLIBGL_ALWAYS_INDIRECT=1ตัวแปรที่บังคับให้เรนเดอร์เรนเดอร์บนไคลเอนต์ X11


ขอบคุณสำหรับคำตอบ. ขอขอบคุณอย่างยิ่งที่ได้ทราบถึงส่วนสำคัญของการโพสต์บล็อกที่เชื่อมโยงที่นี่ในกรณีที่การเชื่อมโยงเคยไปถึงแม้ว่า (เช่นคุณเพียงแค่ระบุว่า "ใช้lightdmกับiglx" เช่น) ปัจจุบันฉันไม่ต้องการสิ่งนี้อีกต่อไป แต่ฉันจะลองครั้งต่อไป;) บางทีบางคนอาจพบว่าการค้นพบของคุณเป็นประโยชน์
Tobias Kienzler

จุดดี. ฉันเพิ่มรายละเอียดหลักของบทความ
evpo

0

นั่นอาจเป็นจริงหากคุณมีพีซีตั้งโต๊ะสองเครื่อง แต่ถ้าคุณมีแล็ปท็อป WiFi ตัวเก่าที่สามารถใช้งานได้ทุกที่ในบ้าน (เช่น Ti5600 กับ Ubuntu 10.04 ในฐานะลูกค้าของคุณและพีซีตั้งโต๊ะที่มี GTX board พร้อมกับเราเตอร์ Wi-Fi สำรองการมีไคลเอนต์ OpenGL ระยะไกล

ปัญหาคือรับบริบท OpenGL ระยะไกล (ฝั่งเซิร์ฟเวอร์) คุณสามารถเรียกใช้ ssh -X บนไคลเอนต์ของคุณ แต่ถ้าคุณเรียกใช้ glxinfo บนระบบรีโมตคุณจะได้รับโลคัลไคลเอ็นต์ซึ่งทำให้คุณกลับมาที่จุดเริ่มต้น คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม DISPLAY เป็นรีโมตโฮสต์นั้นและคุณสามารถใช้หน้าจอนั้นเป็นจอภาพที่สองซึ่งยังไม่ช่วย

อีกวิธีหนึ่งคือเขียนแอปพลิเคชันเดสก์ท็อปของคุณเพื่อให้สามารถใช้บริบท GLX ระยะไกล:

http://arrayfire.com/remote-off-screen-rendering-with-opengl/


ขอขอบคุณ. ดังนั้นมีทางเลือกอื่นสำหรับโพรโทคอล X ในการส่ง 3D ขออภัยฉันควรให้เซิร์ฟเวอร์และไคลเอนต์อยู่ในเครื่องหมายคำพูดฉันแค่ตั้งใจจะมีคำสั้น ๆ สำหรับพีซีที่แข็งแกร่งและอ่อนแอ - พีซีทั้งสองควรใช้เป็น front-end ในเวลาเดียวกันเหมือนกับว่าเป็นพีซีตั้งโต๊ะ แต่ทำงานกับ CPU ทั้งหมด และการเข้าถึง RAM ทำได้โดยพีซีที่ดีกว่า พีซีที่อ่อนแอมีพลังงาน CPU และ RAM ไม่เพียงพอที่จะเรียกใช้แอปพลิเคชัน
Tobias Kienzler

ไม่ใช่ว่าฉันรู้ ชนิดของ 3D ที่คุณกำลังคิดต้องการแบนด์วิดท์จำนวนมาก
Keith

ที่จริง :( OTOH, OnLive , Gaikaiและคนอื่น ๆ เรียกร้องนี้เป็นไปได้สำหรับการเล่นเกมผ่านทางอินเทอร์เน็ต ...
โทเบียส KIENZLER

ตกลงฉันดู ฉันไม่คิดว่าพวกเขากำลังส่งเฟรมด้วยวิธีนี้เช่นกัน พวกเขากำลังดาวน์โหลดและใช้งานในพื้นที่และมีเพียงการรับส่งข้อมูลการควบคุมและอัปเดตข้อมูลเช่นเดียวกับเกมออนไลน์ที่มีอยู่แม้ว่าพวกเขาทำมันจะต้องมีความละเอียดต่ำสำหรับการบีบอัดสูง
Keith

วิธีที่ฉันเข้าใจมันพวกเขาเรียกใช้เกมจากระยะไกลและเพียงแค่ส่งกระแสข้อมูล HD ของวิดีโอในขณะที่ได้รับเหตุการณ์แป้นพิมพ์และเมาส์ แต่แน่นอนหนึ่งไม่สามารถส่ง 30 fps ในระดับ HD ผ่านทางอินเทอร์เน็ตโดยไม่มีการบีบอัดใด ๆ ...
Tobias Kienzler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.