Разработчики проекта Fedora сообщили [3] о внесении изменений, которые позволили обеспечить работу [4] пользовательской оболочки GNOME Shell на любых видеокартах, без необходимости задействования современных 3D-драйверов. Изначально, GNOME Shell был работоспособен только с драйверами, поддерживающими OpenGL, что, например, мешало запуску данной оболочки в гостевых окружениях, работающих под управлением систем виртуализации. Изменения уже доступны в экспериментальном репозитории Fedora Rawhide, на базе которого будет построен релиз Fedora 17.
Возможность работы без 3D-драйверов обеспечена благодаря использованию входящего в последние версии Mesa Gallium3D-драйвера
llvmpipe [5], предназначенного для осуществления программного рендеринга путём использования LLVM для динамической компиляции шейдеров, обработки вершин и растеризации точек/линий/треугольников. Требующие привлечения GPU операции преобразуются в промежуточное представление LLVM и затем транслируются в стандартный машинный код для архитектур x86 или x86-64, без необходимости задействования GPU. Подобная эмуляция слишком сильно замедляет работу в случае запуска игровых приложений, требующих интенсивных 3D-вычислений, даже при распараллеливании вычислений и задействовании инструкций SSE2. Но для графических оболочек, таких как GNOME Shell и Unity 3D, производительности llvmpipe вполне хватает, особенно при отключении излишних графических эффектов - на глаз всё работает гладко и без рывков.
Работа llvmpipe в комплекте с GNOME Shell уже опробована в гостевой системе на базе KVM со стандартными драйверами xf86-video-vesa и xf86-video-cirrus. Все изменения, необходимые для запуска GNOME Shell без 3D-драйверов, уже внесены в пакеты, начиная с версий mesa-*-7.11-9.fc17, cogl-1.8.2-4.fc17 и gnome-session-3.3.1-2.fc17. Несмотря на то, что новый режим можно опробовать в действии, разработчики намерены [6] реализовать ряд существенных изменений, направленных на увеличение производительности и снижение нагрузки на CPU. В частности, планируется добавить ряд оптимизаций в код GNOME, ядро Linux, Mesa 3D и X.org, например, обеспечить автоматическое отключение визуальных эффектов в Mutter при работе через llvmpipe и создать фиктивный GEM-аллокатор на уровне DRM-модуля ядра Linux, который бы позволял осуществлять маппинг буферов в обычную память.
Дополнительно можно отметить, что некоторые пользователи выражают опасение, что работоспособность GNOME Shell на любом оборудовании приведёт к прекращению поддержки классического режима GNOME, который был оставлен в качестве резервного варианта для систем, не имеющих современных видеокарт. Адам Уильямсон (Adam Williamson) из компании Red Hat частично подтвердил [7] данные опасения, указав на то, что резервный режим временное явление, поддержка которого скорее всего будет прекращена как только удастся обеспечить работоспособность GNOME Shell на большей части оборудования.
Ссылки:
[1] http://htfl.ru/cat-news-fedora
[2] http://htfl.ru/cat-news-novosti
[3] /out.php?link=http://lists.fedoraproject.org/pipermail/devel/2011-November/158976.html
[4] /out.php?link=https://fedoraproject.org/wiki/Features/Gnome_shell_software_rendering
[5] /out.php?link=http://www.mesa3d.org/llvmpipe.html
[6] /out.php?link=https://fedoraproject.org/wiki/Features/Gnome_shell_software_rendering#Scope
[7] /out.php?link=http://lists.fedoraproject.org/pipermail/devel/2011-November/158983.html