Вы здесь

Работа драйверов от Intel с ядром 2.6.28

В связи с известной проблемой с драйверами от Intel с нетерпением ждал выхода ядра 2.6.28.
Дождался :), установил sys-kernel/gentoo-sources-2.6.28, однако никакого заметного, пусть даже в FPS-"попугаях", роста производительности не заметил.
Исчезновение строки "Failed to initialize TTM buffer manager. Falling back to classic." при вызове glxgears и некоторый рост производительности (c 60 fps до 160 fps) у меня появились после обновления x11-drivers/xf86-video-intel ещё на "старом" ядре (tuxonice-sources-2.6.26).
В связи со всем вышеизложенным вопрос:
Как можно убедиться, что поддержка GEM (Graphics Execution Manager) в ядре включена и нужно ли дополнительно её где-либо включать?
P.S. Вызов glxgears от root'а, как при старом ядре, так и при новом сопровождается выводом строки "Failed to initialize TTM buffer manager. Falling back to classic." и снижением FPS.

Согласно http://kernelnewbies.org/Linux_2_6_28 надо юзать версию не ниже 2.5.0
Hence, this first version of GEM works only with the i915 driver, and support on the X.org side is implemented only in the version 2.5.0 of the driver.

Однако :(

#eix x11-drivers/xf86-video-intel
[I] x11-drivers/xf86-video-intel
     Available versions:  [M]1.6.5 [M]1.7.4 2.1.1 (~)2.2.1 (~)2.3.2 (~)2.4.2-r3 
                          (~)2.4.3 (~)2.5.0 (~)2.5.1 (~)2.5.1-r1 {debug dri}
     Installed versions:  2.5.1-r1(00:22:45 11.01.2009)(dri -debug)
     Homepage:            http://xorg.freedesktop.org/
     Description:         X.Org driver for Intel cards

Я Gentoo & Funtoo

У меня стоит 2.6.28, xorg 1.5.3, mesa 7.2, intel 2.5.1
нету прироста и glxgears ругается при старте Failed to initialize TTM buffer manager. Falling back to classic.

и в glxinfo нет ничего про GEM:
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGI_swap_control, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
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_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_swap_control,
GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_visual_select_group
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) 945G 20061102 x86/MMX/SSE2
OpenGL version string: 1.4 Mesa 7.2

Notebook Dell Inspiron 1525
Video - Intel X3100

Kernel 2.6.28
xf86-video-intel - 2.6.0
Xorg - 1.5.3-r1
mesa - 9999 (собирал 21:34:49 05.01.2009 из layman x11)

death ~ # glxinfo | grep -i gem
OpenGL renderer string: Mesa DRI Intel(R) 965GM GEM 20080716
death ~ #

death ~ # glxgears
4402 frames in 5.0 seconds = 880.355 FPS
4558 frames in 5.0 seconds = 911.531 FPS
4554 frames in 5.0 seconds = 910.799 FPS
4540 frames in 5.0 seconds = 907.896 FPS
^C
death ~ #

Интересно, на X.org 1.3, mesa 7.0.3 и xf86-video-intel 2.1.1 имеем 1140 fps

Действительно интересно :) У всех одно и то же железо, драйвера, а вот результаты у всех отличаются кардинально :)

2a_v:

можешь свой xorg.conf показать?

Пожалуйста:

http://codepad.org/mSwoIrlP

FPS есть смысл сравнивать только с одинаковой версией mesa.

Тоже правда, только уж тогда mesa-progs.

тут полезная информация по решению проблеммы
http://ru.gentoo-wiki.com/wiki/HOWTO_video_Intel_and_GEM

нашел что в mesa-7.2.ebuild стоит myconf="${myconf} --disable-ttm-api", т.е. получается в mesa TTM отключен.

изменил disable на enable
ebuild mesa-7.2.ebuild digest
emerge =mesa-7.2

выдал, что не нашел файл xf86mm.h
порылся в инете и в /usr/portage/distfiles вроде это файл из x11-drm.
скопировал в /usr/include/xf86mm.h
Еще xf86mm.h нигде в mesa не инклюдится добавил строку в /usr/include/xf86drm.h: #include
Думаю, что это неверный способ, но разбираться было лень.

emerge =mesa-7.2

все скомпилилось, щас буду перегружать X.

все получилось, под kde 4.1.4 glxgears показывал 60 fps, сейчас 240 fps

Может, просто до этого вертикальная синхронизация была включена? :)

увидел, что в xorg-server выключена опция сборки dri2. С включенным dri2 не собирается.

1. На данный момент, чтобы заработал GEM вам нужен xorg из git'а. Его можно взять в оверлее X11 (layman -a X11). Но... не советую вам его юзать, если вы не представляете до конца, что делаете.

2. glxgears не является измерителем FPS. Это всего лишь простая утилитка для проверки работоспособности openGL. Об этом разработчики 100ни раз говорили. Как мерить FPS смотрите здесь: http://dri.freedesktop.org/wiki/Benchmarking

