LINUX.ORG.RU

[xserver][nvidia&ati] 3Д через сеть.

 


0

3

Есть десктоп с Nvidia карточкой и драйвера работают ок. Есть лэптоп с Ati карточкой и драйвера тоже работают ок. Я хочу на лэптопе запустить программу с десктопа, которая требует 3D ускорения - google earth, но получаю такую ошибку:

Xlib: extension «NV-GLX» missing on display «localhost:10.0».

В логах:

grep -i loading /var/log/Xorg.0.log

[ 16.699] (II) Loading /usr/lib/xorg/extra-modules/libglx.so

[ 17.599] (II) Loading extension GLX

[ 17.609] (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so

[ 17.619] (II) Loading extension MIT-SCREEN-SAVER

[ 17.619] (II) Loading extension XFree86-VidModeExtension

[ 17.619] (II) Loading extension XFree86-DGA

[ 17.619] (II) Loading extension DPMS

[ 17.619] (II) Loading extension XVideo

[ 17.619] (II) Loading extension XVideo-MotionCompensation

[ 17.619] (II) Loading extension X-Resource

[ 17.620] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so

[ 17.620] (II) Loading extension DOUBLE-BUFFER

[ 17.621] (II) Loading /usr/lib/xorg/modules/extensions/librecord.so

[ 17.651] (II) Loading extension RECORD

[ 17.651] (II) Loading /usr/lib/xorg/modules/extensions/libdri.so

[ 17.652] (II) Loading extension XFree86-DRI

[ 17.652] (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so

[ 17.653] (II) Loading extension DRI2

[ 17.653] (II) Loading /usr/lib/xorg/extra-modules/nvidia_drv.so

[ 17.756] (II) Loading sub module «fb»

[ 17.757] (II) Loading /usr/lib/xorg/modules/libfb.so

[ 17.908] (II) Loading sub module «wfb»

[ 17.908] (II) Loading /usr/lib/xorg/modules/libwfb.so

[ 17.955] (II) Loading sub module «ramdac»

[ 20.351] (II) Loading extension NV-GLX

[ 20.478] (II) Loading extension NV-CONTROL

[ 20.478] (II) Loading extension XINERAMA

[ 20.478] (II) Loading sub module «dri2»

[ 20.479] (II) Reloading /usr/lib/xorg/modules/extensions/libdri2.so

[ 20.656] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so

В чем проблема?

2Д программы работают ок.

p.s. пробую первый раз этой штукой пользоваться. Соединяюсь просто ssh ip -X


Ответ на: комментарий от kernel

>Но вообще то я читал что Xorg этот поток ускоренно рисовать не может. То есть ускорение 3d в xorg это только режим DRI, который по этому и называется «прямой рендеринг». Напрямую в карту минуя х сервер.

Видно читал ты что-то на заборе. Потому как DRI как раз по сети - это единственное, чего не будет. Угадай почему:)

Led ★★★☆☆
()
Ответ на: комментарий от kernel

>X11 сам по себе неплохо пропускает opengl. Но вообще то я читал что Xorg этот поток ускоренно рисовать не может. То есть ускорение 3d в xorg это только режим DRI, который по этому и называется «прямой рендеринг». Напрямую в карту минуя х сервер.

Да ускорение никуда не денется, просто текстуры и тп до карты будут кидаться по сети, что не во всех случаях даст приемлемую скорость. Те же туксрейсер и квака работают с нормальным фпс на удаленных иксах.

madcore ★★★★★
()
Ответ на: комментарий от Led

Видно читал ты что-то на заборе. Потому как DRI как раз по сети - это

единственное, чего не будет. Угадай почему:)


И что ты этим хотел сказать? Пальцы веером раскинуть чтоле? :)

kernel ★★☆
()
Ответ на: комментарий от madcore

Да ускорение никуда не денется, просто текстуры и тп до карты будут

кидаться по сети, что не во всех случаях даст приемлемую скорость. Те

же туксрейсер и квака работают с нормальным фпс на удаленных иксах.


