X11 пересилання програми OpenGL з машини, на якій працює карта NVIDIA, на машину з карткою AMD


15

Мені цікаво переслати X11 сеанс через SSH, щоб запустити віддалений процес, який використовує OpenGL (конкретно, альтанку для всіх, хто знайомий.)

Проблема, з якою я натрапляю, полягає в тому, що альтанка виходить з ладу через невідповідність графічних карт; він не може знайти розширення "NV-GLX". Точний вихід помилки:

Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  24
  Current serial number in output stream:  25

Віддалений апарат працює з карткою NVIDIA, а мій локальний апарат використовує карту AMD.

Я протестував X11 пересилання альтанки між двома машинами з картами NVIDIA. Це працює просто чудово.

Наскільки я можу сказати, здається, що відбувається одна з трьох речей:

  1. Я роблю щось не так,
  2. Те, що я хочу зробити, неможливо,
  3. Альтанка не створює агностично з розгалуженням кодових шляхів для різних апаратних засобів; те, що ви отримуєте, як виглядає ваша система, коли вона будується.

На віддаленій машині працює Ubuntu, а на моїй локальній машині працює Mac 10.8.2; Я вже знаю, що у мене x11 переадресація налаштована належним чином для нормального використання, оскільки я можу отримати такі речі, як xclock, щоб відкритись у XQuartz просто чудово. Рішення (якщо воно існує) також бажано працювати для інших ОС, включаючи Windows над WinSCP.

Відповіді:


9

Кілька приміток зі статті Вікіпедії GLX :

GLX [є] Розширення протоколу X, що дозволяє клієнту (програма OpenGL) надсилати команди 3D-рендерінгу на X-сервер (програмне забезпечення, що відповідає за показ). Клієнтське та серверне програмне забезпечення може працювати на різних комп'ютерах.

і

Якщо клієнт і сервер працюють на одному комп’ютері і доступна прискорена відеокарта з використанням відповідного драйвера, попередні два компоненти можна обійти DRI. У цьому випадку клієнтській програмі дозволяється безпосередньо отримувати доступ до відео апаратного забезпечення через декілька шарів API.

Я вважаю, що точка кулака відповідає на ваше запитання про те, чи можливо це чи ні: це, безумовно, має бути можливо. Другий може пояснити, чому ваша клієнтська програма наполягає на використанні функцій свого локального X-сервера (драйвер NV GLX) - можливо, він вважає, що localhost:10.0це той самий комп'ютер, і тому спробував підключити напрямок.

Що потрібно спробувати:

  1. Замість цього gazeboспробуйте glxdemo.
  2. Якщо можливо, знайдіть два комп’ютери в одній мережі та зніміть ssh із зображення
  3. Великий пістолет: straceваша gazeboвиклик і з’ясуйте, чому він завантажує nv-glx

Удачі!


Комп'ютери вже є в одній мережі, але ми хотіли б перенести всі наші альтанки в серверну шафу, але все ж доступні нам візуальні програми, тому я шукаю тунелі SSH. Якщо ви не скажете, що наявність їх в одній мережі дозволяє отримати іншу конфігурацію, що робить SSH не потрібним (я здогадуюсь, налаштувати якісь божевільні налаштування xhost / клієнта, я не знаю багато про X11).
Дуг Стівен

Не потрібно ssh - якщо це вся ваша приватна мережа надійних систем, спробуйте xhost +на локальній машині та встановіть DISPLAY на віддаленій системі на "ip-or-name-of-local: 0"
ckhan

1
Мені не вдалося приступити gazeboдо роботи, але я відзначаю це як прийняту відповідь, оскільки ваші пропозиції були технічно правильними. Я в змозі пройти тунель, glxdemoвикористовуючи всі запропоновані вами пропозиції (ssh та xserver / xclient по мережі), але сама Gazebo, здається, не будує шляхи розгалуження коду, і передбачає, що її не можна запускати в цій дивній конфігурації. Спасибі!.
Дуг Стівен

Існує мережа альтанки, і це справді дивовижно, ви можете запустити сервер альтанки на віддаленій машині (навіть WAN), тунель з ssh та відкрити веб-переглядач, щоб побачити там альтанку. Найкраще рішення будь-коли.
Мехді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.