Xgl 问题解决

(Redirected from Xgl Troubleshooting)
Jump to: navigation, search

Xgl仍然是非常新的程序,只在少量的硬件平台上进行了测试。我们正在努力使其易安装并消除所有BUG,但仍不完美。

如果您在“桌面效果”控制面板启用Xgl时访问到这个页面,那么浏览一下右侧的目录表或略读整篇文档寻找与您问题相关的信息。这也有一个页面详细讲述了 在SUSE10.1和SLED 10上设置Xgl,并包含了在不同的显卡上启用3D加速所需的步骤。

您也可以访问irc.freenode.org#Xgl获取更多的支持。

SLED 10上已知的BUG

  • 在您登出GNOME时,如果您已经使用了以前“保存当前设置“选项,那么当您切换到Xgl时,将不能自动地从metacity切换到compiz。最容易的解决方法就是在您的home目录删除.gnome2/session,然后登出并重新登入。
  • 如果您有多块显卡或禁用了主板的集成显卡,桌面效果也许不会正确地配置/检测到它们。
  • 如果您使用Intel显示芯片,在安装时不会启用3D支持,桌面效果不能够启用它们。您可以手动运行SaX2(在控制中心中点击“图形卡与监视器”),选择左下角的启用3D加速的复选框。然后重启桌面,应该就可以了。

SLED 10 RC2上已知的BUG

  • 对于自动安装ATI和NVIDIA驱动,Xgl也许不会工作。在SUSE上使用Xgl页面讨论了如何解决该问题。
  • 在64位(x86_64)平台下安装NVIDIA驱动后,桌面效果工具也许仍会通知您没有启用3D加速。这是检测代码的一个BUG,您可以通过按住Shift键并双击“3D加速”旁边的“禁用”来消除它。之后,您可以启用Xgl。在没有安装NVIDIA驱动时不要做此操作。
  • 有时在使用ATI显卡时,即使您没有安装驱动程序,也可以启用Xgl。您可以在控制台使用命令“gnome-xgl-switch --disable-xgl”来恢复传统的X服务程序上,之后如果您启用Xgl,您将会发现您再也无法登入了。
  • 一些java的应用程序(如跨平台的GroupWise客户端)无法显示窗体的内容,只是显示一个灰色的、空白的窗体。

在Xgl下使用特定软件包的问题

  • 一些软件(如Eagle CAD包)也许支持部分地或全部地透明窗体(您能看见标题栏和框架,但窗体将是空白、空或二者皆有)。
    在启动应用程序之前插入'export XLIB_SKIP_ARGB_VISUALS=1'来消除透明特性,这只是个临时的解决办法。

KDE中使用Compiz的问题

  • “窗体特有设置”和许多其它的kwin特有设置功能不能一起使用。(然而,devilspie包提供提供了window-manager-agnostic的扩展工具也能实现同样的功能。)
  • 没有KDE所特有的方式来配置compiz,您必须使用compiz的“gconf”插件和基于GNOME的“桌面效果”工具或gconf-editor。
  • Compiz按GNOME主题来调整窗体,不是按KDE主题来调整的。

几个KDE特有的BUG已经在RC2和RC3之间解决了(tasklist和pager不显示窗体,“显示桌面”按钮不好用。)

配置问题

这些问题大部分是由于在老版本SUSE上手工配置Xgl,或在不支持的显卡上。

常见配置错误

  • Xgl需要在xorg.conf启用复合提高扩展。事实上,这会事与愿违,如当启用复合选项时,NVIDIA驱动会缺省的禁用OpenGL。复合扩展由Xgl自身提供,不需要配置任何东西。
    如果您当启动compiz时碰见缺少复合扩展,您大概需要尝试在基本的Xorg服务程序是启动它(除了Xgl自身外这个服务程序已经不再被任何程序使用了)而不要在Xgl服务程序上。与之相应的,需要设置DISPLAY变量。
  • 当您启动Xgl时提示“无效长度(poly请求太大或内部Xlib长度错误)”的信息,compiz会重新连接的Mesa库与重新连接Xserver的软件光栅线不相配。实际上,这意味着您没有启用3D加速。调用sax2激活3D加速。如果您在Xorg(不是Xgl)上运行glxinfo|grep direct命令后显示"Yes"说明3D加速已经激活。请参见常见问题列表

