请问怎么把2D加速整合到Qt?
-
请问怎么把2D加速整合到Qt?
-
@uuuuid 根据我之前移植LVGL经验来看,使用sunxifb替换devfb 然后使用宏打开 G2D开关,然后链接上动态库 libuapi.so 完成
-
对,新唐改的就是这个文件。
-
qt5base-5.15.2/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp
qt5 应该是改这个文件。
-
-
@cloud_d1 我给你移植好的代码包。分别支持 makefile 构建和 cmake 构建
littlevgl-8.tar.gz -
@bedrock 非常感谢~~
-
@cloud_d1 同求 lvgl整合g2d的方法
-
@bedrock 谢谢,不过我测试了下不开g2d与开g2d的效果,发现不开帧率是开启的3倍左右,同帧率下 cpu占用也符合这个关系,从benchmark上也能看出来差距,这是为啥呢
-
@lyr2021
1、首先LV_USE_PERF_MONITOR统计的不是真实的fps,lvgl可以没有限制的一直刷画面,看起来帧率的确高,但是滑动场景下,比较容易看到画面撕裂,不想看到撕裂就只能开双缓冲,像QT,MiniGUI这些框架也是如此,默认是没有用上双缓冲的
2、开启LVGL8_USE_SUNXIFB_DOUBLE_BUFFER后,可以解决画面撕裂的问题,但是需要做整屏buffer的拷贝,这里会比较耗时
3、开启LVGL8_USE_SUNXIFB_G2D后,就是把整屏buffer的拷贝从用cpu拷贝,切换到g2d拷贝
4、开启LVGL8_USE_SUNXIFB_G2D_ROTATE后,就可以用G2D旋转整个屏幕,会比原来的CPU旋转快很多
5、G2D的优势在于blend,scale,rotate,当前版本没有完全实现这些接口,也体现不出来 -
@anruliu 关于画面撕裂问题,测试下来,只要开区全屏buf就可以解决了,不用双buf
-
@lyr2021 全屏buffer只是相对于lvgl的,送给LCD始终都是一个buffer,在滑动方向和LCD刷新方向不一致情况下比较能明显看到撕裂,可以参考https://os.51cto.com/article/646550.html
Copyright © 2023 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号