Xgl
![]() Compiz на Xgl с реальной прозрачностью | |
Оригинальный автор(ы) | Дэвид Ревман |
---|---|
Первоначальный выпуск | 2 января 2006 г |
Тип | Дисплей-сервер |
Веб-сайт | сеть |
Xgl — это устаревшая реализация сервера отображения, поддерживающая протокол X Window System, разработанная для использования преимуществ современных видеокарт через их драйверы OpenGL , расположенные поверх OpenGL . [1] Он поддерживает аппаратное ускорение всех приложений X, OpenGL и XVideo , а также графические эффекты с помощью оконного менеджера компоновки, такого как Compiz или Beryl . Проект был начат Дэвидом Ревеманом из Novell и впервые выпущен 2 января 2006 года. Он был удален. [2] с сервера X.org в пользу AIGLX 12 июня 2008 г.
История
[ редактировать ]Разработка Xgl началась в 2004 году. До его выпуска в 2006 году он разрабатывался открыто в публичных списках рассылки, хотя в течение последних нескольких месяцев разработка Xgl была частной. [3] В тот день исходный код Xgl был вновь открыт для публики. [4] [5] и включен в freedesktop.org вместе с серьезной реструктуризацией, позволяющей использовать более широкий спектр поддерживаемых драйверов дисплея. Серверные части X-сервера, используемые Xgl, включают Xglx и Xegl . В феврале 2006 года сервер получил широкую огласку после публичной демонстрации, на которой команда Novell по настольным компьютерам продемонстрировала рабочий стол с использованием Xgl с несколькими визуальными эффектами, такими как полупрозрачные окна и вращающийся трехмерный рабочий стол. [6] [7] [8] Эффекты сначала были реализованы в составном менеджере под названием glxcompmgr (не путать с xcompmgr), который теперь устарел, поскольку некоторые эффекты не могли быть адекватно реализованы без более тесного взаимодействия между оконным менеджером и составным менеджером. В качестве решения Дэвид Ревеман разработал Compiz , первый полноценный оконный менеджер OpenGL для X Window System. Позже, в сентябре 2006 года, Beryl оконный менеджер был выпущен как ответвление оригинального 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 был долгосрочной целью разработки X-сервера. [10] Он разделяет большую часть кода рисования с сервером Xglx, но инициализация объектов рисования OpenGL и управление контекстом обрабатываются API-интерфейсом EGL, разработанным Khronos (EGL — это независимый от оконной системы эквивалент API-интерфейсов GLX и WGL, которые соответственно позволяют Поддержка OpenGL в X и Microsoft Windows). Текущая реализация использует Mesa-solo для обеспечения рендеринга OpenGL непосредственно в фреймбуфер Linux или DRI для графического оборудования. По состоянию на май 2024 г. [update] Xegl можно запустить только с использованием графического оборудования Radeon R200 , и разработка в настоящее время приостановлена. [11] Вполне вероятно, что так и останется до тех пор, пока сервер Xglx не зарекомендует себя и драйверы с закрытым исходным кодом не добавят поддержку API EGL, тогда он должен стать прозрачной заменой вложенного сервера 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 в технологии под названием Quartz Extreme , начиная с Mac OS X v10.2 . Quartz 2D Extreme является усовершенствованием этой функции и более сопоставим с Xgl. Как и Xgl, Quartz 2D Extreme обеспечивает ускорение OpenGL для всех операций 2D-рисования (а не только для компоновки рабочего стола) и поставляется с Mac OS X v10.4 , но по умолчанию отключен в ожидании формального объявления о готовности к производству. Core Animation является продолжением этой разработки для Leopard ( Mac OS X v10.5 ).
Было разработано несколько интерфейсов рабочего стола на основе 3D API, совсем недавно OpenCroquet и Project Looking Glass компании Sun Microsystems [1] ; они используют преимущества 3D-ускорения для программного обеспечения, созданного в их собственной среде, но, похоже, не ускоряют существующие настольные 2D-приложения, отображаемые в их среде (часто с помощью таких механизмов, как VNC ).
Microsoft разработала аналогичную технологию на основе DirectX , названную DWM , как часть своей операционной системы Windows Vista . Эта технология была впервые продемонстрирована публично на конференции Microsoft PDC в октябре 2003 года.
Доступность
[ редактировать ]По состоянию на май 2006 г. [update]Xgl X Server (и связанные с ним компоненты, включая менеджер компоновки Compiz и связанные с ним графические инструменты настройки) поставляется не по умолчанию в одном основном дистрибутиве Linux, SUSE 10.1, и включен в Frugalware Linux или SUSE Linux Enterprise Desktop 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» . Журнал Линукс . 68 : 24–26 . Проверено 6 февраля 2017 г.
- ^ «xorg/xserver — X-сервер» . Cgit.freedesktop.org . Проверено 24 января 2022 г.
- ^ «ALGIX, Nvidia, XGL и метасити» . Архивировано из оригинала 8 марта 2006 года . Проверено 24 января 2022 г.
- ^ Карстен Хайцлер (8 января 2006 г.). «Вопрос: Xserver/композитное поведение» . Lists.freedesktop.org . Проверено 24 января 2022 г.
- ^ «Код Novell XGL опубликован [LWN.net]» . Lwn.net . Проверено 24 января 2022 г.
- ^ «Novell публикует код Xgl — Slashdot» . Linux.slashdot.org . 8 февраля 2006 г. Проверено 24 января 2022 г.
- ^ «Удобство использования | SUSE Linux Enterprise Desktop» . xgl.opensuse.org . Архивировано из оригинала 29 июня 2012 года . Проверено 6 июня 2022 г.
- ^ «Ресурсы OpenSUSE XGL» . Opensuse.org . Архивировано из оригинала 4 апреля 2006 года . Проверено 24 января 2022 г.
- ^ «Использование существующей платформы загружаемых драйверов XFree86/X.Org для создания составного рабочего стола X» (PDF) . Скачать.nvidia.com . Проверено 24 января 2022 г.
- ^ Смирл, Джон (30 августа 2005 г.). «Состояние графики Linux» . Проверено 18 февраля 2016 г.
- ^ «cgit.freedesktop.org http виртуальный хост git» . Gitweb.freedesktop.org
- ^ «7,5» . Х.орг . Проверено 24 января 2022 г.
Внешние ссылки
[ редактировать ]
- Ксегль
- Технические характеристики ЭГЛ
- Статья: Состояние Linux Graphics — обзор различных подходов к замене текущего X-сервера
- видео, демонстрирующее Compiz на Xgl