对于有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来进行双缓冲切换,不会出现闪屏现象