LINUX.ORG.RU

Цифры не врут ?!


0

0

Эта картинка - не фотошоп, это самый настойщий скриншот. После того, как я по ошибке запустил mplayer на другой машине и не получил тормозов, мне стало интересно выяснить, а как же обстоит дело с OpenGL???

На картинке приведен результат эксперимента. Машинок было две, и называются они, как наверное ясно, alpha и gamma. Альфа - это стационарный комп (видяшка NVidia GF5500), Гамма - это ноутбук с i830. Машинки соединены витой парой 100Mb. На Альфе стоят драйвера NVidia, на Гамме их нет - то есть там почти нетронутая FC4. GKrellM использовался чтобы увидеть загрузку сети и процессора.

В терминале виден маленький тест из следующих шагов:

1. На альфе запущен lspci, чтобы видеть какая видяшка стоит.

2. После этого там же, на альфе, запущена программка glxgears, причем отображается это на том же компе (FPS, как видно, в районе 2400).

3. Произведен заход по SSH на гамму

4. На гамме показана видяшка по данным lspci

5. На гамме запущена glxgears, причем ее FPS составляет величину порядка 2300 (этот момент как раз и заснят на скриншоте)

Итог теста: разница в производительности между локальным и удаленным запуском OpenGL'ного приложения менее 5%(!), загрузка сети при этом составляет менее 5 мегабит - опять же менее 5% от пропускной способности 100Mb-линка, в то время как уже начинают подыматься сети-гигабитки - то есть сеть не особо и упирается.

В обшем, не доросли еще DirectDraw/Direct3D до того, чтобы быть соперником OpenGL, да и для X11 пока реальных конкурентов нет. И судя по этому тесту, еще ой как долго не будет :-)

>>> Просмотр (1280x1024, 216 Kb)

★★★★★

Проверено: Shaman007 ()

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

Я кваку 3-ю запускал по сети, на gf440, локально дает ~90 фпс, удаленно ~50, но играть нельзя, дергается все как-то.

uragan
()

А интересно OpenGL state хранится на сервере или в приложении? В принципе ничего удивительного в тесте нет (хотя сначала это и выглядит как что-то фантастическое). Команды OpenGL встроены в X-протокол и много траффика они не жрут. Если state держится на X-сервере, то для простых моделей достаточно один раз загрузить геометрию (и текстуры) на сервер и потом только передавать матрицы преобразований. Это также позволяет экономить bandwidth. Поскольку все аппаратное ускорение делается X-сервером, то толщина канала никакой роли здесь не играет, все равно - выполняется ли рендеринг для локального приложения или удаленного.

geekkoo
()
Ответ на: комментарий от uragan

Тоже похоже - текстур много и часто грузить приходится.

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

> В принципе ничего удивительного в тесте нет

Так я и не удивился, поскольку такого результата и ожидал :-)

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

дико извиняюсь, что-то я не вкурил в физику процесса. Ведь весь обсчет OpenGL идет на ноуте, а передается только картинка, которая, кстати, размером маленькая. Если картинка 300х300, по 3 байта на пиксель, то это 270 кБайт на одно изображение. Толку, что 2000 fps, монитор же не дает у тебя столько же кадров в секунду. Вот оно и передается с меньшей скоростью. Увеличь размер картинки, тогда посмотрим на скорость передачи изображения по сети. А fps-ы прежние останутся, ибо считаются на ноуте. Поправьте, если не прав.

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

> дико извиняюсь, что-то я не вкурил в физику процесса. Ведь весь обсчет OpenGL идет на ноуте

Ты СОВСЕМ "не вкурил физику процесса" :-) Ноут только говорит X-серверу через glx по сети инструкции вроде "этот объект состоит из таких-то поверхностей с такими-то текстурами", а потом выдает "а теперь нарисуй тот объект, что я тебе раньше описал, вот в этом контексте, такого-то размера и повернув на столько-то градусов".

Считает как должна выглядеть шестерня и каким цветом ее рисовать, что затенять а что нет, какие поверхности скрытые а какие нет - это решают уже X-сервер и видяшка, а ноутбуку это не интересно :-)

> а передается только картинка

Растровая картинка СОВСЕМ не передается. Ни одного пиксела. Это не RDP, это X11 и GLX :-)

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

>>Ведь весь обсчет OpenGL идет на ноуте, а передается только картинка, которая, кстати, размером маленькая.

Никаких картинок X-протокол не передает. Передаются только команды (gl* и компания, man glVertex2d и т.д.). Что значит "весь обсчет"? Ну да, модель считается в приложении (у нас есть столько-то вершин, они имеют ткие-то координаты). После этого эта модель загружается на X-сервер как массив координат. X сервер отображает ее как умеет (с ускорением или без). Изменение картинки можно проделать не передавая заново все координаты, а только передав матрицу аффинных преобразований (4x4) поворотов и сдвигов.

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

> Никаких картинок X-протокол не передает.

И самое смешное, что он совсем картинок не передает. Только {BitPix}Map'ы, которые впоследствии могут быть отрисованы неоднократно в любом месте экрана. И в любом окне.

Да, по вопросам видно насколько отстала нынешняя молодежь :-)

no-dashi ★★★★★
() автор топика

