openharmony display

https://github.com/openharmony/drivers_peripheral/blob/master/display/README_zh.md

源码路径,这里是对rk3588的display层适配

device/soc/rockchip/rk3588/hardware/display

├── include

└── src

├── display_device (代码量最大的部分,包括图像同步、管理等)

├── display_gfx (看起来是一些格式转换的接口)

└── display_gralloc (显存管理,分配内存然后告知drm驱动)

display_device中的内容,hdi就是把drm的东西抽象了一下:

├── display_composer_vdi_impl.cpp (显示属性、配置、设置的接口)

├── drm_connector.cpp (亮度调节、屏幕能力获取、热插拔处理,只支持了MIPI DSI HDMI VGA)

├── drm_crtc.cpp (将RGB数据组合传输给显示设备)

├── drm_device.cpp (/dev/dri/card0 打开)

├── drm_display.cpp (依旧是获取一些显示的属性)

├── drm_encoder.cpp (只有一个获取crtc的接口)

├── drm_plane.cpp (获取plane属性)

├── drm_vsync_worker.cpp (vsync软件和硬件方式的初始化)

├── hdi_composer.cpp (composition相关)

├── hdi_device_interface.cpp (drmdevice init)

├── hdi_display.cpp

├── hdi_drm_composition.cpp

├── hdi_drm_layer.cpp

├── hdi_gfx_composition.cpp

├── hdi_layer.cpp

├── hdi_netlink_monitor.cpp

├── hdi_session.cpp

plane对应显示处理器中的layer;

crtc对应显示处理器中的图层合成以及时序的生成的模块;

QA:

1、为什么只有一些简单的接口,渲染在哪里做的?

答:目前看起来应该是render_service调用的opengl进行的渲染,而drm这边的适配只有一些简单的属性和vsync的适配而已。

相关推荐
好评1246 小时前
【Linux】网络基础概念
linux·网络
杨云龙UP6 小时前
Toad for Oracle 调整表空间 Datafile 大小:Usage、Used Pct of Max 与 RESIZE 实战
linux·运维·服务器·数据库·oracle·dba·数据库运维
raindayinrain6 小时前
深入理解linux内核--文件页高速缓存,页框回收,性能优化
linux·性能优化·高速缓存·页框
badboy1217 小时前
Xilinx Vitis Core Development Kit 2025.2.1_Win+Linux
linux·fpga开发·xilinx
那年窗外下的雪.7 小时前
Linux 学习笔记
linux·笔记·学习
小张同学a.7 小时前
MooseFS 分布式存储实战指南:部署、运维与 Pacemaker+SBD 高可用落地
linux·运维·分布式·pacemaker·moosefs·sbd
精进之道7 小时前
拆开一个 .rpm 文件,里面到底装了什么?
linux
wuminyu7 小时前
JDK21 FFM异步读取MSG_ZEROCOPY错误队列揭秘
java·linux·c语言·jvm·c++
Eloudy8 小时前
sunshine - ubuntu 22.04, moonlight - mac OS26 远程桌面
linux·运维·ubuntu
苍狗T8 小时前
K8s 集群实战:基于 Harbor 私有仓库 + cri‑dockerd 完整部署
linux·运维·云原生·容器·kubernetes