LINUX.ORG.RU

Поиграть на нетбуке в игру, запущенную на нормальном компьютере

 indirect rendering,


2

6

Продолжение темы.

Гигабитная сеть между компом и нетбуком. Считаем сколько занимает передача несжатого видео 1366x768. 180 Мб/сек. Многовато, надо 120, а если убавить частоту кадров до 30? О, 90 Мб/сек, нормально!

А теперь я хочу чтобы вы мне написали как поиграть на нетбуке в игры, запущенные на нормальном компьютере с нормальной видеокартой. И чтобы максимально просто и понятно, как в этой статье про мультисит.

P.S. И не надо говорить что это невозможно! Я уже много лет читаю новости и вижу, что иногда в драйвере NVIDIA добавляют поддержку Indirect Rendering для очередной функции OpenGL. Да даже вон в последнем драйвере. А если её добавляют, значит Indirect Rendering кто-то использует!

А теперь я хочу чтобы вы мне написали как поиграть на нетбуке в игры, запущенные на нормальном компьютере с нормальной видеокартой.

С этим в Job надо.

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

Читаю. Ммм... Я сначала пробовал удалённый рабочий стол openSUSE - понятия не имею через что он. Он без 3D. Потом прочитал про SPICE от Red Hat - он с 3D, но там не проброс видео, а ускоряется на конечной машине. Про VirtualGL не интересовался, сейчас посмотрим...

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)

почему невозможно-то? гугли Nvidia Shield, как раз это и делает. она на андроиде, кстати.

anonymous
()

Вам обычный vnc нужен судя по всему без всяких remote X11 и прочего :)

Вообще в X11 добавляли еще один вариант IndirectRendering, когда сцена рендерится на клиенте X11 и готовая картинка передается на сервер (не помню точно как называется, прошлой осенью кажется обсуждался на какой-то конференции). В принципе, поддержка нескольких GPU через DRM Prime делается по примерно похожей технологии.

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

так рендер же будет локальный, не? VirtualGL уже вбрасывали.

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

На гигабитной сети через Xv не тормозит 1280x720x24 и запас вроде бы есть (прямой коннект между сервером и клиентом безо всяких ssh). Через ssh не успевает шифровать/расшифровывать слабый комп.

На 1920x1080 уже не хватает канала, но можно в том же mplayer сделать 2xdownscale.

anonymous
()

А теперь я хочу чтобы вы мне написали как поиграть на нетбуке в игры, запущенные на нормальном компьютере с нормальной видеокартой.

наглость - второе счастье

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

прямой коннект между сервером и клиентом безо всяких ssh

Хочу. Как сделать?

X-сервер запускается БЕЗ опции -nolisten tcp. Будет слушаться порт tcp 6000 + номер дисплея. Обычно настраивается внутри kdm/gdm/lightdm, можно вручную запустить такой сервер от рута.

1.Самый простой и небезопасный вариант: На X-сервере отключается Access Control командой «xhost +», можно явно указать «доверенные ip» (нужно будет сделать на компе сервера). После этого на компе клиента пишем «DISPLAY=192.168.0.2:0 xterm» (ну или что там будет).

2. Чуть более безопасный вариант: переносим cookie, которая используется для авторизации с помощью xauth. На сервере «xauth list», переносим куки на клиент, на клиенте делаем «xauth add». В принципе, ssh -X делает что-то похожее автоматом, но живет это только в течение сеанса ssh и добавляется для дисплея localhost:10 (или просто :10, не помню). Если сервер запускался вручную, то никаких куки по-умолчанию не будет. Если сервер запускался через kdm/gdm, то можно попробовать подсмотреть куки где-то в районе /var/run/.

Еще можно XDMCP включить, тогда можно будет запускать полноценный сеанс на удаленном компьютере (но это видимо не то что нужно). В принципе, любой вариант считается небезопасным (по сравнению с ssh). Если в сети 2-3 доверенных компа, сеть домашняя, все за роутером, имхо, на «безопасность» можно забить.

Подробности в мануалах...

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

мне под 1366x768 нужно
канал на сервере 100 мегабит
а между сервером и ноутом всего 5
думаю не взлетит

