硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2314|回复: 5
收起左侧

[DMA2D] H750-lvgl使用dma2d帧率降低

[复制链接]

8

主题

30

回帖

54

积分

初级会员

积分
54
发表于 2024-11-7 12:53:50 | 显示全部楼层 |阅读模式
请教一个问题,lvgl刷屏函数不使用dma2d时,帧率有40fps,但是使用dma2d中断方式时,帧率却只有23fps,请问这是什么问题?按理说,开启dma2d不应该帧率会更高吗?
使用的屏幕分辨率是800x480,stm32h750+32位sdram,lvgl颜色格式是ARGB8888

不开启dma2d帧率

不开启dma2d帧率

不开启dma2d程序

不开启dma2d程序

开启dma2d程序

开启dma2d程序

开启dma2d帧率

开启dma2d帧率
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-7 13:33:16 | 显示全部楼层
1、LVGL的帧刷新,我觉得没什么实际价值。

比如我们V7板子,H750核心,800*480,我单缓冲方式,性能最差的这种,统计出来是100帧



而使用硬件消隐的双缓冲+DMA2D,才45帧:




2、使用DMA2D方式,不要开中断,这个是最用不到的中断方式,还无谓的耽误CPU执行时间。
回复

使用道具 举报

8

主题

30

回帖

54

积分

初级会员

积分
54
 楼主| 发表于 2024-11-7 13:49:39 | 显示全部楼层
eric2013 发表于 2024-11-7 13:33
1、LVGL的帧刷新,我觉得没什么实际价值。

比如我们V7板子,H750核心,800*480,我单缓冲方式,性能最差 ...

刚试了一下dma2d阻塞方式,帧率更低了只有17帧
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-8 09:23:52 | 显示全部楼层
国产娃娃菜 发表于 2024-11-7 13:49
刚试了一下dma2d阻塞方式,帧率更低了只有17帧

试试我这个
https://forum.anfulai.cn/forum.p ... &highlight=LVGL
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2025-4-22 02:26:27 来自手机 | 显示全部楼层
lvgl计算帧生成时间两部分,渲染时间和缓冲时间(lvgl9benchmark有显示),切换缓冲区马上flushready,因此缓冲时间为0,用dma2d会在缓冲完成中断才flushready,因此缓冲时间不为0,计算一帧生成的时间长了,所以帧率低了,实际切换显存缓冲时间也不是0,只是lvgl算的是0,实际缓冲时间是切换缓冲区到行中断的时间。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2025-4-22 02:36:58 来自手机 | 显示全部楼层
当然切换缓冲区到行中断时间很短,费时的是dma搬到显存的时间,切换显存的方式是直接渲染到显存,因此速度肯定快些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:55 , Processed in 0.052477 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表