2分钟带你了解什么是Vsync

了解Vsync,首先我们需要认知如下问题

  1. 什么是GPU
  2. CPU在渲染之前起到什么作用
  3. 什么是帧,帧率
  4. 什么是画面撕裂

什么是GPU

GPU为图形处理器,又称显示核心、视觉处理器、显示芯片。

是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形 相关运算工作的微处理器主要用于画面的渲染。

CPU在渲染之前起到什么作用?

在屏幕显示一个画面时候,他需要获取GPU合成的图层数据,进行渲染,而GPU进行图层合成时候,他的数据来自于CPU计算好的数据。

也就是说,一个画面的显示过程为,CPU通过程序的业务代码运算产生的数据,运输到GPU进行图层合成,发送到屏幕进行渲染显示。

什么是帧,帧率

帧(fps)是一个画面的显示,屏幕一秒显示多少个帧(画面),称为帧率。平时看到的60fps,代表一秒绘制60帧,反过来可以知道,60fps的渲染,一帧大概是需要16.66毫秒。人眼的正常帧率范围是30到60帧之间,如果在程序运行时候产生的画面帧率比这范围更低,视觉看到的画面会出现卡顿 ,也就是人们说的掉帧。通常手机屏幕的渲染帧数为60fps,高性能的手机为120fps。因此,显示画面的fps越高,意味,画面越流畅

什么是屏幕撕裂?

通过上面的了解我们已经知道,一个画面的绘制流程,如下图

每一个帧在显示器上绘制都需要从buffer缓冲区上拿去数据,进行刷新屏幕。在早期,只有一个缓冲区,并没有绘制同步概念,如果一个画面一边读取一边绘制还没完全完毕时候,突然缓冲区的数据被GPU合成的数据替换,就会造成画面有多重画面叠层效果,如下图,

这种情况称之为画面撕裂 。GPU写入过快或写入过慢都会导致画面撕裂。后来为了解决这个问题,人们用了双或多缓冲区来解决这个问题

提供一个缓冲区提供给GPU写入,提供一个给显示器读取。当GPU写入完毕时候,下一次显示器读取时候,只需要将这两个数据交换即可。这就避免了GPU生产和显示器读取数据时间问题。那么问题又来了, 那么什么时候是写的缓冲区的数据交换到读的buffer缓冲区的最佳时期?答案是,显示器刚好绘制完一帧的时候。显示器绘制完一帧时候会发送一个信号给GPU,如果此时GPU已经写入完成,就会把这个数据与读Buffer缓冲区交换数据。这个信号称之为Vsync ,也就是垂直信号 ,这就是Vsync的由来。

相关推荐
ZacJi5 小时前
我为 DeepSeek Harness 写了一个 dsh-apple-mode 插件
ios·deepseek·vibecoding
2501_9159214312 小时前
抓包鹰 Traceeagle 解除证书绑定,SSL Pinning 解除
网络·网络协议·网络安全·ios·adb·https·ssl
怪奇云呼军14 小时前
从声音特征到 CRM 回流:闪电智能 Voice Agent 沟通策略自适应系统 v1 实战
android·人工智能·python·音视频·语音识别
哦哦~92115 小时前
北理工|Composites Part‑A 综述:纤维‑增强复合材料传统成型与增材制造全解析
android·制造·复合材料·增材制造
一笑的小酒馆16 小时前
Android视频直播播放器简单封装
android
工会代表17 小时前
安卓手机搭建SOCKS5代理教程
android
雨白17 小时前
Android AOP 切面编程实战:优雅地处理全局断网拦截
android·架构
梦想的颜色19 小时前
AI 时代小白 VibeCoding 做 APP:UniApp(含 Uni‑X)、Flutter 与 React Native+Expo全维度技术选型对比指南
flutter·react native·app·uniapp·vibecoding·unippx·app产品
SNAKEpc1213819 小时前
OpenGL(十五)- 着色器语言GLSL
c语言·c++·线性代数·算法·矩阵·图形渲染·着色器
huluang19 小时前
专业级安卓现场取证利器:拍照取证(PaiZaoXue),补齐行业取证工具核心短板
android·数码相机