Rockchip | Rockchip Graphics与Display
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)
源代码: git clone git@github.com:markyzq/xf86-video-armsoc.git
主线: git://anongit.freedesktop.org/xorg/driver/xf86-video-armso
DDX 支持:
- 支持常见的x11显示和Hwcursor
- DRI2(EGL X11 客户端的请求)
- umplock(支持 EGL x11 客户端不撕裂)
/etc/X11/xorg.conf: Xserver 将解析此配置以查找 DDX 并配置信息
Section "Device"
Identifier "Mali-Fbdev"
Driver "armsoc"
Option "UMP_LOCK" "true"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Mali-Fbdev"
DefaultDepth 24
EndSection
1.1.3 UMPLOCK
源代码: wget http://malideveloper.arm.com/downloads/drivers/DX910/r6p1-01rel0/DX910-SW-99002-r6p1-01rel0.tgz
将 umplock 打补丁到内核,就可以找到 umplock 设备节点:
/dev/umplock
不要忘记启用 DDX umplock 选项:
Option "UMP_LOCK" "true"
umplock 仅用于 x11 图形堆栈,不需要 Wayland,因为 mali 已经在其驱动程序上进行了 Wayland 同步。
1.1.4 DDX(modesetting)
详细介绍见 ModeSetting 。
1.1.5 X11性能测试
2D 性能:
x11perf
3D 性能:
glmark2-es2
X11perf 工具可以从 x11-apps 轻松获取。
glmark2-es2可以从GitHub - glmark2/glmark2: glmark2 is an OpenGL 2.0 and ES 2.0 benchmark。
获取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
export XDG_RUNTIME_DIR=/tmp
weston --backend=drm-backend.so --idle-time=100
2. 使用 drm 和 cpu 渲染器运行 Wayland
weston --backend=drm-backend.so --idle-time=100 --use-pixman
--idle-time: weston 需要休眠多少秒,测试 Wayland 暂停和恢复很有用。
--use-pixman: 比较 gpu 或非 gpu 的性能和行为很有用。
1.2.3 Wayland性能测试
3D 性能: glmark2-es2-wayland
glmark2-es2可以从GitHub - glmark2/glmark2: glmark2 is an OpenGL 2.0 and ES 2.0 benchmark获取
OpenVG 测试: vg_api_tests
从 mali DDK 构建,使用 make bin/vg_api_tests 构建
1.3 不使用Graphics
如果您不想使用 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
-x11-: x11 后端
-drm-: GBM 后端
-wayland: wayland 后端
-sse-: 与霓虹灯类似,在mali 加速 memcpy,加速一些类似的 glTexSubImage2D api
-vg-: openVG 支持, 在 wayland 后端使用 vg_api_tests 测试
-dma_buf-: 支持 dma_buf
1.6 LibDRM
1.6.1 架构图
1.6.2 源代码
主线源代码: git clone git://anongit.freedesktop.org/mesa/drm
LIBDRM 是跨驱动程序中间件,它允许用户空间应用程序(例如 Mesa 和 2D 驱动程序)通过 DRI 协议与内核通信。
1.6.3 Mailing列表
一般开发者讨论在 dri-devel@lists.freedesktop.org 邮件列表中进行。
在 dri-devel Info Page 信息页面订阅列表。
档案可在 The dri-devel Archives 找到。
2 其他
有关完整 Linux graphics 堆栈的详细信息,请参阅 Freedesktop, ARM, Arch wiki 中的在线文档......
- http://moi.vonos.net/linux/graphics-stack/
- https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
- A brief introduction to the Linux graphics stack – Developer Log
Rockchip | Rockchip Graphics与Display相关推荐
- [RK3399][Android7.1] Display中的VOP模块介绍
OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02 什么是VOP ? 全称 Visual Output Processor, 是Rockchip ...
- 《Computer Graphics with OpenGL》计算机图形学读书笔记 02——计算机图形学软件
这里是<Computer Graphics with OpenGL>英文原版第四版的读书笔记,预计每一章写一篇读书笔记.本篇为第二章,简要介绍计算机图形学的相关软件.图形学相关软件可分为两 ...
- opengl绘制长方体线框_OpenGL 绘制长方体 计算机图形学
不同面填充模式显示出不同的效果,如下面三幅截图: 上图通过glPolygonMode(GL_FRONT, GL_LINE);函数的调用,实现了显示前面面上的边线,而下面的面显示为默认的面填充,显示效果 ...
- 图解opengl 3D 图形绘制实例
VC6 下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 opengl环境配置 http://blog.csdn.net/bcbo ...
- 机器人学习--Hans Moravec在斯坦福博士论文1980年-Obstacle Avoidance and Navigation in the Real World by a Seeing Ro
Hans Moravec,占用栅格地图的发明人. Obstacle Avoidance and Navigation in the Real World by a Seeing Robot Rover ...
- windows上dmg转换cdr_云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏...
本文关键字:无显驱vesa方式驱动osx10.14,mojave vga黑屏,云主机的显示器,非n非a卡黑果,waitting for root device,apfs modules stop 14 ...
- android navigation bar高度,Android获取屏幕真实高度包含NavigationBar(底部虚拟按键)
释放双眼,带上耳机,听听看~! public int getScreentHeight() { int heightPixels; WindowManager w = this.getWindowMa ...
- HDVPSS模块介绍及使用
HDVPSS模块即High-Definition Video Process Sub System,主要用于视频的capture.deinterlacing.scaler.up/down sample ...
- 终于知道为什么NVIDIA的linux驱动这么烂了,一波官方文档告诉你:Linux GPU Driver Developer’s Guide
还记得Linus在记者会上那句话吗? so,NVIDIA, F**k you! https://www.kernel.org/doc/html/latest/gpu/index.html Linux ...
最新文章
- 产品经理能力模型 答网友问
- 【Python】字典(Dictionary) items()方法
- springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)
- 将Java 8日期时间API与JSF和Java EE 7结合使用
- 取消回车表单自动提交
- 中国双频前端模块市场趋势报告、技术动态创新及市场预测
- xp3系统配置cocos2dx
- Discuz模板的制作方法
- LCD1602自定义符号的使用
- 如何一键关闭win安全中心(Windows Defender )
- NeuroImage: ADHD青少年右侧额下回皮层fMRI神经反馈的功能连接变化
- css样式表诞生,[css]简明教程 CSS样式表概述
- 《海边的卡夫卡》阅读琐记
- 建立自己的封装库(二)
- 站长应该如何挖掘长尾关键词
- #榜样的力量#内蒙古自治区互联网医疗服务系统丨数据猿新冠战“疫”公益策划...
- 用c语言实现《狼人杀》发牌系统【可自选模式】
- Unity 之 发布WebGL转微信小游戏过程详解
- GitHub登录网页及上传项目步骤
- Element-ui源码分析