Як ефективно використовувати 3D через віддалене з'єднання?


12

У мене є один слабкий ПК (клієнт), але з прийнятною 3D-продуктивністю, і один сильний ПК (сервер), який повинен бути здатний запускати додаток за допомогою OpenGL двічі, тобто один раз локально та один раз віддалено для клієнта. В даний час я ssh -Xвпадаю в нього, але консольний вихід клієнта констатує використання програмного забезпечення, і я отримую лише 3 кадри в секунду (кадрів в секунду). Власне, шифрування ssh не потрібно, оскільки це в локальній мережі, але це вже те, що я вже знаю для віддалених додатків ...

Отже, як можна підвищити продуктивність клієнта? Мої ідеї є

  • використовувати апаратне прискорення, але серверне чи клієнтське та як?
  • використовувати щось інше, ніж ssh

Я знаю, що в повній роздільній здатності та без складного стиснення локальна мережа 100 Мбіт / с не зробить більше кадрів в секунду, але це віконне додаток приблизно. 800x450, тому теоретично до 12 кадрів в секунду (при 24 бітах / пікселі) повинно бути можливим за допомогою нестиснених графічних даних. І, можливо, можливо щось краще, використовуючи власний графічний процесор клієнта або розумне стиснення.

-

редагування Виявляється, що я хочу - це в основному локальна версія того, що, наприклад, пропонує onlive та gaikai . Чи є щось подібне для Linux (і, можливо, безкоштовно)?

-

edit2 VirtualGL виглядає як найкраще рішення (хоча наразі це не працює для мене), але мені цікаво, чи можливо зробити апаратне рендеринг для клієнта?



Відстеження, оскільки ПК все одно є поруч, і мені цікаво, чому б не використовувати один ПК для двох користувачів: Чи може один ПК використовувати два користувачі одночасно через подвійний монітор?
Тобіас Кіенцлер

Відповіді:


7

Ви можете перевірити, що VirtualGL разом із TurboVNC повинен забезпечити вам 20 кадрів в секунду при 1280x1024 на 100 Мбіт ( див. Вікіпедію ).

Зауважте, що це може працювати не з усіма програмами, це залежить від того, як вони використовують OpenGL.


+1 цей звук точно так, як я шукаю, дякую! (Я прийму відповідь після (сподіваюсь, успішного тестування)
Тобіас Кіенцлер


У мене зараз новий ПК, який підтримує pbuffer, але, на жаль, зараз vglrun segfaults . Можливо, це тому, що сервер працює на 64 біті, а клієнт - на 32 біті?
Тобіас Кіенцлер

(прийнято, оскільки відповідь правильна, а розділене значення - окреме питання)
Тобіас Кіенцлер

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» такий). Наразі мені це більше не потрібно, але я спробую наступного разу;) Можливо, хтось ще вважає ваші висновки корисними.
Тобіас Кіенцлер

Влучне зауваження. Я додав основні деталі статті.
evpo

0

Це може бути правдою, якщо у вас є два настільних ПК. Але якщо у вас вдома є старий ноутбук WiFi, який можна використовувати будь-де (наприклад, Ti5600 з Ubuntu 10.04 як ваш клієнт, і настільний ПК з платою GTX разом із запасним маршрутизатором Wi-Fi, то віддалений клієнт OpenGL здається непоганою ідеєю.

Проблема полягає в отриманні віддаленого (серверного) контексту OpenGL. Ви можете запустити ssh -X на своєму клієнті. Але якщо ви запустите glxinfo у віддаленій системі, ви отримаєте свого локального клієнта, який поверне вас туди, де ви почали. Ви можете встановити змінну середовища DISPLAY на цей віддалений хост, і ви можете використовувати цей екран як другий монітор, який все ще не допомагає.

Ще одне рішення - написати настільні програми, щоб вони могли використовувати віддалений контекст GLX:

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


Дякую. То чи існує альтернатива протоколу X для передачі 3D? Вибачте, я мав би покласти сервер і клієнта в лапки, я мав на увазі лише коротші слова для сильного і слабкого ПК - обидва ПК повинні використовуватися як передні частини одночасно, як якщо б вони були настільними ПК, але з усією роботою процесора і доступ до оперативної пам’яті, зроблений кращим ПК.
Слабкому

Не те, що мені відомо. Вигляд 3D, про який ви думаєте, вимагає багато пропускної здатності.
Кіт

це правда :( OTOH, onlive , gaikai та інші стверджують, що це можливо навіть для ігор через Інтернет ...
Tobias Kienzler

Гаразд, я подивився. Я не думаю, що вони також передають кадри таким чином. Вони завантажують та працюють локально, і лише приймають інформацію про управління та оновлюють, як і існуючі онлайн-ігри. Навіть якщо вони це зробили, для високої компресії це було б низькою роздільною здатністю.
Кіт

Як я це розумію, вони запускають гру віддалено і просто передають HD-потік відео, отримуючи події клавіатури та миші. Але, звичайно, не вдалося передати 30 кадрів в секунду в HD через Інтернет без будь-якого стиснення ...
Тобіас Кіенцлер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.