Saya memiliki satu PC (klien) yang lemah tetapi dengan kinerja 3D yang dapat diterima, dan satu PC (server) yang kuat yang harus mampu menjalankan aplikasi menggunakan OpenGL dua kali, yaitu sekali secara lokal dan sekali jarak jauh untuk klien. Saat ini, saya ssh -X
ke dalamnya, tetapi konsol keluaran klien menyatakan rendering perangkat lunak digunakan dan saya hanya mendapatkan 3 frame per detik (fps). Sebenarnya, enkripsi ssh tidak diperlukan karena ini ada di LAN, tapi itu yang sudah saya ketahui untuk aplikasi jarak jauh ...
Jadi, bagaimana kinerja klien dapat ditingkatkan? Ide saya adalah
- menggunakan akselerasi perangkat keras, tetapi server atau klien dan bagaimana?
- gunakan sesuatu yang berbeda dari ssh
Saya tahu, dalam resolusi penuh dan tanpa kompresi canggih, LAN 100 Mbit / s tidak akan menghasilkan lebih banyak fps, tetapi ini adalah aplikasi berjendela ca. 800x450, jadi secara teoritis hingga 12 fps (pada 24 bit / piksel) harus dimungkinkan menggunakan data grafis yang tidak terkompresi. Dan mungkin sesuatu yang lebih baik dimungkinkan menggunakan GPU klien sendiri atau kompresi pintar.
-
sunting Ternyata apa yang saya inginkan pada dasarnya adalah versi lokal dari apa yang ditawarkan misalnya onlive dan gaikai . Apakah ada yang seperti ini untuk Linux (dan mungkin gratis)?
-
edit2 VirtualGL tampak seperti solusi terbaik (meskipun saat ini tidak bekerja untuk saya), tapi saya ingin tahu apakah mungkin untuk melakukan hardware render pada klien, juga
Jawaban:
Anda dapat memeriksa VirtualGL bersama dengan TurboVNC yang seharusnya memberi Anda 20fps @ 1280x1024 pada 100 Mbit ( lihat wikipedia ).
Perhatikan bahwa ini mungkin tidak bekerja dengan semua aplikasi, itu tergantung pada bagaimana mereka menggunakan OpenGL.
sumber
Ini adalah pertanyaan lama tetapi masih relevan. Ada langkah demi langkah manual tentang cara mengkonfigurasi dan memecahkan masalah rendering aplikasi X11 3D pada perangkat keras lokal: Akselerasi perangkat keras OpenGL melalui koneksi remote x11 ssh
Gim Chromium BSU digunakan dalam artikel sebagai contoh. Ini berjalan dengan 5-8 FPS dengan rendering perangkat lunak standar melalui koneksi SSH, 30 FPS dengan rendering perangkat keras tidak langsung dan> 30 FPS dengan koneksi TCP X11 yang tidak terenkripsi. Perhatikan bahwa ini hanya berfungsi untuk beberapa aplikasi.
Ringkasan artikel yang singkat
Render tidak langsung dan koneksi TCP dinonaktifkan pada konfigurasi server X11 default.
+iglx and -listen tcp
parameter memungkinkannya. Ada jugaLIBGL_ALWAYS_INDIRECT=1
variabel yang memaksa render tidak langsung pada klien X11.sumber
lightdm
denganiglx
" seperti itu). Saat ini saya tidak membutuhkan ini lagi, tetapi saya akan mencobanya lain kali;) Mungkin orang lain juga menganggap temuan Anda bermanfaat.Itu mungkin benar jika Anda memiliki dua PC desktop. Tetapi jika Anda memiliki laptop WiFi tua yang dapat digunakan di mana saja di rumah (mis. Ti5600 dengan Ubuntu 10,04 sebagai klien Anda, dan PC desktop dengan papan GTX bersama dengan Wi-Fi Router cadangan, memiliki klien OpenGL jarak jauh sepertinya ide yang bagus.
Masalahnya adalah mendapatkan konteks OpenGL (sisi server) jarak jauh. Anda dapat menjalankan ssh -X pada klien Anda. Tetapi jika Anda menjalankan glxinfo pada sistem jarak jauh, Anda mendapatkan klien lokal Anda, yang mengembalikan Anda ke tempat Anda mulai. Anda dapat mengatur variabel lingkungan DISPLAY Anda ke host jarak jauh itu, dan Anda dapat menggunakan layar itu sebagai monitor kedua, yang masih tidak membantu.
Satu solusi lain adalah menulis aplikasi desktop Anda sehingga mereka dapat menggunakan konteks GLX jarak jauh:
http://arrayfire.com/remote-off-screen-rendering-with-opengl/
sumber