Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >翻译:VESA Adaptive-Sync / AMD FreeSync / VRR 白皮书[通俗易懂]

翻译:VESA Adaptive-Sync / AMD FreeSync / VRR 白皮书[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-06-28 09:01:42
发布于 2022-06-28 09:01:42
2.4K04
代码可运行
举报
运行总次数:4
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

译者注

近两年,VRR 技术又开始火了起来,无论是 DRM 驱动框架,还是 Xorg 、Sway (Wayland Compositor),都陆续添加了对 VRR 的支持。就连今年即将发布的 AndroidR,也都原生支持了 VRR 的功能。其实 VRR 技术早在 2014 年就已经提出了,但一直用于 PC 平台。随着移动平台 GPU 和 Display 硬件技术的不断发展,可支持的帧率和分辨率也越来越高,游戏玩家对于游戏体验的流畅度要求也越来越高。再加上越来越多的手机开始支持 DisplayPort 接口,将 VRR 技术运用于移动平台已经成为新的趋势。因此本人决定将 VESA Adaptive-Sync 白皮书翻译成中文,方便大家阅读。

由于 VESA Adaptive-Sync 标准主要由 AMD 工程师参与定制,因此它实际上就是 AMD Project FreeSync 的一个子集,FreeSync 除了支持 DisplayPort 接口外,还支持 HDMI 接口。《VESA Adaptive-Sync 白皮书》其实就是《AMD Project FreeSync 白皮书》的修改版,因此本文也加入了 FreeSync 的一部分内容(即“实现方案简介”一节)。

以下为正文内容。

介绍

多年来,显示行业一直存在一种普遍的认识,即显示器是以固定不变的刷新率(refresh rate)来显示的,如 60Hz。这与以下事实形成鲜明对比:送给显示器的图像内容多种多样,每种图像都有自己特有的、变化的帧率(frame rate)。当显示的刷新率与图像自身内容的帧率不同步时,用户可能会察觉到撕裂(tearing)和卡顿(stutter)之类的异常效果。在移动终端上(如平板、笔记本电脑),对于静态图像和视频播放来说,较高的显示刷新率不仅显得多余,还增加了系统功耗,降低了续航能力。这些影响促使我们去寻找一种技术,能允许显示刷新率适应图像自身内容的帧率变化。视频电子标准协会(VESA®)已经制定了这样一个行业标准,通过 DisplayPort 和 Embedded DisplayPort(eDP)接口,实现交互式的可变刷新率(VRR,Variable Refresh Rate)功能,也就是 “Adaptive-Sync” 技术。本文描述了该技术的使用场景,以及它给我们带来了哪些好处。

图 1 展示了 VRR 方案如何让 graphics source 基于典型的内容帧率来动态调节显示刷新率,从而实现省电、无卡顿(stutter-free)和低延迟(low-latency)的画面更新效果。

图 1: 基于内容动态调节的显示刷新率

DisplayPort Adaptive-Sync 使用场景

游戏场景

VRR 技术可以大大改善游戏的用户体验。在一个典型的游戏场景中,由于整个游戏过程中 GPU 运算工作量各不相同,渲染的帧率也会随着时间变化差异很大(如图2所示)。那些细节很少或特效很少的场景将以高帧率快速渲染,而其他具有更多细节和特效的场景(如爆炸、烟雾等场景)则可能需要较长的渲染时间。这种帧率的变化通常会让玩家在选择屏幕刷新方式时进行权衡,比如在他们的设置程序中开启“VSync”同步功能。

图 2: 典型游戏场景中渲染帧率随时间变化的曲线图

启用“VSync”同步后,Display 硬件只会在帧与帧之间的 VBLANK (垂直消隐)区间切换显示 buffer,这样就能保证显示器上始终显示的是一帧完整的画面,且不会出现撕裂的现象。这对于游戏渲染帧率高于显示刷新率的情况来说,效果非常好。但如果游戏的帧率低于显示的刷新率(例如,在短时间内出现大量密集的动作),那么新渲染的一帧就不能及时的在 VBLANK 区间内准备就绪,于是上一帧老的画面就会在显示器上重复显示。如下图 3 所示,因为 B 帧需要较长的渲染时间,导致 A 帧不得不被重复显示2次,最终的结果就是用户感知到了卡顿和延迟。对于该问题,游戏玩家通常会选择禁用 VSync,这的确能避免卡顿和延迟,但它却带来了撕裂的问题,尤其是在快速移动的场景中,撕裂现象尤为明显。

图 3:VSync(上) 与 Adaptive-Sync (下)工作方式的区别

VRR 技术,如 DisplayPort Adaptive-Sync,提供了一种机制,允许显示刷新率随着游戏的渲染帧率而动态变化,以此来解决上面遇到的问题。就像图3下半部分所展示的那样,在更新显示 B 之前,Display 硬件会一直等到该帧彻底渲染完成后才开始执行刷新动作,这样可以确保每帧几乎都是在第一时间显示出来的,从而避免了延迟的发生。同时还能确保每帧不会在 Display 硬件的刷新周期内被重复显示,因而也避免了卡顿的问题。显示刷新率与渲染的帧率同步后,还可以避免因关闭 VSync 所造成的撕裂问题。DisplayPort Adaptive-Sync 技术为实现流畅的游戏体验提供了理想的解决方案,既降低了延迟,又避免了撕裂的发生。

视频播放场景

DisplayPort Adaptive-Sync 还可以用于游戏之外的应用场景,比如对于具有固定播放帧率的视频,可以将显示刷新率调整为视频播放的帧率,以此来实现几乎任何帧率视频的流畅播放(如 23.98 fps、24 fps、25 fps、29.97 fps、30 fps、48 fps、50 fps、59.94 fps、60 fps)。DisplayPort Adaptive-Sync 可以在几乎任何视频帧率下提供几乎无抖动的播放,而无需高成本的帧率转换后处理(FRC,Frame Rate Conversion),这也有助于降低视频播放时的整机功耗。

系统功耗优化场景

VRR 技术作为笔记本内嵌显示面板的一项系统节能技术,已经被笔记本制造商使用了多年。Embedded DisplayPort (eDP)接口早已具备支持该技术的能力,例如,当系统进入静态画面显示状态时(即屏幕上没有新的内容更新),显示器的刷新率会降低到它所能支持的最低频率,以此来节省功耗。终端用户是感知不到刷新率的切换的,而且因为不需要额外的硬件来开启这一功能,对 PC 制造商而言成本也很低。

实现方案简介

AMD 的 Project FreeSync 实现方案需要在每帧的基础上调整 VBLANK 持续时间,以此来改变所产生的帧周期,进而改变刷新率。图 4 中展示了通过增加 VBLANK 的时间来实现降低刷新率的方法。

图 4:调整 VBLANK

在这种操作模式下,DisplayPort receiver 必须忽略与 VBLANK 相关的时序变化,此时就必须从 DisplayPort source 端跟踪时序,DisplayPort source 将通过写寄存器的方式来通知 receiver 进入此操作模式。要想达到即插即用的用户体验,显卡驱动程序需要读取显示器上报的能力来实现对该功能的支持。显示器的 EDID 必须正确的标识它是一个“连续可变频率的显示器”,并上报显示器所支持的刷新率范围,以便显卡驱动设置刷新率范围(最小值和最大值)。

总结

总之,VESA 的 DisplayPort Adaptive-Sync 标准可用于创造具有 VRR 功能的产品,它给我们带来了如下好处:

  • 根据变化的游戏渲染帧率动态调节显示刷新率,以实现低延迟、高流畅、几乎无卡顿的游戏体验。
  • 动态地将显示刷新率调整为固定的视频内容播放帧率,从而达到省电、几乎无卡顿的视频播放体验。
  • 当屏幕显示画面静止时,通过降低显示面板的刷新率,有助于提高电池的续航能力
  • 能够确保显示刷新率之间是无缝切换的,用户无感知的

原文链接

  1. 《VESA Adaptive-Sync Whitepaper》
  2. 《AMD Project FreeSync Whitepaper》

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132742.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VRR的工作流程及G-sync和Freesync的区别
VRR的工作流程可以分为三个阶段,第一个阶段是帧率低于刷新率,第二个阶段是帧率接近刷新率,但是没有超过刷新率,第三个阶段是帧率超过刷新率。
全栈程序员站长
2022/06/28
3.3K0
【PerfDog专家课堂】APP&游戏需要关注Jank卡顿吗?
导语   本次技术干货分享主要是讲解PerfDog卡顿Jank定义、原理及影响。内容将分为五部分:FrameTime、FPS、流畅度、Jank、影响。从深层次分析在性能测试工作中这五部分起到的重要意义。 第一部分:FrameTime FrameTime 的定义:两帧画面间隔耗时(也可简单认为单帧渲染耗时)。 对于FrameTime和卡顿是否有关联?请看下图的案例图示:   从图中可看出画面中B帧在GPU渲染耗时(帧生成时间)大于显示器刷新间隔,占用两次显示器刷新耗时。也就是说有一次画面没刷新。当出现多
WeTest质量开放平台团队
2019/12/24
3.8K0
【PerfDog专家课堂】APP&游戏需要关注Jank卡顿吗?
关于gsync 和 freesync[通俗易懂]
最近我的很多朋友都在问我怎么开启gsync 以及 gsync的作用 还有些小伙伴的台式机有freesync 我就随便说下 要是有不对的希望各位大佬指正
全栈程序员站长
2022/08/14
5.3K0
关于gsync 和 freesync[通俗易懂]
FreeSync是什么
FreeSync 由 AMD 开发,是一种动态刷新率功能,通过嵌入式和外部 DisplayPort 面板实现,部分 AMD GPU 中的 FreeSync 技术解决了处理器和显示器之间的通信问题,消除了图像撕裂和波动,从而轻松实现流畅的游戏体验。于 2014 年首次宣布与 Nvidia 的专有 G-Sync 竞争。
全栈程序员站长
2022/06/28
2.4K0
FreeSync是什么
Android 显示刷新机制、VSYNC和三重缓存机制
为了理解 APP 是如何进行渲染的,我们就必须了解手机硬件是如何工作的,也必须理解什么是 VSYNC。
全栈程序员站长
2022/08/31
2.8K0
Android 显示刷新机制、VSYNC和三重缓存机制
AMD FreeSync显示器上市,这是要把G-Sync虐成渣了「建议收藏」
玩家玩个游戏也真不容易,配置低的怕卡顿,配置高了帧数漂亮,但又怕画面撕裂,开垂直同步倒是可以解决部分问题,但帧数限制死了又让人觉得很不爽。对于这个问题,NVIDIA 2013年10月份推出了G-Sync技术,AMD随后推出了FreeSync技术与之竞争,现在双方的G-Sync及FreeSync显示器都上市了,一场大战是免不了的。
全栈程序员站长
2022/09/06
1.5K0
常说的手机刷新率60Hz、120Hz有什么不同?
在很长一段时间里,手机的刷新率都是60Hz,随着硬件设备性能的提升,各种高刷新率的移动设备层出不穷,移动端也能有120Hz的显示设备。那么手机上的游戏真的是FPS越高越好吗?本期我们就来探索这其中的真相。文章作者:侯鑫,腾讯游戏引擎研发工程师。 背景 作为手机游戏开发者,我们的工作中有很多时间都在尝试优化自己的代码。比如让某一段逻辑执行的更快速,或降低一些迭代的频率,减轻CPU负担,抑或通过各种骚操作在不降低画面质量的情况下,减轻GPU负担。 最终的目的都是想让使用不同性能设备的玩家都可以流畅的体验游
腾讯技术工程官方号
2020/09/29
3.3K0
amd显卡测试大风车软件md,肉眼可见的撕裂 AMD将推出FreeSync2 HDR测试工具「建议收藏」
如何让显示器输出帧数和显卡保持动态同步一直是让厂商们头疼的问题,因此NVIDIA推出了付费的G-Sync同步技术,AMD推出了免费的Radeon FreeSync显示技术,两者的作用方式都是让显示器更新率与电脑输出的FPS同步,让游戏画面不再撕裂、抖动,达到更滑顺的游戏表现,但若玩家没自行比较,也很难从分享文的字里行间体会到这差异。
全栈程序员站长
2022/06/28
1.6K0
amd显卡测试大风车软件md,肉眼可见的撕裂 AMD将推出FreeSync2 HDR测试工具「建议收藏」
谈谈我对画面撕裂,垂直同步,Freesync以及G-sync的理解「建议收藏」
最近一直在接触图形学相关的知识,感觉之前在学OpenGL的时候不需要思考帧缓冲是怎么处理到显示器上的,驱动都帮我做好了,现在在接触vulkan的时候发现自己对Swapchain这个东西的工作原理不是很了解,去网上搜索资料的过程中发现了垂直同步这个知识点,以前玩游戏的时候也经常看到但是不明白什么意思(对不起!我不是一个合格的游戏玩家>-<),觉得自己还是得搞清楚一下,于是整理了一下自己对垂直同步及相关概念的理解
全栈程序员站长
2022/06/28
3.6K0
谈谈我对画面撕裂,垂直同步,Freesync以及G-sync的理解「建议收藏」
Linux Kernel 5.2 将进一步支持 AMD FreeSync
不久前发布的 Linux 5.0 内核正式版本提供了对 AMD FreeSync 的初步支持,而今年夏天将推出的 Linux 5.2 内核可能会对此有额外的改进。
全栈程序员站长
2022/06/28
5980
linux amd显卡驱动画面撕裂,从此告别画面撕裂 AMD-FreeSync技术解析
说到”垂直同步”技术,相信很多玩家都知道是啥意思,它可以有效解决游戏中的画面撕裂问题,让画面更平滑。然而它也有一个致命伤:会限制显卡的性能输出,进而造成卡顿。至于具体缘由,还要从显示器的工作原理说起。
全栈程序员站长
2022/06/26
2.9K0
linux amd显卡驱动画面撕裂,从此告别画面撕裂 AMD-FreeSync技术解析
显卡的帧率(FPS)、显示器刷新率和垂直同步的关系
提到显卡的帧率(FPS)、显示器刷新率和垂直同步的关系,第一印象是这些概念之间似乎没有直接的关系,实则不然。 首先来解释帧率(FPS,即Frame Per Second,帧/秒)。通俗来说,帧率是用来衡量显卡渲染能力的一个指标。显卡在处理图像数据时,性能越强的显卡,在均等时间内(比如1秒),渲染出的静态图像的数量(这一幅静态图像就称为一帧)。一幅一幅的静态图像按顺序以一定的速度出现在我们面前,由于人眼具有的视觉暂留特性,使得我们感觉画面里的物体似乎在运动,也就形成了动画(和典型的动画片一个原理)。如果在一
Zip
2018/07/20
3.6K0
垂直同步、三重缓冲、freesync
60Hz显示器,开启垂直同步后,就会锁60了; 作用: 1、解决画面撕裂现象,不会出现缓冲没画完被复写的情况; 2、解决错帧现象;游戏更流畅; 3、强制每帧间隔完全一样,这样因为帧生成时间不平滑导致的不流畅也会解决 弊端: 鼠标反馈,移动鼠标,电脑收到消息把移动鼠标输出给显卡,显卡收到后把鼠标移动画面输出给显示器,所有请求不会被延后,延迟只是电路延迟。
全栈程序员站长
2022/06/27
1.1K0
AMD FreeSync正式发布:更流畅 更便宜
2013年10月份,NVIDIA推出了一项革命性的垂直同步技术G-Sync,通过新控制模块的加入配合GeForce GPU控制显示器刷新率,彻底解决垂直同步、刷新率限制带来的游戏画面撕裂、卡顿、延迟等问题,保证最好的流畅度。
全栈程序员站长
2022/09/07
1.4K0
联发科将携手英伟达推出集成G-Sync技术的显示控制芯片
当地时间8月20日,芯片大厂联发科与英伟达在德国科隆游戏展上宣布,计划将英伟达全套G-Sync技术集成到联发科的显示器控制芯片中,从而使得用户在没有 G-Sync Ultimate 模块情况下,也能够得到更加清晰、流畅的游戏显示体验。
芯智讯
2024/08/29
1450
联发科将携手英伟达推出集成G-Sync技术的显示控制芯片
音视频技术基础(一)--音视频技术概念基础
各位大佬好,我是一个刚入坑的小菜鸡,黑眼圈云豆。最近开始学习TRTC实时音视频技术,我会记录并分享我的一些学习心得和体会,欢迎各位大佬来一起交流指正。
黑眼圈云豆
2020/06/16
5.4K0
音视频技术基础(一)--音视频技术概念基础
屏幕成像原理以及FPS优化Tips
移动端FPS优化已经是一个老生常谈的话题了,但在相当长一段时间内却一直是一个不过期的话题,除非硬件强大到可以帮我们抹平屏幕成像和渲染上的性能损耗。身为一个移动互联网从业者,对FPS的认识和优化依旧是很有限的,深感不安和羞愧,本文整理了之前的一些工作笔记,结合一些大牛们的优秀文章,希望能够起到复习和深化的作用。内容不实之处还请大家及时指出,感谢!
VV木公子
2020/03/20
9.7K0
又卡了~从王者荣耀看Android屏幕刷新机制
这下大家应该知道了,帧就是一个静止画面,很多个帧一起就组成了视频、电影、游戏画面。
码上积木
2021/04/30
9780
在 Android 上进行高刷新率渲染
长久以来,手机屏幕刷新率都是 60Hz。应用和游戏开发者也习惯了假定刷新率为 60Hz,也就是每 16.6ms 生成一帧,而且这样开发出来的应用和游戏都会正常进行。但现在的情况已经不同了。最新的旗舰级设备往往会搭载刷新率更高的屏幕,可以带来更流畅的动画效果、更低的延迟,从而获得更好的整体用户体验。还有一些设备支持可变刷新率,比如 Pixel 4,它支持 60Hz 和 90Hz 两种刷新率。
Android 开发者
2020/05/27
3.2K0
在 Android 上进行高刷新率渲染
APP&游戏需要关注Jank卡顿吗?
    本次技术干货分享主要是讲解PerfDog卡顿Jank定义、原理及影响。内容将分为五部分:FrameTime、FPS、流畅度、Jank、影响。从深层次分析在性能测试工作中这五部分起到的重要意义。
WeTest质量开放平台团队
2020/04/07
1.5K0
APP&游戏需要关注Jank卡顿吗?
推荐阅读
相关推荐
VRR的工作流程及G-sync和Freesync的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验