Удаленный внеэкранный рендеринг

Вы могли попытаться запустить и остановить сервисы удаленно с помощью PowerShell

Запустить сервис:

(Доберитесь-WmiObject - класс Win32_Service - имя компьютера WPDEV31 - фильтр "имя = ''"). StartService ()

Остановить сервис:

(Доберитесь-WmiObject - класс Win32_Service - имя компьютера WPDEV31 - фильтр "имя = ''"). StopService ()

10
задан 2 October 2010 в 03:50
2 ответа

Это было некоторое время, так как я задал этот вопрос, таким образом, я думал, что упомяну решение, которое мы в конечном счете использовали.

Угон локального X экранов

В конце я просто запустил удаленные opengl программы на сервере, локальном X экранов. Машина выполняла выпуск сервера Ubuntu, и это не выполняло xserver быть значением по умолчанию, таким образом, я должен был настроить xserver для выполнения при запуске (я просто установил настольный человечностью пакет Ubuntu, уничтожив москита с кувалдой), и затем предоставил мне доступ к X экранам с помощью этих команд в качестве корня: "экспорт ОТОБРАЖАЕТСЯ =:0.0; xhost + локальный":. затем я мог ssh в машину, назвать "экспорт, ОТОБРАЖАЮТ =:0.0" и затем запускают мои opengl программы как нормальные. Любой сидящий в удаленной машине видел бы, что окно раскрывается и следит за моим выполнением программы, но нам не подключили монитор, таким образом, это не было проблемой.

Важно использовать некоторую форму внеэкранного рендеринга, потому что чтение пикселей непосредственно от экранного цветного буфера могло привести к данным мусора, если окно становится затененным другим окном. Так как Вы не видите эти X экранов, трудно знать, произошло ли это. Вне экрана рендеринг (например, объекты Кадрового буфера (fbo) или pbuffers) не имеет этой проблемы.

Угон локального Xscreen сервера не является идеальным решением, таким образом, вот несколько альтернатив, которые я нашел по пути:

Виртуальные кадровые буферы

Xvfb является опцией, но он не работал на меня, потому что OpenGL не извлекал выгоду из аппаратного ускорения, и объекты кадрового буфера не поддерживались, которые необходимы для совместимости CUDA с OpenGL. Тем не менее, это могло бы быть осуществимой опцией, где угон локального экрана не приемлем, или где пользователь не может получить xhost права.

VirtualGL

С веб-сайта VirtualGL:

VirtualGL является пакетом с открытым исходным кодом, который дает любому Unix или Linux удаленное программное обеспечение дисплея способность запустить приложения OpenGL с полным 3D аппаратным ускорением.

Это точно, что я хочу, и это выглядит очень перспективным, но у меня не было времени для контакта с новой зависимостью библиотеки, таким образом, я не протестировал его. Мое предположение - то, что это - идеальное решение, после того как я мог скомпилировать его, установленный и настроенный. Это - то, что VirtualBox и некоторые серверы VNC используют для поддержки, аппаратно ускоренной 3D.

6
ответ дан 2 December 2019 в 22:13

можно выполнить vfb-виртуальный кадровый буфер на машине, как фиктивный X11. Мы раньше запускали приложения, которые должны были открыть Xwindow, что мы никогда не смотрели на и просто устанавливали vfb и $DISPLAY экспорта к тому - отчасти как экран на cli HTH

0
ответ дан 2 December 2019 в 22:13
  • 1
    Спасибо за подсказку! Я начал изучать xvfb, и похоже, что рендеринг не использует аппаратное обеспечение машинной графики, но вместо этого представляет в виртуальной памяти. Кто-либо может подтвердить/отклонить это? Если это верно, я думаю, что это решение не будет хорошо, потому что мы надеемся использовать в своих интересах питание нашей видеокарты. –  redmoskito 6 October 2010 в 19:58

Теги

Похожие вопросы