У меня есть один слабый ПК (клиент), но с приемлемой производительностью 3D, и один сильный ПК (сервер), который должен быть способен запускать приложение с использованием OpenGL дважды, то есть один раз локально и один раз для клиента. В настоящее время, я ssh -X
в это, но программный рендеринг состояния вывода клиентской консоли используется, и я получаю только 3 кадра в секунду (fps). На самом деле, ssh-шифрование не требуется, так как это в локальной сети, но это то, что я уже знаю для удаленных приложений ...
Итак, как можно повысить производительность клиента? Мои идеи
- использовать аппаратное ускорение, но серверное или клиентское и как?
- использовать что-то отличное от ssh
Я знаю, что в полном разрешении и без изощренного сжатия локальная сеть 100 Мбит / с не будет производить больше кадров в секунду, но это оконное приложение ca. 800x450, поэтому теоретически до 12 к / с (при 24 битах / пиксель) должно быть возможно использование несжатых графических данных. А может быть, что-то лучшее возможно с помощью собственного графического процессора клиента или некоторого умного сжатия.
-
редактировать Оказывается, что я хочу , это в основном локальная версия о том, что , например , OnLive и Gaikai предложений. Есть ли что-то подобное для Linux (и, возможно, бесплатно)?
-
edit2 VirtualGL выглядит как лучшее решение (хотя в настоящее время у меня не работает), но мне интересно, возможно ли сделать аппаратную визуализацию и на клиенте?
Ответы:
Вы можете проверить, что VirtualGL вместе с TurboVNC предоставит вам 20fps @ 1280x1024 на 100 Мбит ( см. Википедию ).
Обратите внимание, что он может работать не со всеми приложениями, это зависит от того, как они используют OpenGL.
источник
Это старый вопрос, но он все еще актуален. Существует пошаговое руководство по настройке и устранению неполадок при визуализации 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
» таким). Сейчас мне это больше не нужно, но я попробую в следующий раз;) Может быть, кто-то еще посчитает ваши выводы полезными.Это может быть правдой, если у вас есть два настольных ПК. Но если у вас есть старый WiFi-ноутбук, который можно использовать в любом месте дома (например, Ti5600 с Ubuntu 10.04 в качестве клиента, и настольный ПК с платой GTX вместе с запасным маршрутизатором Wi-Fi, наличие удаленного клиента OpenGL кажется хорошей идеей.
Проблема заключается в получении удаленного (на стороне сервера) контекста OpenGL. Вы можете запустить ssh -X на своем клиенте. Но если вы запустите glxinfo в удаленной системе, вы получите локальный клиент, который вернет вас туда, откуда вы начали. Вы можете установить переменную окружения DISPLAY для этого удаленного хоста, и вы можете использовать этот экран в качестве второго монитора, что по-прежнему не помогает.
Еще одно решение - написать ваши настольные приложения, чтобы они могли использовать удаленный контекст GLX:
http://arrayfire.com/remote-off-screen-rendering-with-opengl/
источник