Распакованное видео на 5Мбит/с точно не взлетит (даже 320x240x25x2(допустим yuy2)=3.7 Мегабайт/с). Xv, кстати передает немасштабированный исходник, растягивается он уже на сервере (оверлеи были даже на старых pci-видюхах, так что это не проблема).

Можно попробовать пересжать в какой-нибудь divx/xvid, который слабый комп гарантировано успеет распаковать (не заморачиваясь с настройками сжатия).

Еще в xine можно поставить охрененно высокую буферизацию, например, 300-500 кадров (я ориентировался на 10 секунд). С такими настройками при наличии порядка 1-2 гигов оперативки вполне можно посмотреть тяжелый .h264 на слабом компе. Тормоза наблюдаются не всегда, а только на «тяжелых» сценах, а на «легких» сценах процессор примерно наполовину загружен. В результате когда начинаются тормоза еще есть 10 секунд «в запасе». Если «тяжелая» сцена сменится «легкой», то будет время «добрать» недостающие кадры в буфер (правда чтобы добрать недостающие 10 секунд может потребоваться 20-30 и более секунд). Например, на целероне (Prescott) 2,4 ГГц вполне так смотрел фильмы в .h264 размером в 2 гига, которые в обычном режиме тормозили и дергались на «тяжелых» сценах.

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

я всё это затевал только ради быстрого просмотра фильмов
чтобы на сервер быстро скачать с торента например консольного и как-то передать на ноут
а ещё провайдер не режет соединения между двумя компами внутри сети
но толку от этого мало

smilessss ★★★★★
()

Так все-таки иксы умеют нормально OpenGL пробрасывать? Или вы через VNC собрались поток гнать?

Разве поток GLX команд соизмерим по битрейту с потоковой передачей изображения?

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

чтобы на сервер быстро скачать с торента например консольного и как-то передать на ноут

Я бы выбрал NFS, он идеально подойдет, если сервер относительно близко (просто там rpc придется разрешать, это уже слишком круто для локалки провайдера и тем более для интернета). Если сервак далеко, то можно sshfs через fuse попробовать (некоторые реализации кажется умеют не скачивать весь файл целиком).

Еще вариант - vpn+NFS. VPN, кстати не так уж и сложно настраивается.

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

Соединил комп напрямую и дал адреса 192.168.1.1 и 192.168.1.2. Убрал в настройках KDM "-nolisten tcp" и выполнил «xhost +» на сервере. На клиенте запускаю:

DISPLAY=192.168.1.1:0 konsole

Что-то ничего не вижу. Смотрю на монитор сервера - konsole там отлично запустился. Жму Ctrl-C на клиенте - konsole сразу пропал на сервере. Я думал что konsole запустится на сервере, а отобразится на клиенте, а не наоборот.

Пошёл на сервер, набрал vlc в этом konsole. На сервере отобразился VLC клиента. «Файл > Открыть» тоже показывает файлы ноута. Видео играется. Закрыл VLC и набрал glxgears и glxinfo. glxgears не работает, glxinfo пишет «Direct Rendering: no», «GLX: ATi», «OpenGL: NVIDIA 2.1.2». Странно что старая версия.

В принципе на этом можно остановиться, но я сделал кое-что ещё. Пошёл на клиент и закрыл иксы. Набрал:

DISPLAY=192.168.1.1:0 startx

Запустились три консольки от root при нативном разрешении ноутбука. «su -l zenitur» и «doom3.x86». Длинный лог, затем «Нет OpenGL». Получается что иксы запустились на сервере? Нет: glxinfo развеял мечты: всё от ATi.

Твой совет не помог до конца, но начало положено! Видео играется, теперь буду работать над пробросом OpenGL.

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

Перечитал написанное. А что если поменять местами клиент и сервер? Запущу на компе с видеокартой konsole, который отобразится на нетбуке, пересяду за нетбук, и запущу wine или нативную игру? Ругнётся на OpenGL... Так, тогда на сервере поставлю тоже ATi, и драйверы одинаковых версий.

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

запусти на одинаковых видюхах и дровах

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

