【发布时间】:2011-08-12 23:07:20
【问题描述】:
我想知道如何在 Qemu 中添加虚拟 GPU? 有人告诉我这涉及添加一个使用 OpenGL 的新图形输出模块?
【问题讨论】:
-
Android 模拟器可以做到这一点并且是基于 QEMU 的,所以你可能想看看它的来源:stackoverflow.com/questions/5762039/…
我想知道如何在 Qemu 中添加虚拟 GPU? 有人告诉我这涉及添加一个使用 OpenGL 的新图形输出模块?
【问题讨论】:
你可能参考Create virtual hardware, kernel, qemu for Android Emulator in order to produce OpenGL graphics
我建议您做的第一件事是阅读源代码,如何将已实现的虚拟图形适配器的命令转换为图形输出。然后你应该重写它,改为使用 OpenGL 命令。一旦你得到了这个,你就必须真正发明一个新的虚拟 GPU 来提供来宾系统。我什至不会尝试模拟 GeForce 或 Radeon。无论如何,GeForce 都没有公开记录。
qemu 没有提供真正的 API 来实现 GPU。当然,有一些内部 API 用于实现 VESA 和 S3 仿真,但新的 GPU 将需要你重新做很多。
虚拟硬件应该提供一些 I/O 来传递绘图命令和数据。理论上,您可以在那里传递完整的 OpenGL 命令。然而 OpenGL 与硬件无关,而您实际上实现了“硬件”,因此您必须在那里找到一些平衡点。然后在 qemu 中,您必须实现该虚拟硬件以适当地执行渲染命令。
最后但同样重要的是,您必须为该虚拟硬件实现驱动程序,这将涉及向 Mesa 添加新驱动程序并为 Xorg 创建驱动程序。
【讨论】: