[dx12]Flip, VSync 和 GSync

这篇具有很好参考价值的文章主要介绍了[dx12]Flip, VSync 和 GSync。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

[dx12]Flip, VSync 和 GSync

windows平台上,vsync和flip常常是一个剪不断理还乱的东西,时不时就会有新的问题处理;
而且随着时代的发展,概念也在不停地演变,包括

  • win8 开始的flip mode present(取代之前的blit mode present)
  • 15年开始,后来逐步普及的variable refresh rate显示器(ps5&xbox, nvidia的gsync, amd的freesync)

这里我们就常用的windows平台上的情况做一个记录

[dx12]Flip, VSync 和 GSync

blit mode present & flip mode present

app surface & desktop

[dx12]Flip, VSync 和 GSync

exclusive fullscreen:

这种情况下,系统会直接把app surface显示到屏幕上,中间也不会有blit等操作,最简单

windowed mode(包括borderless widnow)

这时候dwm(desktop window manager)要做一个composition工作(和其他的app的surface),这里就有两个选择

  • blt mode present : 通过一个blit复制过去,在合成
  • flip mode present : 直接合成:显然这个更好高于

vsync

基本概念就是,如果画面输出在显示器刷新一半的时候,那么就会造成撕裂;
常规解决办法就是app等待显示器刷新完毕,再更新surface,这样就没有撕裂

  • 优点:不撕裂
  • 缺点:更多的等待时间,帧数不够高,输入延迟高

exclusive fullscreen下的vsync

这里app直接output输出,所以我们可以选择开启或者关闭vsync,关了vsync画面就会撕裂了。

windowed mode下的vsync

windowed mode下的vsync:由于整个屏幕是由dwm来全权管理的,所以vsync是强制开启的,这里是底层present可以任意present,游戏帧数也可以跑到高于屏幕刷新率,但是dwm在这里会做vsync的操作,所以开关vsync都不会有vsync带来的屏幕撕裂的问题

variable refresh rate displays

15年开始,GSync的概念开始走起,近几年的显示器普遍开始支持了,就是显示器可以根据app的输出频率来做刷新,所以显示器刷新可能是56,87这种(当然不能高于其自己刷新率极限)。
这样的话,app就不用等了,好了就输出,然后显示器随之刷新,就把传统vsync等待时间给降到最低,改进了input lag。

vsync off

这里也带来了个新能力,就是在windowed mode下可以关闭vsync(传统显示器是做不到的)。
在显示器,GPU驱动,windows版本都ok的情况下,app内部显示可以支持vsync off(dx12下叫DXGI_PRESENT_ALLOW_TEARING)。
我们在windowed mode(也包括borderless fullscreen)下就可以关闭vsync,获得一个更好的刷新率文章来源地址https://www.toymoban.com/news/detail-416941.html

reference

  • DXGI flip model
  • For best performance, use DXGI flip model
  • Variable refresh rate displays
  • Nvidia G SyncMonitors

到了这里,关于[dx12]Flip, VSync 和 GSync的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用FPGA驱动GS2972(3G-SDI模式)外同步(HSYNC VSYNC DE)或内(BT1120)同步输出彩条调试

    原创文章,转载请说明出处。qq_742875810原创。 GS2972是HD-SDI/3G-SDI视频、音频串化器。其使用非常简单,但是要想把该芯片驱动起来,真心不容易。需要了解相关视频标准、传输标准、显示标准,协议较多,版本较多,彻底了解并非一件简单的事情。笔者经过大量阅读,将驱动

    2024年02月11日
    浏览(37)
  • 使用FPGA驱动GS2972(3G-SDI模式)外同步(HSYNC VSYNC DE)或内同步(BT1120)输出SDI彩条调试

    原创文章,转载请说明出处。qq_742875810原创。 GS2972是HD-SDI/3G-SDI视频、音频串化器。其使用非常简单,但是要想把该芯片驱动起来,真心不容易。需要了解相关视频标准、传输标准、显示标准,协议较多,版本较多,彻底了解并非一件简单的事情。笔者经过大量阅读,将驱动

    2024年02月08日
    浏览(46)
  • 【课程设计】Windows控制台上的交互界面(通过c/c++,在windows控制台实现选择菜单(可通过方向键选择))

    以前做课设的时候,费了很大功夫,在windows控制台实现方向键选择菜单。希望可以在这里总结一下,也欢迎大家一起交流学习。 SetConsoleTextAttribute函数 以下摘自百度百科 传送门 SetConsoleTextAttribute是Windows系统中一个可以设置控制台窗口字体颜色和背景色的计算机函数,该函数

    2024年02月07日
    浏览(57)
  • dx12 龙书第二章学习笔记 -- 矩阵代数

    1.矩阵及其运算 矩阵的运算 :①加②减③标量乘法 ④矩阵乘法: 矩阵乘法要有意义的条件是矩阵A的列数和矩阵B的行数必须相同,所以一般不满足交换律 ⑤转置矩阵: ⑥矩阵行列式:det A 学习行列式的主要目的是:利用它推导出求逆矩阵的公式 方阵A是可逆的,当且仅当det

    2024年02月11日
    浏览(48)
  • 解决 Windows中丢失d3dx9_39.dll

    windows10系统中运行游戏【英雄联盟】(LOL)时,出现了错误提示:League of Legends.exe - 系统错误,无法启动此程序,因为计算机中丢失d3dx9_39.dll。尝试重新安装改程序以解决此问题。 2 Windows10系统在运行游戏LOL(英雄联盟)提示丢失d3dx9_39.dll文件的处理方法 第一步:下载d3dx9

    2023年04月08日
    浏览(58)
  • 解决Windows丢失d3dx9_43.dll无法运行程序问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dx9_43.dll文件进行安装(前提是找到适合的版本),当我们执行

    2024年02月08日
    浏览(88)
  • 解决Windows找不到d3dx9_41.dll无法运行程序问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dx9_41.dll文件进行安装(前提是找到适合的版本),当我们执行

    2024年02月22日
    浏览(69)
  • 解决Windows找不到d3dx9_42.dll无法运行程序的问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dx9_42.dll文件进行安装(前提是找到适合的版本),当我们执行

    2024年02月05日
    浏览(57)
  • 【JAVA】我们常常谈到的方法是指什么?

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中我们总是会介绍到类中的各式各样的方法,也许在应用中我们对它已经有了初步的了解,今天我们就来详细的介绍一下“方法” 在中文中方法常常指的是获得某种东西或达到某种目的而采取的手段与行

    2024年02月13日
    浏览(45)
  • 【MySQL】MySQL的安装与配置环境变量(使其在控制台上使用)

    作者主页: paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《MySQL》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将MySQL基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:《算法详

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包