Ну когда я читал там писали что будет просто чисто софтверный рендеринг. Может уже наладили.
Хотя, на сколько я понимаю, там драйвер сам был рассчитан на исполнение в контексте клиента а не сервера.

kernel ★★☆
()
Ответ на: комментарий от kernel

>Ну когда я читал там писали что будет просто чисто софтверный рендеринг. Может уже наладили.

Не знаю, когда ты читал, но opengl изначально рендерился на стороне клиента(Х-сервера).

madcore ★★★★★
()
Ответ на: комментарий от madcore

Не знаю, когда ты читал, но opengl изначально рендерился на стороне клиента(Х-сервера).


Опять путаница в клиент-сервер в X? Или что?

Я говорю, что изначально в линуксб в mesa/DRI(и нвидиа) внутри клиента X протокола, то есть юзерской программы, вызывался libGL.so который и преобразовывал OpenGL в язык hardware -специфичный язык карты. То есть был фактически драйвером. И эта libGL.so через устройство маппила нужные области памяти видеокарты и вообще работала с файлом драйвера устройства. Ни на какое удаленное исполнение такой режим работы не расчитан принципиально.

Но если мы хотим получить аппаратное ускорение в удаленном режиме, то такой метод работы надо как то менять. Грузить грубо говоря libGL.so на Х сервере и там осуществлять преобразования команды OpenGL->hardware. А сами команды OpenGL инкапсулировать в X протокол расширением. Ну или какую то промежуточную форму инкапсулировать - но подозреваю что это тоже будет OpenGL, только упрощенный. Просто потому что OpenGL был специально для примерно такого придуман.

Когда я это все читал - ничего похожего X сервер не мог. Сейчас может?

kernel ★★☆
()
Ответ на: комментарий от Led

Засчитано (сам знаешь что):)


Ты когда на себя в зеркало смотришь, твое угукание и бугагашечки на ровном месте обезьяну не напоминают?

kernel ★★☆
()
Ответ на: комментарий от kernel

>Я говорю, что изначально в линуксб в mesa/DRI(и нвидиа)

Приложениям нет дела до месы, дри и нвидии.

Грузить грубо говоря libGL.so на Х сервере и там осуществлять преобразования команды OpenGL->hardware.


Ты вообще пробовал изучить opengl, x11, сами по себе, без привязки к..?

madcore ★★★★★
()
Ответ на: комментарий от madcore

Приложениям нет дела до месы, дри и нвидии.


Приложения линкуются с либами (libGL и чтототам еще) получают куда рисовать после чего рисуют вызовами libGL.

Только вот в зависимости от реализации этой самой libGL зависит какой у нас получается результат - ускоренный или нет.

Если например у нас libGL реализована так, что напрямую преобразует вызовы OpenGL в команды железа, то есть драйвер написан исключительно для режима DRI, то никакого ускоренного рендеринга при удаленной работе не будет.

Ты вообще пробовал изучить opengl, x11, сами по себе, без привязки

к..?

Изучал. Но не подробно. Где я неправ?

kernel ★★☆
()
Ответ на: комментарий от kernel

Когда я это все читал - ничего похожего X сервер не мог. Сейчас может?


Я имел в виду что Xorg не мог. X сервер как абстрактный дизайн - мог.

kernel ★★☆
()
Ответ на: комментарий от kernel

>Если например у нас libGL реализована так, что напрямую преобразует

Я рад за вас.
В нормальной архитектуре Х11 openGL работает прозрачно.

madcore ★★★★★
()
Ответ на: комментарий от madcore

В нормальной архитектуре Х11 openGL работает прозрачно.


Но нормальной реализации такой нормальной архитектуры какое то время в Xorg не было. ;) В изначальном сообщении я в том числе спрашивал - реализовали ли это сейчас :)

kernel ★★☆
()
Ответ на: комментарий от Led

Мне трудно сдерживать улыбку: ламеры-проллетарии такие смешные:)


