美文网首页
屏幕撕裂说明

屏幕撕裂说明

作者: 旅行者_sz | 来源:发表于2020-07-05 16:27 被阅读0次

一、概念

屏幕撕裂是我们肉眼看到的一张图片上下发生错位,即断层,如下图:


撕裂效果.jpg

其本质是拿到图像后,GPU进⾏渲染->帧缓存区⾥ ->视频控制器->读取帧缓存区信息(位图) -> 数模转化(数字信号处->模 拟型号) ->(逐⾏扫描)显示,当第一帧图像扫描到某个位置时,GPU拿到新的数据并存到帧缓冲区,这个时候视频控制器从帧缓冲区扫描的是新拿到的一帧的图像,最后就形成了在我们肉眼看到的断层现象,即我们看到的一张图片其本质是两张图片组合而来,究其原因就是视频控制器显示速度小于了GPU处理图形的速度。

二、解决方式

为了解决撕裂,苹果引入了: 垂直同步Vsync + 双缓存区 DoubleBuffering

(1)垂直同步Vsync:帧缓存区加锁 防⽌出现撕裂情况

(2)双缓存区 DoubleBuffering :就是GPU开辟AB两个帧缓冲区

(3)掉帧: 启⽤垂直同步Vsync + 双缓存区 DoubleBuffering 解决(屏幕撕裂问题) ->新的问题

执行流程就是当A帧缓冲区拿到第一帧数据,给A缓冲区加上一把锁,屏幕控制器从A拿到数据并逐行扫描完成,A帧缓冲区解锁,并且屏幕控制器指向B帧缓冲区,B帧缓冲区加锁并逐行扫描显示,在屏幕控制器扫描B帧缓冲区的时候,A帧缓冲区拿到GPU传过来的新一帧数据,以此类推,解决撕裂问题。

屏幕卡顿原因

  1. CPU/GPU 渲染流⽔线耗时过⻓->掉帧

  2. 垂直同步Vsync + 双缓存区 DoubleBuffering 以掉帧作为代价=>屏幕撕裂

  3. 三缓存区: 合理使⽤CPU/GPU 减少掉帧次数;

相关文章

  • 屏幕撕裂说明

    一、概念 屏幕撕裂是我们肉眼看到的一张图片上下发生错位,即断层,如下图: 其本质是拿到图像后,GPU进⾏渲染->帧...

  • iOS屏幕撕裂、屏幕卡顿、离屏渲染的相关探究

    这篇文章我们来探究下屏幕撕裂、屏幕卡顿、离屏渲染。 一、屏幕撕裂 在探究屏幕撕裂问题之前,我们需要先了解下屏幕显示...

  • 屏幕撕裂、卡顿原因

    如图1。 这种图片撕裂的情况大家都应该见过。 现在都是光栅扫描的方式进行显示(一行一行的扫描),显示一个图像的时间...

  • 屏幕撕裂与卡顿分析

    显示器原理 首先我们先要了解一下屏幕的刷新原理,目前显示器大体分为CRT显示器和液晶显示器这两个种类。 屏幕图像的...

  • iOS 渲染流程和屏幕卡顿原因

    屏幕卡顿 屏幕卡顿是指图形显示到屏幕上时,出现了图像撕裂、掉帧等问题 卡顿原因 图形、图像显示到屏幕上,需要经过C...

  • OpenGL:图形扫描以及浅谈屏幕撕裂

    一.首先得知道CPU和GPUCPU:(Central Processing Unit):现代计算机整个系统的运算核...

  • 深入理解IOS离屏渲染

    目录:图像显示原理1.1 将图像显示到屏幕的流程1.2 显示器显示流程UI卡顿、掉帧2.1 屏幕撕裂 Screen...

  • iOS图像撕裂及解决方法

    一、什么是图像撕裂? 就是一张图片在显示的时候出现断层情况,如图所示 二、为什么会出现图像撕裂? 屏幕成像过程 G...

  • Android屏幕适配

    一 value适配 1 SW说明 1.1 说明 Google解释:可用屏幕区域的最小尺寸 可用屏幕区域包括导航栏的...

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

    图像撕裂 图像撕裂就像图中所示,同一副画面显示的内容无法上下对齐 屏幕的更新频率是固定的,通常是60Hz。显卡效能...

网友评论

      本文标题:屏幕撕裂说明

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