>загрузка сети при этом составляет менее 5 мегабит - опять же менее 5% от пропускной способности 100Mb-линка, в то время как уже начинают подыматься сети-гигабитки - то есть сеть не особо и упирается.

Большие ли текстуры использует glxgears?

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

Ну, нынешняя моложь (я тот же самый анонимус) возможно и не такая уж молодежь (во-первых), а во-вторых занимается немного другими вещами. Скажем прямо совершенно другими вещами. И компьютер использует как рабочий инструмент.
А если, скажем, mplayer удаленно запустить? Каков механизм будет?
Прошу к манам не отсылать, а кратко рассказать.
Спасибо.

anonymous
()
Ответ на: комментарий от geek

Вот-вот. После того как мне попадаются сообщения в форумах о том, как здорово, если бы у нас был маленький X-cервер, но без сетевой прозрачности, "которая есть suxx и тормоз", у меня обычно возникает желание сломать клавиатуру о голову оппонента.

geekkoo
()
Ответ на: комментарий от anonymous

> А если, скажем, mplayer удаленно запустить? Каков механизм будет?

В зависимости от того, какие ключи вы ему указали.

> Прошу к манам не отсылать, а кратко рассказать.

info Xv и info mplayer :-)

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

Вообще X11 рулит, я частенько запускаю свое KDE с других компов (после запуска чистого X-сервера с одним xterm'ом ssh, export DISPLAY, startkde), и не ощущаю абсолютно никакой разницы (разве что шрифты у меня стоят нестандартные, и на других компах их нет). Иногда видел виндусоидов, сидящих по remote desktop в разрешении 800х600 и 8битным цветом. Ну нафиг такое счастье. Если в висте еще не содрали все и иксов, то нескоро виндовое GUI будет по фичастости до иксов дотягивать.

uragan
()

Забавно. Получается nvidia уделала dri'шников. В dri, похоже, по прежнему hardware rendering только локально работает. И с glx "в целом" все так же хреново, как и было - я решил "быстренько глянуть", не читая в тырнете - изменилось что-то или нет, запустил glxgears поверх ssh - локальные Хы упали.

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

Так давно известно - правильная изоляцию и разделение функций (рисует X-сервер, все остальные говорят только с ним) самое правильное решение.

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

Ты это к чему сказал? Я в своем сообщении говорил о том, что "открытая" реализация gl не работает по сети с "аппаратным" ускорением, да и с "програмным" работает плохо. А ты о чем? =/

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

Крайне странно. У меня стандартный setup - модель рассчитыается на удаленном хосте, а рендерится через VTK (грубо говоря, обертка над OpenGL) на локальном компьютере на ATI. Правда, у меня не ssh, а rxtelnet. Подробности приветствуются - реализация X, используемый драйвер и т.д.

geekkoo
()
Ответ на: комментарий от drF_ckoff

> Ты это к чему сказал?

К тому, что когда у меня однажды "вдрук" перестал пускаться openoffice на новой ядре, то strace oowriter | grep dri жизнерадостно выдал open для файла /dev/dri/0 :-( на который у юзверя не было правов :-)

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

X Window System Version 6.8.99.900 (6.9.0 RC 0) (ALT Linux build: 6.8.99.900-alt7)

(II) Module radeon: vendor="X.Org Foundation"
compiled for 6.8.99.900, module version = 4.0.1
Module class: X.Org Video Driver
ABI class: X.Org Video Driver, version 0.8

(--) RADEON(0): Chipset: "ATI Radeon 7500 QW (AGP/PCI)" (ChipID = 0x5157)

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

>Вообще X11 рулит, я частенько запускаю свое KDE с других компов (после запуска чистого X-сервера с одним xterm'ом ssh, export DISPLAY, startkde), и не ощущаю абсолютно никакой разницы (разве что шрифты у меня стоят нестандартные, и на других компах их нет).

Настрой xfs и будут тебе нестандартные шрифты и на удаленном компьютере.

Zubok ★★★★★
()

Вставлю 5 коп.
Ещё год назад с братиком обеденив две тачки витой, одна из которых была i486DX4 c 30мя Mb (ктото помнит такие?), подняли по тонкому Quake2 и шпилили друг против друга. На небольших разрешениях тормозов вообще небыло, 800x600 подтормаживало изображение, но не критично.
Собственно эксперимент делался из чисто научного любопытства.

А по поводу шрифтов xfs нужно поднять.

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

Вы че коллеги ? Какой xfs ?

Современные widget тулкиты текст рисуют через XRender. Шрифт растеризуется на стороне клиента, картинки передаются на сервер, который потом только выплевывает их на экран.

Т.е. по-идее никакой xfs современным иксам не нужен. Если нужны фонты "сервера" то, по-идее решение не xfs, а nfs.

anonymous
()

Как бы еще заставить openoffice работать удаленно... Пример:

1) Запустить openoffice. 2) C *другого* компьютера зайти по ssh и попытаться запустить openoffice. Или даже с другого X сервера. Или используя -display. 3) Любоваться результатом.

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

> Современные widget тулкиты текст рисуют через XRender

А если xterm рулит? :-)

no-dashi ★★★★★
() автор топика

всем комментаторам - по двойке. с вопросами типа "почему" обращаться в google за sgi'шным opengl red book. в двух словах: так и было задумано.

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