Xgl

**Xgl** 是一個 X server，他藉由 OpenGL 技術充分發揮了新一代顯示卡優異的 3D 立體畫面表現能力；從「架構」的角度來看，XGL 透過了 glitz 位在 OpenGL 的上層。XGL 利用了聚合視窗管理器的幫助（像是 Compiz 或 Beryl）對所有使用 X、OpenGL 和 XVideo 所製作的應用和圖形效果提供了硬體加速的支援，所以能表現出包含調整視窗透明度、可旋轉的 3D 桌面、果凍效果等等令人嘆為觀止的立體特效。這個計畫最初由 David Reveman 發起，並在 2006 年 1 月 2 日的時候第一次釋出（release）。

## 歷史

2005 年，XGL 的很多工作基於實作的理由，先以閉門造車的方式完成。然後在 2006 年 1 月 2 日，開放原始碼，，而後針對許多顯示卡驅動加以改造，歸入了 freedesktop.org。X 伺服器的後端可採用 **Xglx** 以及 **Xegl**。2006 年 2 月起，Novell 桌面小組作了一次 eye-candy 特效展示，包括透明的窗口、可旋轉的 3D 桌面，從而使該專案聲名遠揚。eye-candy 特效最初在一個稱為 glxcompmgr 的複合管理器中實現，但幾個特效由於缺乏視窗管理員與複合管理器的整合，而無法有效實現。取而代之的是由 David Revenman 開發的 Compiz，這是第一個使用 OpenGL 來表現的複合視窗管理員（compositing window manager）。

## 後端

OpenGL 並未規範如何去啟始顯示和處理繪圖的細節。取而代之的是規範了一個特殊的中介 API 去驅動底層作業系統的繪圖系統呼叫。到目前為止，有兩種不同的後端（backend）途徑去解決這些初始化的問題。最有可能的是大多數各個後端將會包含相同的程式碼以及不同的差異將會首先在 servers 初始化部份上。

### Xglx

Xglx 是第一個針對這架構的後端實作。它也是目前發展上的焦點核心。其運作的原理就是在已經存在的 X server 上用 GLX 開一個 OpenGL 視窗，xgl 再來使用這個 OpenGL 視窗，這樣的概念類似於 Xnest。在未來，這種運作模式將只會提供專業的開發者使用，畢竟它存在著一個看似多餘的 X server 機制。在 2006 年 XDev 會議（XDevConf）上面，NVidia 這家公司明白的表示這樣的發展的方向是一個錯誤的方向，因為這讓 XGL 的後端竟然只是一個次級的 OpenGL 視窗（layared server）而不是一個獨立的個體（like X server），這將使得許多顯示卡的特效受限於最前端的 X server 而無法呈現。！（像是 3D 立體的 glasses） 儘管如此，卻不能否認這樣的一個設計方法，是將整個後端 "原型機" "全部實做出來" 的方法中，最快速而簡單的一招。這樣的作法可以讓開發者省略掉開發一些已經存在於前置 X server 上的項目，把精力集中在實做 Xgl 獨特架構的本體上面。

### Xegl

_Xegl_ 被認為是 Xgl 的未來，X Server 開發過程的長期日標。 它和 Xglx Server 分享部分繪畫代碼，但是 OpenGL 可繪畫的初始化和上下文管理則是由 EGL API 管理，EGL 由 Khronos 開發（EGL 是窗口系統無關的，相當於 GLX 和 WGL，GLX 用於在 X Window 系統上支援 OpenGL，WGL 用於微軟 Windows）。當前的實現是使用 Mesa 3D 提供直接的 OpenGL 彩現到影格快取或通過 DRI 到圖形硬體。2007 年 7 月時 Xegl 只能執行在使用 ATi Radeon R200 顯示卡的系統上，當前開發已經暫停了。 它將會被保留直到 Xglx Server 證明自己可行，並且閉源的驅動支援 EGL API，這時它才是一個顯而易見的 Xglx Server 的替代品。

Xegl 貌似已經失敗。

## 競爭者

對於另一競爭者微軟公司而言，他們也在自家的 Windows 作業系統上提供了相似功能的解決方案：視窗桌面管理器 DWM。有別於 Xgl 所採用的 OpenGL 技術，這套採用微軟自家 DirectX 技術的 DWM 已經在新一代的視窗作業系統 Windows Vista 中問世。

## 爭議

