美文网首页
图像撕裂、掉帧及三级缓存

图像撕裂、掉帧及三级缓存

作者: E术家 | 来源:发表于2020-07-07 17:56 被阅读0次

    图像撕裂

    图像撕裂就像图中所示,同一副画面显示的内容无法上下对齐

    屏幕撕裂

    屏幕的更新频率是固定的,通常是60Hz。显卡效能大幅提高,输出的帧率可以非常高,如果显卡的输出高于60fps,两者不同步,画面便会撕裂。

    垂直同步

    屏幕扫描

    垂直同步的引入是为了防止图像撕裂,在屏幕扫描的过程中加了个锁,不会在扫描完成前提前获取到图像,防止了撕裂的出现。

    双缓存区

    GPU开辟了两个帧缓冲区

    双缓存区

    当A帧缓冲区拿到数据后,A上锁,屏幕控制器从A获取数据并扫描完成,A解锁。然后屏幕控制器指向B帧缓冲区,B上锁,获取并扫描完成B,这时A拿到GPU的新数据,B解锁。屏幕控制器再指向A,重复操作。
    垂直同步双缓存区的作用都是为了结局撕裂的问题,但是同时衍生出了一个新的问题,掉帧

    掉帧

    掉帧

    A帧显示后,B帧进入双缓冲区处理,但是到第二帧时,理应显示B帧,但是由于处理速度的问题,B还未处理完成,因而还是显示的A帧数据,即是掉帧

    三级缓存

    为了减少掉帧,引入了三级缓存,为了充分利用CPU/GPU的空余时间,开辟3个帧缓冲区,A显示屏幕,B渲染好,C再从GPU拿取渲染数据,当屏幕缓冲区和帧缓冲区都处理好了,屏幕控制器再指向另一个帧缓冲区,减少掉帧次数。
    这只是尽可能的减少掉帧,而不是完全解决,三级缓存一样可能出现掉帧

    相关文章

      网友评论

          本文标题:图像撕裂、掉帧及三级缓存

          本文链接:https://www.haomeiwen.com/subject/mdlzqktx.html