1 Graphics介绍
1.1 使用X11 Graphics
Xserver 是在常规桌面 Linux 平台上使用的显示系统。
Rockchip 有一个定制的 Xserver ,可以实现 glamor 2D acceleration 。 Xserver 通常具有良好的兼容性,但性能可能会比其他显示系统少一些,而且它的体积要大一些。
Gstreamer X11 sink 支持 DRM 4k-Video 渲染(虽然很麻烦)。
1.1.1 架构图
Linux OS 中的 X11 结构
1.1.2 DDX(armsoc)
源代码
主线 DDX 支持: 支持常见的x11显示和Hwcursor DRI2(EGL X11 客户端的请求) umplock(支持 EGL x11 客户端不撕裂) /etc/X11/xorg.conf: Xserver 将解析此配置以查找 DDX 并配置信息
1.1.3 UMPLOCK
将 umplock 打补丁到内核,就可以找到 umplock 设备节点:
不要忘记启用 DDX umplock 选项:
umplock 仅用于 x11 图形堆栈,不需要 Wayland,因为 mali 已经在其驱动程序上进行了 Wayland 同步。
1.1.4 DDX(modesetting)
1.1.5 X11性能测试
2D 性能:
3D 性能:
X11perf 工具可以从 x11-apps 轻松获取。
获取glmark2-es2 源代码也可以为 x11、drm(gbm) 和 wayland 构建。
1.2 使用Wayland Graphics
Weston 是 Wayland 合成器的参考实现, 本身是一个有用的合成器。
1.2.1 架构图
1.2.2 Weston
Wayland 合成器的 Weston 参考实现。
1. 使用 drm 和 gpu 渲染器运行 Wayland
2. 使用 drm 和 cpu 渲染器运行 Wayland
1.2.3 Wayland性能测试
3D 性能: glmark2-es2-wayland OpenVG 测试: vg_api_tests
从 mali DDK 构建,使用 make bin/vg_api_tests 构建
1.3 不使用Graphics
If you don't want to use X11 or wayland, there are some chooses for you. Interface:
libdrm and libmali-gbm can be used to draw UI without display systems. Framework:
QT can work without x11 or wayland. Qt5 applications could be run on top of EGL(libmali-gbm).
如果您不想使用 X11 或 Wayland,有一些选择供您选择。 接口: libdrm 和 libmali-gbm 可用于在没有显示系统的情况下绘制 UI。 框架:
QT 可以在没有 x11 或 Wayland 的情况下工作。 Qt5 应用程序可以在 EGL(libmali-gbm) 之上运行。
1.4 MALI GPU 驱动
1.4.1 架构图
1.5 Mali构建选项
为 X11 构建:
VARIANT=mali450-gles20-eb-linux-sse-vg-x11-dma_buf
为 Wayland构建:
VARIANT=mali450-gles20-eb-vg-sse-linux-wayland-drm-dma_buf X11 堆栈仅使用 gpu x11 后端,Wayland 使用两个 gpu 后端,drm(gbm) 和 wayland
1.6 LibDRM
1.6.1 架构图
1.6.2 源代码
主线源代码
LIBDRM 是跨驱动程序中间件,它允许用户空间应用程序(例如 Mesa 和 2D 驱动程序)通过 DRI 协议与内核通信。
|