Xgl - Xgl
Compiz на Xgl с реальной прозрачностью | |
Оригинальный автор (ы) | Дэвид Ревеман |
---|---|
изначальный выпуск | 2 января 2006 г. |
Тип | Показать сервер |
Интернет сайт | сеть |
Xgl устаревший сервер отображения реализация поддержки X Window System протокол, разработанный для использования преимуществ современных видеокарт через их OpenGL драйверы, наложенные поверх OpenGL.[1] Он поддерживает аппаратное ускорение всех X, OpenGL и XVideo приложения и графические эффекты композитинг оконный менеджер такие как Compiz или Берил. Проект был запущен Дэвид Ревеман из Novell и впервые выпущен 2 января 2006 г. Он был удален[2] с сервера X.org в пользу AIGLX 12 июня 2008 г.
История
Изначально Xgl разрабатывался в публичных списках рассылки, но долгое время, до 2 января 2006 г.[3] разработка Xgl велась за закрытыми дверями. В тот день источник Xgl был вновь открыт для публики,[4][5] и включен в freedesktop.org, наряду с серьезной реструктуризацией, позволяющей расширить диапазон поддерживаемых драйверов дисплея. Бэкенды X-сервера, используемые Xgl, включают Xglx и Xegl. В феврале 2006 г. сервер получил широкую огласку после публичной демонстрации, на которой Novell команда настольных компьютеров продемонстрировала рабочий стол с использованием Xgl с несколькими визуальными эффектами, такими как полупрозрачный окна и вращающийся трехмерный рабочий стол.[6][7][8] Впервые эффекты были реализованы в составном менеджере под названием glxcompmgr (не путать с xcompmgr), теперь не рекомендуется, потому что некоторые эффекты не могли быть адекватно реализованы без более тесного взаимодействия между оконным менеджером и составным менеджером. В качестве решения Дэвид Ревеман разработал Compiz, первый правильный OpenGL композитинг оконный менеджер для системы X Window. Позже, в сентябре 2006 г. Берил композитинг оконный менеджер был выпущен как форк оригинального Compiz. Compiz и Beryl объединились еще в апреле 2007 года, что привело к развитию Compiz Fusion.
Бэкэнды
OpenGL не определяет, как инициализировать отображение и управлять контекстами рисования. Вместо этого эти операции обрабатываются API, специфичным для собственной оконной системы. На данный момент существует два разных подхода к решению этой проблемы инициализации. Скорее всего, большая часть каждого бэкенда будет содержать один и тот же код, и различия будут в основном в частях инициализации серверов.
Xglx
Xglx был первым сервером, реализованным для этой архитектуры. Для работы поверх него требуется уже существующий X-сервер, и он использует GLX для создания окна OpenGL, которое затем использует Xgl, аналогично Xnest. Этот режим предназначен только для использования в будущих разработках, поскольку он избыточен, требуя, чтобы X-сервер запускал Xgl поверх.
На XDevConf 2006 (X конференции разработчиков 2006 г.) NVIDIA сделал презентацию, утверждая, что это неправильное направление, потому что многоуровневый сервер абстрагирует функции карт. Это значительно затрудняет специфические возможности драйвера, такие как поддержка 3D-очков и двух мониторов.[9]
Однако делегирование инициализации существующему X-серверу позволяет разработчикам немедленно сосредоточиться на функциональности сервера, а не тратить значительное время на особенности взаимодействия с многочисленным видеооборудованием. На данный момент Xglx официально не поддерживает несколько мониторов, хотя это было реализовано в Ubuntu Dapper / ATI / NVIDIA (twinview).
Xegl
Xegl была долгосрочной целью разработки X-серверов.[10] Он разделяет большую часть кода рисования с сервером Xglx, но инициализация отрисовки OpenGL и управление контекстом обрабатываются EGL API, разработанным Khronos (EGL является независимым от оконной системы эквивалентом API GLX и WGL, которые соответственно позволяют Поддержка OpenGL в X и Microsoft Windows). Текущая реализация использует Меса-соло для обеспечения рендеринга OpenGL непосредственно в Буфер кадра Linux или DRI к графическому оборудованию. По состоянию на июль 2007 г.[Обновить] Xegl можно запустить только с помощью Radeon R200 графическое оборудование и разработка в настоящее время остановлены.[11] Вполне вероятно, что так будет и дальше, пока сервер Xglx не зарекомендовал себя, а драйверы с закрытым исходным кодом не добавят поддержку EGL API, когда он должен стать прозрачной заменой вложенного сервера Xglx.
Обоснование
Структурирование всего рендеринга поверх OpenGL потенциально может упростить разработку видеодрайвера. Снимает искусственное разделение 2D и 3D ускорение. Это выгодно, поскольку 2D-операции часто не ускоряются (что нелогично, поскольку 2D является подмножеством 3D).[нужна цитата ]
Он также удаляет весь код, зависящий от драйвера, с самого X-сервера и позволяет ускорить Композитный и Визуализировать операции не зависят от графического драйвера.
Конкуренты
Аппаратное ускорение операций 2D-рисования уже много лет является общей чертой многих оконных систем (включая X11). Новизна Xgl и подобных систем заключается в использовании API-интерфейсов, специально разработанных для 3D-рендеринга для ускорения 2D-операций на рабочем столе. До принятия X11 рисования со сглаживанием использование API-интерфейсов 3D-рендеринга для 2D-рендеринга рабочего стола было нежелательным, поскольку такие API-интерфейсы не обеспечивали гарантии точного рендеринга пикселей, которые являются частью исходного определения протокола X11.
Аппаратное ускорение рендеринга окон OpenGL и рабочего стола, ограниченного использованием OpenGL для композиции текстур, использовалось в Mac OS X в технологии, называемой Кварц Экстрим, поскольку Mac OS X v10.2. Кварц 2D Экстрим является усовершенствованием этой функции и более точно сопоставим с Xgl. Как и Xgl, Quartz 2D Extreme обеспечивает ускорение OpenGL для всех операций 2D-рисования (не только для компоновки рабочего стола) и поставляется с Mac OS X v10.4, но по умолчанию отключен в ожидании формального объявления о готовности к производству. Core Animation - это продолжение этих усилий для Leopard (Mac OS X v10.5 ).
Несколько интерфейсов рабочего стола на основе 3D API были разработаны совсем недавно. OpenCroquet и Sun Microsystems » Проект Зазеркалье [1]; они используют преимущества 3D-ускорения для программного обеспечения, созданного в их собственной структуре, но, похоже, не ускоряют существующие 2D-приложения для настольных ПК, отображаемые в их среде (часто с помощью таких механизмов, как VNC ).
Microsoft разработал аналогичную технологию на основе DirectX, назвал DWM, как часть его Виндоус виста Операционная система. Эта технология была впервые публично продемонстрирована на конференции Microsoft в октябре 2003 года.
Доступность
По состоянию на май 2006 г.[Обновить], Xgl X сервер (и связанные с ним компоненты, включая диспетчер композитинга Compiz и связанные с ним графические инструменты настройки) не входят в комплект поставки по умолчанию в одном из основных дистрибутивов Linux, SUSE 10.1, и включен в Frugalware Linux или Рабочий стол SUSE Linux Enterprise 10. Xgl довольно легко настроить для Ubuntu 6.06 LTS (Dapper Drake) и 6.10 (Edgy Eft) и для Freespire с бинарными пакетами из неофициальных репозитории. Xgl также доступен в виде наложенного пакета в Gentoo Linux, и как PKGBUILD для Arch Linux.
Mandriva Linux 2007 включает официальные пакеты для запуска Compiz, используя Xgl и AIGLX. Mandriva предоставляет drak3d, инструмент для настройки 3D-рабочего стола в два клика.
Ubuntu 6.10 "Edgy Eft" и более поздние версии AIGLX, а не Xgl по умолчанию.
Xgl был удален из X11R7.5 в 2009 году, поскольку это не поддерживаемый серверный вариант.[12]
Смотрите также
использованная литература
- ^ ХОПФ, МАТФИАС (2006). "BEYOND EYE CANDY: рабочий стол с ускорением OpenGL, Xgl и Compiz". Журнал Linux. 68: 24–26. Получено 6 февраля 2017.
- ^ Информация о версии XGL
- ^ ALGIX, Nvidia, XGL и metacity В архиве 8 марта 2006 г. Wayback Machine
- ^ Последний код XGL
- ^ Код Novell XGL опубликован
- ^ Код XGL для публичного выпуска Novell
- ^ SUSE XGL[постоянная мертвая ссылка ]
- ^ Ресурсы OpenSUSE XGL[постоянная мертвая ссылка ]
- ^ http://download.nvidia.com/developer/presentations/2006/xdevconf/compositing-with-current-framework.pdf
- ^ Смирл, Джон (30 августа 2005 г.). «Состояние графики в Linux». Получено 18 февраля 2016.
- ^ http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=history;h=master;hb=master;f=hw/xgl/egl/xegl.c
- ^ http://www.x.org/wiki/Releases/7.5 Выпуски X.org Foundation / 7.5
внешние ссылки
- Xegl
- Спецификации EGL
- Статья: Состояние графики в Linux - обзор различных подходов к замене текущего X-сервера
- видео, демонстрирующее Compiz на Xgl