Я смотрю ходим на ЛОР только за тем чтобы показать какой у тебя длинный и толстый. Нюнюню :)

kernel ★★☆
()
Ответ на: комментарий от kernel

>Я смотрю ходим на ЛОР только за тем чтобы показать какой у тебя длинный и толстый. Нюнюню :)

Нравится? Завидуешь?:)

Led ★★★☆☆
()
Ответ на: комментарий от Led

Нравится? Завидуешь?:)


Ну глядя на тебя вижу какую-то прыгающую и кривляющуюся обезьяну. Так что не - не нравится и не завидую :)

kernel ★★☆
()
Ответ на: комментарий от kernel

>Ну глядя на тебя вижу какую-то прыгающую и кривляющуюся обезьяну.

Ну, это уже все поняли, что «видишь» ты несколько... альтернативно:)

Led ★★★☆☆
()
Ответ на: комментарий от Led

Ну, это уже все поняли, что «видишь» ты несколько... альтернативно:)


Отучаемся говорить за всю сеть. Все это хто? ;)

kernel ★★☆
()
Ответ на: комментарий от kernel

Я говорю, что изначально в линуксб в mesa/DRI(и нвидиа) внутри клиента X протокола, то есть юзерской программы, вызывался libGL.so который и преобразовывал OpenGL в язык hardware -специфичный язык карты. То есть был фактически драйвером

Вы с какой высоты в детстве головой на пол упали?

В X11 приложение использует OpenGL через GLX, чьи функции реализованы в libGL. libGL, в свою очередь, разбирается как можно получить доступ к устройству - напрямую (/dev/dri/cardN например, и в этмо случае libGL рендерит через DRI) или только через X-сервер. Во втором случае, команды OpenGL прозрачно для приложения транслируются на X-сервер.

Но если мы хотим получить аппаратное ускорение в удаленном режиме

... то libGL это и делает. Давно и успешно.

А сами команды OpenGL инкапсулировать в X протокол расширением

... которое давно есть, работает и называется GLX.

no-dashi ★★★★★
()
Ответ на: комментарий от Sonsee

Тут уместнее вам вопрос: ЧТДТ? - что ты делаешь так?

Например, мне влом настраивать Evolution на работу с Exchange когда я в другом городе, за фиговой тучей VPN и файрволов. Поэтому я делаю ssh -X user@workstation.company.com, запускаю там Evolution и получаю удаленное приложение на своем десктопе.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Вы с какой высоты в детстве головой на пол упали?


И что вы сами чуть ниже написали, когда описывали «напрямую»? Ага :

libGL, в свою очередь, разбирается как можно получить доступ к

устройству - напрямую (/dev/dri/cardN например, и в этмо случае

libGL рендерит через DRI)".


Именно этот случай я и описывал. :):):)

Во втором случае, команды OpenGL прозрачно для приложения транслируются на X-сервер.


Очень прозрачно, да :) Вот сейчас как раз у топикастера случай этой самой полной прозрачности наступил. :) Которая якобы уже давно была и никак не может быть нарушена :)

... то libGL это и делает. Давно и успешно.

... которое давно есть, работает и называется GLX.


Я в курсе что оно вообще есть и расширение есть. Но делает конкретно в Xorg не так уж давно и не всегда успешно.

kernel ★★☆
()
Ответ на: комментарий от kernel

Вот сейчас как раз у топикастера случай этой самой полной прозрачности наступил

А топикстартеру надо меньше ставить кривых проприетарных блобов, и все будет работать. А то как я посмотрю, у некоторых дурная традиция уже - сначала по-стахановски создавать проблемы, а потом героически их преоедолевать. Проприетарный блоб нвидии, например, нагло и без колебаний удаляет нормальную правильную libGL, линкуя ее на себя, кривенького, в результате чего без мата даже LD_PRELOAD=/usr/lib64/libGL.so.1.2 <appname> не сделать.

И то, что nouveau<->ATI с месовсой libGL замечательно работает, показывает только кривизну проприетарного блоба.

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.