我们在做界面显示的时候,如果处理器内置硬件图形加速,那显示效果将会大大提升。STM32有DMA2D,新唐N32926有BLT和VPE,对于全志的片子(f1c100s或者V3S)则是display engine,实现的功能差不多(包括显示数据格式转换、图层叠加、透明混合等,高级点的带旋转缩放)。
荔枝派nano的系统有drm接口,可以实现硬件plane的混合叠加,但功能很有限,而荔枝派zero的系统则没有生成drm接口,不知道是不是哪里配置不对?另外我们要怎样才能利用display engine的价值?使用LittlevGL和QT做界面都是纯软件绘图,有点浪费。
离线
nano你是怎么做的呢?
我是自己加libdrm,然后就可以基于它的接口进行编程,我也只是试了一下libdrm内置的测试程序。
离线
nano你用的是 linux4.14?4.15?
zero用4.13?
现在nano和zero都是5.2系统
离线
那没有理由没有drm,4.14以前的版本我记得就没有drm
对呀,我也是刚入门,不知道生成drm是依赖于哪些配置,对比了nano和zero的内核,相关配置是一样的,会不会是设备树的原因?但我看了设备树里面有display engine的节点。
离线
全志主线显卡都是软件驱动的,我觉得还是驱动配置和设备树的原因
我觉不是软件驱动的,在linux/driver/gpu/drm/sun4i/目录下有display engine的驱动,而且确实被调用了,实测plane叠加速度也不慢。
离线
请假楼主,有没有 libdrm 的测试代码,我试一试,
还有,这个drm 是软件实现的吗?
libdrm是一个开源库,这里可以下载: http://www.linuxfromscratch.org/blfs/view/stable/x/libdrm.html ,
下载到的库里面就有测试程序,其实也可以在buildroot里面勾选libdrm,会自动帮你下载和编译。另外libdrm只是将linux的drm驱动包装一下,使接口更加友好而已,实际功能实现还是在内核驱动里面,我觉得它是硬件实现的。
离线
嗯嗯,大家一起学习,把芯片用起来。
离线