Продолжаю серию тестов нетбука Asus EEE PC 901. В предыдущей заметке написано как завести все это железо в рамках Gentoo Linux. Теперь самое время провести тесты видеокарты, результаты которых должны быть интересны в свете последних событий в развитии драйвера xf86-video-intel и интеграции в него новых фитч, повышающих его производительность и стабильность. Наибольший интерес представляет поддержка системы управления памятью GEM (Graphics Execution Manager), ибо уже подоспело ядро linux-2.6.28 и вполне юзабельным стал разрабатываемый xorg-server-1.6.0.
И так преступим. Установим xorg-x11-7.4 ( xf86-video-intel-2.5.1-r1, xf86-input-synaptics-0.99.3 и xorg-server-1.5.3), проконтролировав что установлены USE-флаги dri,hal,xv,xvmc, убран флаг SSE2 дабы не обновлять gcc до 4.3 и glibc до 2.9, а также устройства intel, vesa, synaptics, evdev, keyboard,mouse . Сразу стоит оговориться, что на сегодня по части производительности все что выше xorg-server-1.3 оставляет желать лучшего, но так как все-таки нетбук предъявляет дополнительные требования по функционалу, например, подключение устройств ввода/вывода "налету", придется закрыть на это глаза.
Убеждаемся что syslog-ng, acpid, sshd и hald будут стартовать автоматом при загрузке и перезагружаем подопытного для чистоты эксперимента. Заходим по ssh пользователем root и стратуем с пустым xorg.conf- starx. Смотрим что нам говорят glxinfo и glxgears: failed to initialize TTM buffer и direct rendering: Yes, 60FPS всреднем (что значит включен VSinc). Каких либо серьезных тестов проводить не буду, ибо уже 100 раз тестировалось. Мне главное убедиться, что от всех этих новых штучек будет прок в простых задачах: 2D, Video, простые OpenGL игры.
Теперь выполним более реальный тест, оценив производительность тулкита GTK. Сразу оговорюсь, для отрисовки шрифтов будут использоваться патчи из оверлея bobrik-cleartype, дабы на LCD шрифты смотрелись не так страшно (особенно когда есть с чем сравнивать). Устанавливаем gtkperf-0.4, gtk+-2.12.11, cairo-1.8.6-r1(glitz opengl) и запускаем очередную серию тестов. Получаем Total time: 16.86. Крутим опции драйвера видюхи следующим образом:
И так преступим. Установим xorg-x11-7.4 ( xf86-video-intel-2.5.1-r1, xf86-input-synaptics-0.99.3 и xorg-server-1.5.3), проконтролировав что установлены USE-флаги dri,hal,xv,xvmc, убран флаг SSE2 дабы не обновлять gcc до 4.3 и glibc до 2.9, а также устройства intel, vesa, synaptics, evdev, keyboard,mouse . Сразу стоит оговориться, что на сегодня по части производительности все что выше xorg-server-1.3 оставляет желать лучшего, но так как все-таки нетбук предъявляет дополнительные требования по функционалу, например, подключение устройств ввода/вывода "налету", придется закрыть на это глаза.
Убеждаемся что syslog-ng, acpid, sshd и hald будут стартовать автоматом при загрузке и перезагружаем подопытного для чистоты эксперимента. Заходим по ssh пользователем root и стратуем с пустым xorg.conf- starx. Смотрим что нам говорят glxinfo и glxgears: failed to initialize TTM buffer и direct rendering: Yes, 60FPS всреднем (что значит включен VSinc). Каких либо серьезных тестов проводить не буду, ибо уже 100 раз тестировалось. Мне главное убедиться, что от всех этих новых штучек будет прок в простых задачах: 2D, Video, простые OpenGL игры.
Теперь выполним более реальный тест, оценив производительность тулкита GTK. Сразу оговорюсь, для отрисовки шрифтов будут использоваться патчи из оверлея bobrik-cleartype, дабы на LCD шрифты смотрелись не так страшно (особенно когда есть с чем сравнивать). Устанавливаем gtkperf-0.4, gtk+-2.12.11, cairo-1.8.6-r1(glitz opengl) и запускаем очередную серию тестов. Получаем Total time: 16.86. Крутим опции драйвера видюхи следующим образом:
Section "Device"Все, запускаем опять gtkperf и видиим. Total time: 303.83. В целом все медленнее незначительно, но львиная доля уходит на:
Identifier "Configured Video Device"
Option "AccelMethod" "UXA"
Option "Tiling" "No"
EndSection
GtkDrawingArea - Lines - time: 264.64
GtkDrawingArea - Circles - time: 10.72
GtkDrawingArea - Text - time: 12.25
Что то не ладно с новым методом акселерации (UXA), возможно надо mesa и xorg-server посвежее. Теперь посмотрим на поддержку 3D. Серьезные тесты гонять нет смысла хотябы потому, что это железо не предназначено для таких задач. Ограничимся запуском игрушки games-action/extreme-tuxracer. Пока не будем шаманить с 3D (например, забудем о force_comptex_s3tc.so), посотмрим дефолтовую производительность. Как оказалось смотреть не начто: в full-screen при 1024x600 оно не играбельно. Ну что же, если брать релизные версии софта, то Intel GMA900 не годится для игровых приложений, разве только для ускорения видео и Compiz. Скорее всего тут где-то что-то не так, но большого желания искать узкое место нет, лучше посотмреть что ожидается в следующем xorg-server, а вместе с ним и драйвер 2.6, GEM, обновленный libdrm и ядро со свежим DRM-модулем.
Добавим оверлей X11 и возьмем от туда следующие компоненты, попутно обновятся pixman и randr:x11-proto/inputproto-9999Опционально можно обновить и эти библиотеки(я не стал пробовать), однако есть риск словить нестыковки с другими библиотеками такими как cairo и gtk :
x11-libs/libdrm-9999
media-libs/mesa-9999
x11-base/xorg-server-9999
x11-drivers/xf86-video-intel-9999
x11-drivers/xf86-input-mouse-9999
x11-drivers/xf86-input-keyboard-9999
x11-drivers/xf86-input-evdev-9999
x11-drivers/xf86-input-synaptics-9999
x11-proto/dri2proto-9999
x11-proto/xproto-9999
x11-proto/xcb-proto-9999
x11-libs/libxcb-9999
x11-libs/libX11-9999
Смотрим на результаты gtkperf: Total time: 15.77. Уже не плохо. Включаем метод акселерации графики UXA(tiling теперь не нужно отключать) и получаем первую прибавку: glxgears выдает 259FPS. Походу Vsync теперь отключен в Mesa (чето такое я видел в лога репозитария на тему еще недопиленого UXA). А вот gtkperf дает осечку, хотя не такую страшную: Total time: 18.21. Кстати стоит заметить отсутсвие ругани на TTM buffer, значит GEM работает. Также судя по логам DRI2 тоже работает. Запустим нашу игру etracer: вау!, в 2 раза быстрее, теперь выдает 3FPS вместо прежних 1.5FPS. Вот они обещанные 50%, :) надо будет подумать может где загвоздка, но пока это не суть важно. Можно конечно попробовать снапшот ядра drm-intel. Насколько я понял, в ветке drm-intel-next ведутся основные разработки по необходимым нам модулям drm. Однако посмотрел логи, серьезных изменеий относительно производительности я не заметил, только фиксы и поддержка kernel-videomodeset.
Ну пожалуй до полной картины осталось протестировать воспроизведение видео. О наличи в каком либо плеере/библиотеки/драйвере аппаратной поддержки декодирования видео(как например у nvidia) на видюхах Intel я не знаю(). Поэтому сделаю просто: установлю mplayer-9999 из оверлея berkano. i8x0 xvmc у меня не заработало, что бы я не прописывал в /etc/X11/XvMCConfig: libIntelXvMC.so.1 или libI810XvMC.so.1:localhost ~ # cat /var/log/Xorg.0.log | grep XvMC
(**) intel(0): Option "XvMC" "true"
(==) intel(0): Intel XvMC decoder disabled
Значит сломано до сих пор или както по другому включается(когда включится то можно будет проверить на xine-lib). Теперь пробуем различные видео записи(с оглядкой что просмотр идет по 100мбит сети). В качестве примеров несколько файлов наугад: big_buck_bunny_1080p_surround.avi (1Gb), Stargate.The.Ark.Of.Truth.2008.1080p.HDTV.x264-hV_RUS_ENG.mkv (7Gb), и несколько простых фильмов. Без Direct Rendering (опция -dr, не путать с DRI) смотреть почти все(заисключением широкоэкранных фильмов низкого разрешения) некомофртно: заметны дерганья картинки во многих сценах. Самый быстрый(и единственный комофртный) вывод видео через Xvideo. OpenGL и особенно Textured video(gl2) в данном случае оказались мало пригодны для просмотра тоже. Особенно разницу видно на "Звездных вратах": на XVideo идет дерганое видео и звук, на GL и GL2 все начинает тормозить начиная с заставки "со львом", сам фильм же уже нельзя назвать дерганый, он уже рваный. Да и вывод через gl/gl2 не сильно разгружает проц: от 5 до 15% разницы.
Подитожу выше сказанное: большого толка от этих карточек с ускорением нет - уж слишком занижены частоты и медленный обвяз. XvMC не понятно как включать, возможно оно не хочет заводиться с DRI2. Вцелом, драйвер intel-2.5 поправил баги накопившиеся, какой либо эффект от UXA в сравнении EXA в области 2D особо не наблюдается, даже наооборот. Получается, если не нужно 3D вообще, то можно смело забить на GEM, по части Xvideo это мало чем поможет. Тут два выбора: если необходим функлионал XRandR, XOrg.Hotplug то нужно смотреть в сторону xorg-server-1.5/1.6 и всех этих плюшек, в противном случае смело откатываться на xorg-server-1.3 и не париться. Как мне кажется, нужно подождать первых ласточек 2.6.29, к тому времени в нем возможно улучшат Intel DRM, да и libdrm, intel-2.6 и xorg-server-1.6 возможно подшаманят.
Подитожу выше сказанное: большого толка от этих карточек с ускорением нет - уж слишком занижены частоты и медленный обвяз. XvMC не понятно как включать, возможно оно не хочет заводиться с DRI2. Вцелом, драйвер intel-2.5 поправил баги накопившиеся, какой либо эффект от UXA в сравнении EXA в области 2D особо не наблюдается, даже наооборот. Получается, если не нужно 3D вообще, то можно смело забить на GEM, по части Xvideo это мало чем поможет. Тут два выбора: если необходим функлионал XRandR, XOrg.Hotplug то нужно смотреть в сторону xorg-server-1.5/1.6 и всех этих плюшек, в противном случае смело откатываться на xorg-server-1.3 и не париться. Как мне кажется, нужно подождать первых ласточек 2.6.29, к тому времени в нем возможно улучшат Intel DRM, да и libdrm, intel-2.6 и xorg-server-1.6 возможно подшаманят.