Оригинальный автор(ы) | Дэвид Ревеман |
---|---|
Первоначальный выпуск | 2 января 2006 г. ( 2006-01-02 ) |
Тип | Дисплейный сервер |
Веб-сайт | web.archive.org/web/20070605230047/http://www.freedesktop.org/wiki/Software/Xgl |
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 Desktop продемонстрировала рабочий стол с использованием Xgl с несколькими визуальными эффектами, такими как полупрозрачные окна и вращающийся трехмерный рабочий стол. [6] [7] [8] Эффекты были впервые реализованы в композитном менеджере под названием glxcompmgr (не путать с xcompmgr), который сейчас устарел, поскольку несколько эффектов не могли быть адекватно реализованы без более тесного взаимодействия между оконным менеджером и композитным менеджером. В качестве решения Дэвид Ревеман разработал Compiz , первый полноценный менеджер окон композитинга OpenGL для X Window System. Позже, в сентябре 2006 года, был выпущен менеджер окон композитинга Beryl как ответвление оригинального Compiz. Compiz и Beryl объединились в апреле 2007 года, что привело к разработке Compiz Fusion .
OpenGL не определяет, как инициализировать дисплей и управлять контекстами рисования. Вместо этого эти операции обрабатываются API, специфичным для собственной оконной системы. На данный момент существует два разных подхода к решению этой проблемы инициализации. Скорее всего, большая часть каждого бэкенда будет содержать один и тот же код, а различия будут в основном в частях инициализации серверов.
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 года [обновлять]Xegl может быть запущен только с использованием графического оборудования Radeon R200 , и в настоящее время разработка заморожена. [11] Вероятно, так будет до тех пор, пока сервер Xglx не зарекомендует себя, а драйверы с закрытым исходным кодом не добавят поддержку API EGL, когда он должен стать прозрачной заменой для вложенного сервера Xglx.
Структурирование всего рендеринга поверх OpenGL может потенциально упростить разработку видеодрайвера. Это устраняет искусственное разделение ускорения 2D и 3D . Это выгодно, поскольку 2D-операции часто не ускоряются (что противоречит здравому смыслу, поскольку 2D является подмножеством 3D). [ необходима цитата ]
Он также удаляет весь зависящий от драйвера код из самого X-сервера и позволяет ускорить операции Composite и Render независимо от графического драйвера.
Аппаратное ускорение операций 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 . Эта технология была впервые представлена публике на PDC Microsoft в октябре 2003 года.
По состоянию на май 2006 года [обновлять]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]