3. "Failed to initialize TTM buffer manager. Falling back to classic."
Это не ошибка а warning говорящий о том, что TTM не используется. Ничего страшного в этом предупреждении нет и извращаться и включать TTM не стоит ;) TTM мёртворождён и его больше не будет.

4. glxgears должен выдавать 50-60 fps. Это не баг а фича: теперь драйвера рендерят не на полную мощность, а не чаще чем частота вертикальной развёртки экрана (как раз 50-60 кадров в секунду). Хотите отключить эту фичу? Добавьте:

  <device screen="0" driver="i965">
    <application name="Default">
      <option name="vblank_mode" value="0" />
    </application>
  </device>
</driconf>

в ~/.drirc (и замените driver, если у вас другой драйвер ;) )

5.
> Как можно убедиться, что поддержка GEM (Graphics Execution Manager) в ядре
> включена и нужно ли дополнительно её где-либо включать?

Я точно не помню где, но по моему glxinfo где-то должен написать GEM.

На данный момент у меня всё работает и при тех драйверах/версиях Xorg, что лежат в дереве (заметьте, никакого GEM'а). Разве что для стабильности мне нужно было накатить патчи на ядро вот отсюда: ( https://bugs.gentoo.org/show_bug.cgi?id=253813 ) и размаскировать libdrm-2.4.4 (не забудьте почитать предупреждения в выводе libdrm). compiz работает плавно, и я не вижу больших проблем. Возможно есть некоторое падение FPS, но мне не с чем сравнивать ибо ничего кроме того, что сейчас стоит на ноуте у меня и не стояло... А что у вас за проблема?

Спасибо за развёрнутый ответ.
Предупреждений glxgears уже не выдаёт, fps на уровне 140-165, о GEM glxinfo молчит:

%glxinfo| grep GEM
%

Проблемы как таковой, наверно, и нет. Но, помнится мне, на старой версии xorg'а GoogleEarth как-то шустрее крутилась :) Да и, когда в KDE включаю эффекты, нет той плавности, как в Compiz'е (пользовался им раньше).

Я Gentoo & Funtoo

pva написал:
1. На данный момент, чтобы заработал GEM вам нужен xorg из git'а. Его можно взять в оверлее X11 (layman -a X11). Но... не советую вам его юзать, если вы не представляете до конца, что делаете.

2. glxgears не является измерителем FPS. Это всего лишь простая утилитка для проверки работоспособности openGL. Об этом разработчики 100ни раз говорили. Как мерить FPS смотрите здесь: http://dri.freedesktop.org/wiki/Benchmarking

3. "Failed to initialize TTM buffer manager. Falling back to classic."
Это не ошибка а warning говорящий о том, что TTM не используется. Ничего страшного в этом предупреждении нет и извращаться и включать TTM не стоит ;) TTM мёртворождён и его больше не будет.

4. glxgears должен выдавать 50-60 fps. Это не баг а фича: теперь драйвера рендерят не на полную мощность, а не чаще чем частота вертикальной развёртки экрана (как раз 50-60 кадров в секунду). Хотите отключить эту фичу? Добавьте:

  <device screen="0" driver="i965">
    <application name="Default">
      <option name="vblank_mode" value="0" />
    </application>
  </device>
</driconf>

в ~/.drirc (и замените driver, если у вас другой драйвер ;) )

5.
> Как можно убедиться, что поддержка GEM (Graphics Execution Manager) в ядре
> включена и нужно ли дополнительно её где-либо включать?

Я точно не помню где, но по моему glxinfo где-то должен написать GEM.

На данный момент у меня всё работает и при тех драйверах/версиях Xorg, что лежат в дереве (заметьте, никакого GEM'а). Разве что для стабильности мне нужно было накатить патчи на ядро вот отсюда: ( https://bugs.gentoo.org/show_bug.cgi?id=253813 ) и размаскировать libdrm-2.4.4 (не забудьте почитать предупреждения в выводе libdrm). compiz работает плавно, и я не вижу больших проблем. Возможно есть некоторое падение FPS, но мне не с чем сравнивать ибо ничего кроме того, что сейчас стоит на ноуте у меня и не стояло... А что у вас за проблема?

Можно конфигурацию системы ?

У меня работате однако. Конфигурация:
gentoo-sources-2.6.28-r1
xorg-server-1.5.99.902 (с 9999 дрова клавиатуры не собираются) и его зависимости
xf86-video-intel-9999 (aka 2.6.99.1)
mesa-9999

OpenGL renderer string: Mesa DRI Intel(R) 965GM GEM 20090114
OpenGL version string: 2.1 Mesa 7.5-devel

UPD:
xorg-server-1.5.3-r1
mesa-7.3
xf86-video-intel-2.6.1

Ubuntu is an African Word that means "Gentoo is too hard for me"