我想知道是否有可能在没有Xorg和它的DDX驱动程序的情况下获得图形硬件加速,只有内核模块和用户空间驱动程序的其余部分。我之所以问这个问题,是因为我开始在嵌入式平台上进行开发(比如beagleboard,或者更确切地说,是一个集成了GPU的德州仪器ARM芯片),我可以在没有图形服务器开销的情况下获得硬件加速(这并不是必需的)。
如果是,是如何实现的?我在考虑OpenGL或OpengGLES实现,或者Qt嵌入式http://harmattan-dev.nokia.com/docs/library/html/qt4/qt-embeddedlinux-accel.html
TI提供了一个很大的文档,但我仍然不清楚http://processors.wiki.ti.com/index.php/Sitara_Linux_Software_Developer%E2%80%99s_Guide
谢谢。
发布于 2013-01-31 10:06:41
答案取决于您的用户应用程序。如果一切都是裸机,而您的应用程序团队正在编写所有内容,则可以按照Fredrik的建议使用DirectFB API。如果您使用GTK的帧缓冲区版本,这可能会特别有趣。
但是,如果您使用的是Qt,那么这不是最好的前进方式。Qt5.0取消了QWS (Qt embedded acceleration)。Qt正在迁移到现在称为的LightHouse。如果您编写的QPA插件通过您公开的任何内核机制使用您的图形加速,那么您已经加速了Qt图形。同样值得关注的可能是Wayland architecture;有用于Wayland的QPA插件。在Qt4.8+和Qt5.0+中支持QPA。Skia也是一个有趣的图形应用编程接口,支持OpenGL后端;
获得图形加速很容易。你想要合成吗?你的记忆足迹是什么?谁是您的开发人员受众,谁将编程到API?你需要对象功能,还是仅仅需要绘图基元?SKIA、PegUI、WindML和完全成熟的图形框架(Gtk、Qt)之间有很大的不同,它们拥有当今人们所期望的所有窗口小部件和动态效果。乍一看,对Petersson进行编程似乎很好,但是如果您的应用程序有任何复杂性,您将需要一个更丰富的图形框架;主要是重复Mats Petersson的注释。
编辑:来自Qt embedded acceleration链接的,
例如,slowest
这是您希望执行的绘图类型。像Qt和Gtk这样的框架,提供了在屏幕上放置单选按钮、复选框、编辑框等的API。它还具有文本的样式以及与键盘、鼠标和/或触摸屏和其他元素的交互。框架使用绘图引擎将对象放在屏幕上。
图形加速只是将像Bresenham algorithm这样的算法放在单独的CPU或专用硬件中。如果您选择的框架不支持3D对象,则这些框架不太可能需要OpenGL支持,并且的性能也不会更好。
拼图的最后一块是window manager。许多嵌入式设备不需要这个。然而,许多手机正在使用合成和alpha值来创建透明窗口,并允许同时看到多个应用程序。这也可能会影响您的图形API。
此外:DRI without X给出了一些令人信服的理由,为什么这可能不是一件好事;对于单用户任务,甚至不需要DRI。
下面是一个Wayland图形堆栈blog on Wayland的示意图。

发布于 2014-02-20 14:10:36
这是依赖于soc gpu驱动程序的实现,在iMX6上,你可以使用wayland composite on framebuffer,我构建了一个示例工程作为参考
在omap3上有一个项目
https://stackoverflow.com/questions/14615342
复制相似问题