• 4315阅读
  • 3回复

[原创]关于嵌入式Qt的显示加速---EXA驱动 [复制链接]

上一主题 下一主题
离线大漠之鹰
 

只看楼主 倒序阅读 楼主  发表于: 2017-03-03
对于有GPU的嵌入式设备,可以使用GPU硬件对Qt显示进行加速,可以加速的接口是QScreen下的SolidFill和blit两个接口。而对于嵌入式设备来说,一般文件系统不会加入庞大的Xorg。所以嵌入式Qt只能使用系统默认的framebuffer来显示,发挥不了GPU的性能。在Xorg下,采用的是EXA驱动对图形进行加速的,EXA驱动的加速接口包括Copy,Solid和Composite,正好和Qt下的Solid和blit接口对应。对Xserver下的EXA驱动进行部分删减,保留了与Copy和Solid相关的结构体和函数,通过drm来实现初始化显示设备,重新封装了Qt的SolidFill和blit函数,完美实现了Qt的2D加速。最后通过drmModePageFlip来进行双缓冲切换,不会出现闪屏现象

本是后山人,偶作前堂客,醉舞经阁半卷书,坐井说天阔。大志戏功名,海斗量福祸,论到囊中羞涩时,怒指乾坤错
QQ:874164244
离线wangmingxiao

只看该作者 1楼 发表于: 2017-08-21
楼主有没有测试下性能相对于直接framebuffer的提升幅度?
能不能简单点
离线大漠之鹰

只看该作者 2楼 发表于: 2017-08-22
回 wangmingxiao 的帖子
wangmingxiao:楼主有没有测试下性能相对于直接framebuffer的提升幅度? (2017-08-21 11:20) 

qtperf4测试的性能大概提升了10倍
本是后山人,偶作前堂客,醉舞经阁半卷书,坐井说天阔。大志戏功名,海斗量福祸,论到囊中羞涩时,怒指乾坤错
QQ:874164244
离线angelus

只看该作者 3楼 发表于: 2017-08-25
不是有OpenGL es2模式嘛
快速回复
限100 字节
 
上一个 下一个