Xgl

Jump to: navigation, search

简介

Xgl 是依附于OpenGL的一个全新的 Xserver 层。Xgl 可以执行复杂图形指令-比如渲染抗锯齿字体--明显比其他现有的不用 OpenGL 的 Xserver 快。目前执行的后端程序是 Xglx 但以后将会是 Xegl。

更重要的是,Xgl加速了负载的复合操作,通过针对OpenGL优化的复合/窗口管理,比如Compiz,使炫目视觉效果成为可能。这些视效有广泛的实际应用,使Linux更加易用,并为经验不足的用户创建了易于理解和切换的工作空间。

Xgl 必须配合compositor/窗口管理器混合使用才能实现全部功能。Compiz 是一个Xgl窗口管理器程序。

可能将来的显示硬件只支持 3D 指令,不再有 2D 内核。因此,Xgl 对所有依赖于X.org基金会的操作系统来说是一个重要的进步。

Cube-用 3D 立方体转换桌面,棱上还可以播放高分辨率电影。


开源的Xgl

2006上半年, Xgl 维护者 David Reveman 在freedesktop.org CVS 仓库提交了他最新的Xgl改进和 Compiz。现在,freedesktop.org作为发布维护Xgl包源代码的主机。

使用 Xgl/Compiz

在 SUSE Linux 上使用Xgl,参见在 SUSE Linux 上使用 Xgl。关于窗口管理器的信息在compiz页面。如果你碰到问题,请看Xgl 问题解决页面。

常见问题 (FAQ)

  • 我能用自己喜欢的窗口管理器协同 compiz 工作么?
    不行, compiz 个窗口管理器,每次只能运行一个。复合管理器和窗口管理器是不同的概念,很多效果需要两者紧密结合,就是所谓的复合窗口管理器。compiz 正是这样一个复合窗口管理器。
  • 那 glxcompmgr.rpm 和 xglx.rpm 是怎么回事?
    glxcompmgr 已经不用了,xglx 也一样。
  • 运行 Xgl 的时候不能实现直接渲染,但是在 Xorg 可以。为什么 OpenGL 程序不能加速了?
    请勿混淆硬件加速和直接渲染。如果驱动支持,比如nvidia和fglrx去定, OpenGL 可以在 Xgl 下实现 pBuffers 或 [Xgl_问题解决#术语表|FBOs]]加速。直接渲染就是另一回事了,目前不能执行,甚至还没有指定执行直接渲染需要的必要扩展,更不用说直接独立运行了。
    直接渲染意味着要硬件加速,而不是倒过来。直接渲染比间接渲染要快一些,但是间接渲染也没有听上去那么差劲。
    很不幸,对 Xorg 来说,直接渲染和图形加速是同义词,而且不像直接渲染,很难检测硬件加速是可用。
  • 我能把桌面放在顶面或者底面么?
    不行,这没什么意义。想想向上翻两下桌面就该头朝下了,或者你设置个了多个桌面那么你的顶面根本不是矩形。如果你觉得桌面数量不够,改变 apps/compiz/general/screen0/options/size 的值增加桌面。
  • 我怎么配置 Xgl 多显示器设置?
    目前 Xgl 和 compiz 不支持 Xinerama 扩展。目前在解决这个问题。
  • 所有这些都是 Xorg 7 一部分么?
    不是,Xgl 在 Xorg 社区内开发,但是一个不同的分支。整合将在 Xorg 7.1 发布以后发生。
  • 我怎样在配置文件中启用 Composite ?
    不用。 Xgl 本身支持 Composite,之下的 Xorg 无须输出 Composite。这很重要,比如,对 nvdia 驱动,同时使用OpenGL和Composite这里还有问题。
  • 怎么解决绘图出现破碎的情况?
    问题复杂,分类讨论。


技术背景说明

Xgl 和 compiz 都是主要有 David Reveman (Novell)创建,Matthias Hopf (SUSE)也作了一些工作。Dave Arlie, Adam Jackson (Red Hat)和 Jon Smirl 从事与独立的 Xegl工作,这里不作说明,但是也与 Xgl 相关。 Xgl 使用 glitz API 作为加速层,这是由 David Reveman 和 Peter Nilsson (UMU)设计开发的。

Xgl 是许多程序的前端,有 glx 后端 (也叫 Xglx) 集中了目前主要开发力量。这个后端运行在Xserver (像 Xnest) 之上,提供必要的 OpenGL 支持。有一个 -fullscreen 开关掌控创建一个全屏窗口。你必须提供一个显示名称,而且不能与原有 Xserver 同名。另外一个后端 Xegl 允许直接在 framebuffer 上运行Xgl。这个后端目前还远不完善,而且仅能在基于 ATI R200 显卡的 Linux 上运行。

glx 后端不能独立运行Xgl,它会在下层自动启动一个 Xorg server。SUSE的默认配置为之使用 display :93 。只有 Xgl 被允许与这个 Xorg server 交流,并为其他所有程序创建 display :0 。

硬件建议

已知这些显示类硬件可以比较好的运行XGL,如果有异议请添加内容。

  • Intel
    所有显示芯片组需要最新的 Xgl 和 compiz 包才能正常运行。请等待 SL10.1 rc1。
    • i915, i945
      加速 XVideo 在这些显卡上有问题。参看问题解决
  • NVidia
    所有NVIDIA显卡需要专有驱动运行Xgl。在Beta8上,你需要在安装专有驱动以后卸载并重装。
    • GeForce 4xxx 系列
      XVideo无法加速。
    • GeForce FX 5xxx 系列, Quadro FX 系列
      加速 XVideo 太慢,正在调查原因。
    • GeForce 6xxx 系列
    • GeForce 7xxx 系列
  • ATI
    • Mobility Radeon 9700 SE:以专有驱动 fglrx 8.23 运行 Xgl
    • Radeon X300: 在专有 fglrx 驱动 8.23 下运行 Xgl
    • Mobility X700 (PCI-E): 专有驱动 fglrx 8.24.8 Gnome中完美运行 Xgl

如果你不知道自己显卡,用root权限运行: hwinfo --gfxcard 如果你的显卡不在列表上,也可以参阅Gentoo硬件列表

有问题的硬件

已知有故障或不兼容的硬件:

  • ATI
    • Mobility Radeon M6 LY (7000), Mobility Radeon M9 (9000) 和 Mobility Radeon M9+ (9200)
      绘图混乱,偶尔闪烁。
    • Radeon 9200
      使用 fglrx 8.22.5 驱动没有硬件加速。
  • Intel
    • i855GM
      可以运行,但 compiz 可能在启动时崩溃,而且效果总体来说很慢。
    • i815, i845, i855
      太老了,Xgl 能运行,但是 compiz 不行。可能以后会添加一个兼容层。

链接