Xgl 在技術上為了要較好的實現 OpenGL 效能，需要用到目前一些 3D 顯示卡的特性。但目前對於 ATI 和 NVIDIA 顯示卡最新型號，只能以二進之代碼包的形式得到這些核心模組（無法得到原始碼）。目前這種情況變成了一個僵局，因為顯示卡製造商已經聲明不會支援完全開放原始碼，他們認為這會暴露他們硬體上的商業秘密。不過 Intel 公司從 Intel965 晶片組開始，公布其驅動程式的原始碼。這將是 Linux 硬體影片驅動發展上的一個里程碑。之後 ATI 也不斷發布了新老版本顯示卡的技術文件，把較老版本顯示卡驅動的維護間接轉移給開源社群。

## 可得性

2006 年 5 月，Xgl 含其附屬元件（像是聚合視窗管理員 Compiz 和組態設定工具等等）成為了 SUSE 10 這個 Linux 發行版中的非預設安裝項目，也以套件的形式成為 Frugalware Linux 和 SUSE Linux Enterprise Desktop 10 的一部份。在 Ubuntu 6.06 (Dapper) 和 Freespire 上，Xgl 更可以以最簡單的二進位程式碼來安裝。在 Gentoo Linux 上面 Xgl 也可以以 overlayed package 的形式取得。Arch Linux 的使用者也可以透過 PKGBUILD 來取得 Xgl。

Mandriva Linux 2007 內含由官方發行的由 Xgl 和 AIGLX 搭配 Compiz 所組成的 package 套件。另外 Mandriva 也提供了 drak3d 工具，讓使用者能愉快的使用兩鍵式滑鼠來搞定 3D 立體桌面的全部設定。

## 延伸閱讀

* X Window System
* AIGLX
* VirtualGL
* OpenGL
* Compiz

## 參考資料

## 外部連結

* Xgl
* Xegl
* Announcement of Xgl on the xorg mailing list （頁面存檔備份，存於網際網路檔案館）
* Accelerated X flame wars!—Maybe not 一篇說明 AIGLX 和 Xgl 有什麼差別的文章。

### 安裝和使用說明、論壇、尋求支援

* openSUSE wiki for Xgl
* openSUSE wiki for compiz
* German XGL/Compiz-Support
* 查詢支援 XGL 的顯示晶片，以及推薦的顯示晶片
* Xgl on Ubuntu 6.06 How-To.
* Xgl on Gentoo How-To
* 如何安裝和使用 Xgl: Novell （頁面存檔備份，存於網際網路檔案館），Ubuntu （頁面存檔備份，存於網際網路檔案館），Debian Etch （頁面存檔備份，存於網際網路檔案館），Gentoo Linux，Fedora Core，Arch Linux，Mandriva Linux，Frugalware Linux。

### 免安裝直接啟動使用光碟

* Kororaa Linux （頁面存檔備份，存於網際網路檔案館） 這套含有 XGL 功能的 LINUX 作業系統可以被直接安置在光碟裡面，您可以使用光碟片啟動體驗華麗的 XGL 功能而不會更動到任何的硬碟資訊。然而值得住意的是：由於 ATI 和 NVidia 的驅動程式和 GPL 著作權規範有所不相容，所以新版的 Kororaa Linux Live CD 將不支援這兩家公司的顯示卡，直到有符合 GPL 著作權宣告的新版驅動程式出現為止。
* Mandriva 在其最新版的 Live CD 中支援 XGL 功能。
* Sabayon Linux （頁面存檔備份，存於網際網路檔案館） 是一個支援 XGL 和 AIGLX 的 Live CD。 然而和 Kororaa Linux （頁面存檔備份，存於網際網路檔案館） 不同的是它支援了 ATI 和 NVidia 的顯示卡。另外它也可以被安裝在硬碟上面。

### 桌面貼圖、快照、screencast 及範例影片

* Novell 的 Xgl 展示（包含了影片和快照）
* Novell Open Audio podcast Xgl with David Reveman - 7 April 2006，discusses the basics and future of Xgl and Compiz
* Videos of Xgl on SUSE Linux Enterprise Desktop 10
* Slides, screenshots and a video with more effects
  * the video demonstrating Compiz on Xgl
* EGL specifications
* Article: The State of Linux Graphics （頁面存檔備份，存於網際網路檔案館） - overview of various approaches to replace the current X server.
* Binary packages for Ubuntu
* Unofficial community forums （頁面存檔備份，存於網際網路檔案館）
* Communication between Xgl and Xorg - For dummies
* RR4/RR64 - 32/64bit Xgl LiveDVD
* Ultra high resolution XGL-KDE demo and screencaps
  * 影片分流站台：saguratus.com Filefront
* Mandriva 3D Video （頁面存檔備份，存於網際網路檔案館）