something about XGL
Emanuele Tamponi’s post
My site about Xorg, Aiglx and Xgl
http://lists.freedesktop.org/archives/xorg/2006-March/014236.html
OpenGL & X
http://madman2k.net/article/36
covered 2 topics:
- Compositing Manager
- Accelerated X-Server
Article Explains How XGL/Compiz/Mesa/Device Drivers All Relate
http://www.breakitdownblog.com/tag/xgl/
Xgl的启动
(zhcn.blogspot.com/2007_05_20_archive.html )
刚才搜索xgl相关的知识,发现Emanuele Tamponi写的《How Xgl works》的综述比较明白,特别是关于Xgl如何启动的这部分:
第一步:Xgl和Xorg启动
- (记住我们讨论的是Xglx)
- Xgl启动。
- “Xgl初始化过程”启动Xorg。
- Xorg加载NVIDIA的X驱动
- Xorg加载NVIDIA的libglx作为其X Server的GLX扩展(作者称之为“隐含的GLX扩展”)
- Xorg可以给OpenGL客户程序提供直接OpenGL上下文。
第二步:请求上下文
- Xgl被链接到NVIDIA的libGL并用它来进行渲染。
- 目前,Xgl是一个OpenGL客户程序,故需要一个OpenGL上下文。
- NVIDIA的libGL使用自身的GLX函数开启一个同隐含的GLX扩展进行的会话。
- NVIDIA的libGL得到了一个给Xgl的OpenGL上下文。
第三步:Xgl开启并运行,提供了一个心的Xserver。
- Xgl现在可以用OpenGL函数绘制窗口和root。
- Xgl加载自己的libglx作为其X Server 的GLX扩展(作者称之为“Xgl GLX扩展”)。
- Xgl只能向OpenGL客户程序提供间接OpenGL上下文,原因在于Xgl GLX扩展会把OpenGL命令传递给Xgl。
第四步:一个OpenGL客户程序被启动
- Xgl内部,一个OpenGL客户程序被启动。
- 这一OpenGL客户程序被链接到NVIDIA的libGL上。
- 现在,它需要一个OpenGL上下文。
- NVIDIA的libGL使用自身的GLX函数开启一个同Xgl GLX扩展进行的会话。
- NVIDIA的libGL为它的客户程序获得一个间接OpenGL上下文。
- OpenGL客户程序可以用OpenGL函数绘制其内容,并被Xgl通过GLX协议接收。
- Xgl收到OpenGL函数调用并使用NVIDIA的libGL绘制内容。
