一.首先得知道CPU和GPU
CPU:(Central Processing Unit):现代计算机整个系统的运算核心,控制核心。
GPU:(Graphics Processing Unit):可进行绘图运算工作的专用微处理器,是连接计算机和显示终端的纽带。
CPU 内部组成
![](https://img.haomeiwen.com/i17524917/0fca54516c9bfdd1.png)
GPU内部组成
![](https://img.haomeiwen.com/i17524917/70401e98e01c8396.png)
图形扫描显示:
1.随机扫描显示
显示文件 ---->显示处理器 ---->CRT([阴极射线管](Cathode Ray Tube)
随机扫描显示
![](https://img.haomeiwen.com/i17524917/a7a7fe457096655c.png)
2.光栅扫描显示系统的组成
![](https://img.haomeiwen.com/i17524917/f34e472fd8db290e.png)
屏幕扫描
![](https://img.haomeiwen.com/i17524917/dac66438f138fa7f.png)
3.光栅扫描显示系统组成
![](https://img.haomeiwen.com/i17524917/ba0c272a662d0490.png)
4.简单光栅扫描显示系统结构
![](https://img.haomeiwen.com/i17524917/d239e570b23b2b86.png)
5.常用光栅扫描
![](https://img.haomeiwen.com/i17524917/faec069dd9e79ef3.png)
6.高级光栅扫描显示系统结构
![](https://img.haomeiwen.com/i17524917/8b54ac3993544221.png)
二. 屏幕撕裂
屏幕撕裂是我们肉眼看到的一张图片上下发生错位,即断层 如下图
![](https://img.haomeiwen.com/i17524917/fb0c4787c45ae5bd.png)
产生原因:当得到图像后,GPU进⾏渲染--->帧缓存区⾥ --->视频控制器--->读取帧缓存区信息(位图) ---> 数模转化(数字信号处---->模 拟型号) ---->(逐⾏扫描)显示。当第一帧图像扫描到某个位置时,GPU拿到新的数据并存到帧缓冲区,这个时候视频控制器从帧缓冲区扫描的是新拿到的帧的图像。因为我们看到的一张图片其本质是两张图片组合而来,由于视频控制器显示速度小于了GPU处理图形的速度,所以就形成了在我们肉眼看到的断层现象。
如何去解决:
垂直同步Vsync + 双缓存区 DoubleBuffering
详解:
垂直同步Vsync:帧缓存区加锁 防⽌出现撕裂情况。
双缓存区 DoubleBuffering:GPU开辟AB两个帧缓冲区。
当A帧缓冲区拿到第一帧数据,给A缓冲区加上一把锁,屏幕控制器从A诊缓冲区拿到数据并逐行扫描完成,A帧缓冲区解锁,并且屏幕控制器指向B帧缓冲区,B帧缓冲区加锁并逐行扫描显示,在屏幕控制器扫描B帧缓冲区的时候,A帧缓冲区拿到GPU传过来的新一帧数据,这样以此类推可以解决撕裂问题。
网友评论