需求
使用 guix,是否需要显存? 显存需要多大?
解决
是否需要显存?
gui 显示一般就是两种方式,直驱或者显存刷新。
直驱
直驱的意思是,程序中界面需要变化时,直接向显示设备中对应的区域写入新的数据。
-
好处是: 不需要显存,那里变化改那里。适合于 RAM 小的情况。
-
坏处是: 因为没有显存,所以在更新时经历这样的过程: 1. 先清除相关区域;
- 绘制背景; 3. 绘制前景. 这种多步骤的实现方式,加上小容量 RAM 一般
使用的是接口屏本身的速度限制,很容易会造成整体时间过长,人眼看上去容易有闪烁和撕裂的情况。也就是闪屏的情况。
显存
显存的意思是,程序中界面需要变化时,把需要更新的数据先更新到显存中,然后 gui 会一次把最终结果写入到屏幕。
- 好处是: 这种情况下屏幕更新需要的时间很短,只有直驱的 1/3,显示稳定,没有闪烁的情况。
- 坏处是: 需要 RAM 足够大,能够容纳整个屏幕,这样才能作为显示缓冲来工作。
总结
如果 RAM 够大,推荐显存方式,不闪屏,体验好。如果 RAM 小,屏幕小,用户对于显示效果不敏感,就可以使用直驱方案。
显存容量计算
显存占用的 RAM 计算方式: 屏幕长 * 屏幕宽 * 单个像素点字节数。
比如: 320 * 240 的屏幕,使用 16bit 位宽的像素,那么显存大小就是 320 * 240 * 16 / 8 = 153.6 kB.
并且使用 gui + 显存的方案,一般会搭配 DAM2D 来加快数据传输,包括新数据写入显存,以及显存通过 fmc 更新到屏幕。