美文网首页视觉学习
iOS-图片撕裂、掉帧初解读

iOS-图片撕裂、掉帧初解读

作者: 一代千禧 | 来源:发表于2020-07-06 00:57 被阅读0次

    敲黑板,划重点!!!

    图片撕裂:两帧或多帧图片在屏幕上显示,导致显示效果错位,效果图如下:

    掉帧:指的是重复显示同一帧图片,非丢失了某一帧内容(有疑问,见思考)


    图片撕裂流程图如下:

    为解决上述问题:iOS引入垂直同步Vsync + 双缓存区 DoubleBuffering 

    1、垂直同步Vsync:即加锁原理,当前帧内容没有显示完全时,不会读取下一帧内容,帧缓存区被锁定

    2、双缓存区 DoubleBuffering :即在GPU开辟两个帧缓冲区


    上述技术解决图片撕裂问题的同时引入了掉帧的问题

    如上图,当CPU+GPU处理图片的是时间>每一帧显示的时间(16.7ms)(1s中显示60帧,人视觉感官会更加流畅和逼真)时,帧缓存区无更新,继续显示当前帧内容

    为了解决上述问题:iOS引入了三级缓存技术,需要关注的是,该技术仅仅只是解决了掉帧出现的概率,没有从根本上解决掉帧的问题

    思考(问题):

    当前显示A缓存区数据,Vsync信号接受时,B缓存区帧数据未更新,那应该是显示当前帧的上一帧数据而不是同一帧数据,是B缓存区数据未更新时,即使A缓存区数据显示完成,屏幕控制器也不会指向B帧缓冲区吗?

    解答:掉帧时,还是显示的当前帧数据,由于B缓存数据未更新,不会去读B缓存区的数据

    相关文章

      网友评论

        本文标题:iOS-图片撕裂、掉帧初解读

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