2

我通过将 glxgears.c 演示代码与 mesa 提供的 libGL.so 链接来编译它。

此编译适用于虚拟盒子中的 ubuntu 客户机,主机是 windows 7。

我在 ubuntu 中运行我的演示代码,在运行时它正在访问由虚拟盒来宾添加提供的 VBoxOGL.so 并使用主机的 3D 硬件加速。

如果我将 VBoxOGL.so 重命名为其他名称,我的演示代码不是使用硬件加速,而是使用软件渲染。

你能告诉我我的演示代码是如何连接到 VBoxOGL.so 的吗?

我需要来自 democode->libGL.so->how 的流程?->VBoxOGL.so->h/w。由于这两个库在编译期间没有链接在一起,我不确定如何将 libGL 调用定向到 VBoxOGL.so。

帮助我了解流程以及哪个库或模块正在执行此重定向。

4

1 回答 1

1

我不知道 Virtual Box 的内部结构,但我最好的猜测是它们要么 LD_PRELOAD 那个 .so 而不是 libGL.so,要么它被实现为 Mesa 状态跟踪器并像其他 DRI2 一样作用于 Mesa 的背面基于 GPU 的驱动程序可以。

于 2012-11-29T12:08:23.557 回答