一般硬件依赖问题

  • 如果硬件加速(像素渲染管线)不可用,那么XVideo会非常慢。如果使用复合管理器,只有当FBOs或pBuffers可用并激活时才会非常快或。完全透明全屏窗体也会有些问题(打开apps/compiz/general/screen0/options/unredirect_fullscreen_windows选项)。

ATI / 开源驱动 “radeon”

  • 驱动程序不支持pBuffer也不支持FBO。当使用复合管理器时所有的窗口都在软件中提供,结合的部分是硬件加速。令人惊讶地是,这个驱动对大多数用户已经足够了。
  • 目前支持R300和R400仍是实验性的,一些显示卡能正常工作,一些则不能。
  • radeon驱动也许会有些问题,因为它没有进行大量的测试。请归档一些基于R100和R200显卡的驱动,并注明到Xgl主页是否在基于R300和R400的显卡上正常工作。

ATI / 专有驱动 “fglrx”

  • 确认使用fglrx 8.25.18版本或以后的版本,早期的版本在使用Xgl时有许多的BUG。
  • X300、X600和X700只有在/etc/X11/xorg.conf 包含无文档说明的选项Option "KernelModuleParm" "locked-userpages=0"才会正常工作(可见openSUSE bugzilla entry #191839)。如果您用桌面效果工具启用Xgl,它将被添加为缺省的选项。
  • 当没有复合管理器(如compiz)运行时,驱动程序有点慢。不要在没有复合管理器时使用Xgl。

Intel / 开源驱动 “i810”

  • 驱动程序不支持pBuffer也不支持FBO。当使用复合管理器时所有的窗口都在软件中提供,结合的部分是硬件加速。令人惊讶地是,这个驱动对大多数用户已经足够了。在近期FBO的支持将会被加入到驱动程序中。
  • XVideo YV12表面是硬件加速(当不使用复合管理器或全屏无重定向窗体),但是由于视频驱动中的一个BUG使用缺少一个颜色通道,导致伪绿色或紫色。这个问题在新版本中已经解决了。

NVIDIA / 开源驱动 "nv"

  • 根本就不支持3D加速。Xgl也不能与软件模拟一起工作,无法结合使用。

NVIDIA / 专有驱动 "nvidia"

  • OpenGL加速不能与激活Composite一起很好的工作。在/etc/X11/xorg.conf中的这个选项应该被禁用,如果之前已经被启用。

注意:Xgl支持Composite,即使在xorg.conf文件已经被禁用。FBO可以与驱动程序一起使用来进行XVideo加速而不用pBuffers,在配置文件/etc/sysconfig/displaymanager中把
DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:pbuffer"修改为
DISPLAYMANAGER_XGL_OPTS="-accel glx:pbuffer -accel xv:fbo" (桌面效果工具缺省时设置这些选项)。

词汇表

Composite Extension
这是X的扩展,在离屏缓冲区中有一个完整的窗口继承关系子树。应用程序可以获取缓冲区的内容,并做它们想做的事情。离屏缓冲区能被自动合并到父窗口或被叫做复合管理器的外部程序合并。
FBO
帧缓冲对象(Frame Buffer Object)是OpenGL扩展,定义了一个简单的接口来绘制目标而不是Window系统提供的GL缓冲区。这个接口比pBuffers接口新并且清晰,但目前还有些不稳定。
pBuffer
像素缓冲区(简写为pBuffers)是为OpenGL提供者提供的额外的不可见的缓冲区。