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的由来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++设计模式——Adapter(适配器)模式

一、Adapter模式是个啥? 适配器模式在软件开发的江湖里,可以说用途是非常广的。下面几个经典的场景来说明适配器模式的使用。 场景一 场景二 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后…

软考2018下午第六题改编逻辑(状态模式)

在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象 package org.example.状态模式.软考航空;/*** author lst* date 2023年12月07日 15:37*/ class FrequentFlyer {CState state;double flyMiles;public FrequentFlyer() {…

【开源】基于JAVA语言的农家乐订餐系统

项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

深圳锐杰金融:用金融力量守护社区健康

深圳市锐杰金融投资有限公司,作为中国经济特区的中流砥柱,近年来以其杰出的金融成绩和坚定的社会责任立场引人注目。然而,这并非一个寻常的金融机构。锐杰金融正在用自己的方式诠释企业责任和慈善精神,通过一系列独特的慈善项目&a…

Leetcode算法题笔记(1)

目录 哈希1. 两数之和1.1 解法11.1 解法2 2. 字母异位词分组2.1 解法12.2 解法2 3. 最长连续序列3.1 解法 小结 双指针4. 移动零4.1 解法14.2 解法2 5. 盛最多水的容器5.1 解法一5.2 解法二 6. 三数之和6.1 解法16.2 解法2 7. 接雨水7.1 解法1 小结 滑动窗口8. 无重复字符的最长…

自然语言处理基础知识 学习

参考:OpenBMB - 让大模型飞入千家万户 【清华NLP】刘知远团队大模型公开课全网首发|带你从入门到实战_哔哩哔哩_bilibili 图灵测试:imitation Game 模仿游戏 Part of speech tagging 词性标注 Named entity recognition : 命名…

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

一. Kubernetes(K8S)简介 Kubernetes (K8S) 是一个为 容器化应用 提供 集群部署 和 管理 的开源工具,和docker swarm类似,由 Google 开发. Kubernetes 这个名字源于希腊语,意为 “ 舵手 ” 或 “ 飞行员 ” , k8s 这个缩写是因为 k 和 s 之间有八个字符的关系, Google…

Mac电脑统计分析绘图 GraphPad Prism 10 最新 for Mac

GraphPad Prism 10是一款强大的科学数据分析和可视化软件,提供了丰富的统计工具、数据可视化选项和报告生成功能。它使用户能够更轻松地分析和解释实验数据,以支持科学研究和决策。 数据导入和整理:GraphPad Prism 10支持从多种数据源导入数据…

ChatGPT/GPT4科研实践篇: AI绘图+论文写作+编程

1、熟练掌握ChatGPT提示词技巧及各种应用方法,并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告,提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用,完成数据分析、编程以及深度学习等相关科研项目。 4、…

Kafka -- 初识

目录 kafka是什么 Topic Partition Broker Cousumer CousumerGroup Offset reblance broker 消息存储 Isr kafka是什么 Kafka 是一个分布式的消息引擎,能够发布和订阅消息流(类似于消息队列) 以容错的、持久的方式存储消息流 多分区…

MYSQL练题笔记-高级查询和连接-最后一个能进入巴士的人

一、题目相关内容 1)相关的表和题目 2)帮助理解题目的示例,提供返回结果的格式 二、自己初步的理解 一群人要上巴士但是巴士有体重限制,那只能有限个人才能上去 最后输出这个最后一个上去还不超重的人的名字 我认为首先要缩小…

HarmonyOS 开发基础(二)Image

HarmonyOS 开发基础(二)Image Entry Component struct Index {// 创建一个状态变量 img 存储 img 网络地址State img: string https://img1.baidu.com/it/u4049022245,514596079&fm253&app138&sizew931&n0&fJPEG&fmtauto?sec1…

创建vue项目:node.js下载安装、配置环境变量,下载安装cnpm,配置npm的目录、镜像,安装vue、搭建vue项目开发环境(保姆级教程一)

今天讲解 Windows 如何创建 vue 项目,搭建 vue 开发环境,这是这个系列的第一章,有什么问题请留言,请点赞收藏!!! 文章目录 一、Vue简单介绍二、开始搭建1、安装node.js环境2、配置npm下载时的默…

1、Redis变慢原因排查(上)

感觉Redis变慢了,这些可能的原因你查了没 ?(上) Redis 作为一款业内使用率最高的内存数据库,其拥有非常高的性能,单节点的QPS压测能达到18万以上。但也正因此如此,当应用访问 Redis 时,如果发现响应延迟变…

QT----Visual Studio输入中文报错,常量中有换行符

问题描述 在VS中写qt时发现在标题中输入了中文直接把报错无法运行 解决方法1 修改文件的编码方式。在VS菜单栏 工具->自定义-》命令-》选择文件-》添加高级保存选项命令。 双加选中添加中文的文件,文件-》高级保存选项-》修改utf-8就可以运行了 解决方法2…

AMD 发布新芯片MI300,支持训练和运行大型语言模型

AMD 宣布推出 MI300 芯片,其 Ryzen 8040移动处理器将于2024年用于笔记本电脑。 AMD官方网站:AMD ׀ together we advance_AI AMD——美国半导体公司专门为计算机、通信和消费电子行业设计和制造各种创新的微处理器(CPU、GPU、主板芯片组、电…

电脑搜不自己的手机热点,其余热点均可!

一、现象: 之前可正常连接,突然间发现收不到自己的WiFi信号,其余人均可收到。通过重复手机电脑关机、改变热点设置中的频段等方式均没解决,同事电脑和手机可搜索到我的WiFi。 二、问题: WiF驱动程序更新 三&#x…

字节开源的netPoll底层LinkBuffer设计与实现

字节开源的netPoll底层LinkBuffer设计与实现 为什么需要LinkBuffer介绍设计思路数据结构LinkBufferNodeAPI LinkBuffer读 API写 APIbook / bookAck api 小结 本文基于字节开源的NetPoll版本进行讲解,对应官方文档链接为: Netpoll对应官方文档链接 netPoll底层有一个…

【python、opencv】opencv仿射变换原理及代码实现

opencv仿射变换原理 仿射变换是opencv的基本知识点,主要目的是将原始图片经过仿射变换矩阵,平移、缩放、旋转成目标图像。用数学公式表示就是坐标转换。 其中x,y是原始图像坐标,u,v是变换后的图像坐标。将公式转换为…

idea__SpringBoot微服务03——yaml(新注解)(新的依赖)

yaml 一、数据格式二、注入配置文件(yaml注入)(新注解ConfigurationProperties)三、注入配置文件(properties注入)(新注解PropertySource)四、yaml配置文件占位符${}五 、yaml跟prop…