В принципе удалось. Одинаковый драйвер, но на нетбуке дохлая графика, а на компе быстрая. Запустил на сервере konsole, который открылся на клиенте. Пересел за клиент, выполнил glxinfo:

name of display: 192.168.1.2:0
display: 192.168.1.2:0  screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: ATI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample,
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
    GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group,
    GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
    GLX_ARB_fbconfig_float, GLX_AMD_gpu_association
GLX version: 1.4
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample,
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
    GLX_EXT_texture_from_pixmap
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon HD 4200 Series
OpenGL version string: 2.1 (3.3.11318 Compatibility Profile Context)
OpenGL shading language version string: (null)
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, GL_ARB_imaging, GL_ARB_multisample,
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_point_parameters,
    GL_ARB_point_sprite, GL_ARB_shadow, GL_ARB_shadow_ambient,
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
    GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle,
    GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_window_pos, GL_ARB_shader_objects,
    GL_ARB_vertex_shader, GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
    GL_ARB_geometry_shader4, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_copy_texture,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_object,
    GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels, GL_EXT_point_parameters,
    GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texture3D, GL_EXT_texture_compression_s3tc,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_lod,
    GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
    GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array,
    GL_EXT_histogram, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
    GL_EXT_geometry_shader4, GL_EXT_gpu_shader4, GL_ATI_draw_buffers,
    GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once,
    GL_ATIX_texture_env_combine3, GL_IBM_texture_mirrored_repeat,
    GL_INGR_blend_func_separate, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SGIX_shadow_ambient, GL_SUN_multi_draw_arrays,
    GL_ARB_texture_float

А значит, 3D не пробрасывается, а ускоряется уже на нетбуке. Уже неудача, но дальше окажется что всё ещё хуже. Запустил glxinfo - лагает. Запустил ioquake3 - играется нормально, но сильно тормозит ввод (возможно софтварный баг: у меня и на локалхосте так было в этой Gentoo с немного другой ситуацией, а в Debian нет). Запустил Steam - он мне при запуске выдал окно в стиле GTK «У вас Indirect Rendering, это очень плохо. Как это может затруднить работу прочитайте по этой ссылке». Большинство игр не запустилось, запустился EDGE и Beat Hazard - оба тормозили, как при софтварном рендеринге.

Запустил VLC - работает отлично. Видео играется. Даже на полный экран. Но звук вместо того, чтобы проброситься, идёт с другого компа. Ну да ладно - здесь рядом.

Итак, я пробрасывал в оба направления, и всегда 3D не пробрасывается, а ускоряется уже на месте. Буду пробовать VirtualGL. А также придумаю что-нибудь со звуком.

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

Не получается. «emerge -av virtualgl» говорит что jpeg конфликтует с jpeg-turbo С "--nodeps" тоже не устанавливается. Сделал «equery d jpeg» - полсистемы от него зависит. Значит ничего не получится.

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

Зависит от virtual/jpeg. А virtual/jpeg зависит от

RDEPEND="|| (
                >=media-libs/libjpeg-turbo-1.2.0:0[static-libs?]
                >=media-libs/jpeg-8d:0[static-libs?]
                )"

Про Indirect Rendering есть такое: http://dri.freedesktop.org/wiki/GLcoreExtension/ где написано, что IndirectRendering только программный. Не факт что инфа актуальна.

На интеле у меня заводился kwin и судя по всему работал с аппаратным ускорением (запускался только kwin с удаленной машины, X-сервер и клиентские программы были на локальной машине). Работало это дело очень нестабильно, но тут еще большой вопрос кто именно виноват...

Наиболее удобный и отестированный вариант - VirtualGL, пробуй его.

anonymous
()

А что это, посаны, нет никакой хвалёной сетевой прозрачности, про которую все кукарекают, так что ли?

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

Не совсем. Все что не касается 3D работает отлично. Не работает 3D с аппаратным ускорением. Звук к X11 не относится.

anonymous
()

Я Starcraft 2 через VNC запускал. Тормозило, но это через 1.5 мб/с вай-фай.

anonymous
()

А как бы организовать такое же примерно, но для передачи картинки игры на Android устройство?

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