Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(六)

将 Present 请求映射到硬件翻转队列时间戳

在特定适配器上启用硬件翻转队列时,时间戳会附带所有翻转调用。 换句话说,KMD 不需要处理旧和新的 DxgkDdiSetVidPnSourceAddress 语义的组合。

OS 会自动将基于间隔的现有 Present API 请求转换为对 KMD 的基于时间戳的翻转调用。 以下各节讨论了各种情况,以及如何映射到 KMD 接收的标志、持续时间和时间戳的组合。

撕裂和非字节翻转语义

启用硬件翻转队列时,撕裂翻转的语义在概念上是相同的。 达到 TargetFlipTime 后,KMD 会提交翻转以显示,同时仍遵循 FlipImmediate、FlipImmediateNoTearing 和 FlipOnNextVSync 等标志。 换句话说,KMD 表现得好像 OS 在 TargetFlipTime 以相同的翻转标志和参数向它提交了翻转。

例如,如果将 FlipOnNextVSync 设置为 1,并且 TargetFlipTime 位于帧中间,则翻转应仅显示在下一个 VSync 上。

FlipOverwrite 支持和硬件翻转队列

硬件翻转队列是翻转覆盖功能的严格超集,由 DXGK_DRIVERCAPS 中的 MaxQueuedMultiPlaneOverlayFlipVSync 值控制。

因此,如果驱动程序通过将 MaxHwQueuedFlips 设置为大于 1 的值选择进入硬件翻转队列,则 OS 将忽略 MaxQueuedMultiPlaneOverlayFlipVSync 值。

TargetFlipTime 过期的多次翻转
当给定 MPO 平面有多个排队翻转且 TargetFlipTime 已过期时,硬件显示队列必须选择最近排队的过期翻转并将其提交显示。 其余过期的翻转应被视为已取消,其相应的翻转队列日志项应包含 DXGK_HWFLIPQUEUE_TIMESTAMP_CANCELLED 作为 PresentTimestamp 值。

Duration 和 TargetFlipTime 之间的交互

当屏幕上显示此结构中指定的翻转时,DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 结构中的 Duration 参数应生效。 它为 VidPnSourceId 在所有平面上指定的输出指定新的所需显示刷新率行为。 在 WDDM 3.1 和 Windows Server 2022 版本中,为了简化不支持排队自定义 持续时间 更改的硬件的驱动程序实现,OS 仅在完成以前的翻转请求后提交具有新的 Duration 参数的翻转请求。

将 Present 间隔映射到 TargetFlipTime

刷新率固定时的映射间隔

若要保留现有 Present 间隔语义,OS 必须使用 Present 间隔和刷新率计算目标翻转时间。 但是,将目标翻转时间完全设置为预期的 VSync 时间,翻转应命中屏幕会导致频繁出现故障。 这些故障是由于实际 VSync 计时偏移一点时错过的 VSync。 为了防止出现故障,OS 从计算的目标翻转时间中减去一半的 VSync 间隔。

以下是将 Present 间隔映射到目标翻转时间的简化公式:

TargetFlipTime = PreviousFlipStartVSyncTime + (PreviousFlipPresentInterval * FixedRefreshRate) - (FixedRefreshRate / 2)

存在虚拟刷新率 WDDM 2.9 功能时的映射间隔

虚拟刷新速率功能可能会暂时将显示刷新率提升到当前刷新速率的整数倍数(即 24 Hz 可以提升到 144 Hz 或 192 Hz)。 对于能够支持此提升的设备,上一节中的公式被修改为使用当前刷新率的最快倍数:

TargetFlipTime = PreviousFlipStartVSyncTime + (PreviousFlipPresentInterval * FixedRefreshRate) - (FastestRefreshRate / 2)

将刷新率更改为非ultiple 时的映射间隔

当刷新速率更改为当前刷新速率的非多余时(例如,从 24 Hz 更改为 60 Hz),OS 需要检查队列翻转以查看其计算目标时间是否仍然对新的刷新率有效。 如果需要更改目标翻转时间,OS 将取消排队翻转,并使用新计算的目标翻转时间重新排队。

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

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

相关文章

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法,而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要,以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

《视觉SLAM十四讲》ch13 设计SLAM系统 相机轨迹实现

前言 相信大家在slam学习中,一定会遇到slam系统的性能评估问题。虽然有EVO这样的开源评估工具,我们也需要自己了解系统生成的trajectory.txt的含义,方便我们更好的理解相机的运行跟踪过程。 项目配置如下: 数据解读: …

软考高级信息系统管理工程师通关100题(21-40)附记忆口诀

文章目录 21.常用存储模式的技术与应用对比22.物联网架构23.云计算服务提供的资源层次24.大数据25.区块链26.人工智能27.虚拟现实VR28.IT治理的内涵29.IT 治理活动30.IT治理本质31.IT审计目标32.IT审计方法33.治理系统设计34.数据管理能力成熟度评估模型35.项目管理原则36.管理…

Redisson 分布式锁原理

加锁原理 # 如果锁不存在 if (redis.call(exists, KEYS[1]) 0) then# hash结构,锁名称为key,线程唯一标识为itemKey,itemValue为一个计数器。支持相同客户端线程可重入,每次加锁计数器1.redis.call(hincrby, KEYS[1], ARGV[2], 1);# 设置过期时间redis.call(pexpi…

主流加固方案深度剖析(梆梆/腾讯/阿里)

1. 加固技术演进与核心原理 1.1 移动端加固技术图谱 graph TD A[代码防护] --> A1[混淆] A --> A2[虚拟化] A --> A3[动态加载] B[数据防护] --> B1[资源加密] B --> B2[协议加密] C[运行时防护] --> C1[反调试] C --> C2[环境检测] C --> C…

大模型之蒸馏模型

蒸馏模型(Distilled Model)是一种通过知识蒸馏(Knowledge Distillation)技术训练得到的轻量级模型,其核心思想是将一个复杂的大模型(称为教师模型)的知识“迁移”到一个更小、更高效的模型&…

iPaaS集成平台中的API可视化编排能给企业带来什么作用

随着企业数字化转型的加速,API(应用程序接口)作为企业数字化资产的核心组成部分,其数量和复杂性不断增加。为了满足业务敏捷化交付的要求,API可视化编排平台应运而生。谷云科技作为这一领域的领先者,其API可…

演员马晓琳正式加入创星演员出道计划,开启演艺事业新篇章

3月19日,演员马晓琳正式加入“创星演员出道计划”,不仅得到参演都市爱情喜剧《和我结婚吧》角色的机会,还获得文旅精品网剧《醉梦灵州》的出演机会,自此开启全新影视之路。对表演抱有极大热情的马晓琳,相信未来可以凭借…

绿盟科技春招面试

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

双碳战略下的电能质量革命:解码电力系统的健康密码

安科瑞顾强 在能源结构转型的深水区,电能质量正成为制约产业升级的隐形门槛。国家能源局数据显示,我国工业企业每年因电能质量问题造成的经济损失高达3000亿元,而新能源项目因并网质量问题导致的发电效率损失超过15%。在这场关乎能源安全的攻…

Microsoft Edge浏览器的取证分析(基于Chromium)

概述 早在2019年,微软就用Chromium替换了EdgeHTML浏览器引擎,这是微软支持谷歌Chrome浏览器的一个开源项目。通过切换到Chromium,Edge与Chrome浏览器共享一个共同的架构,这意味着用于Chrome浏览器调查的取证技术也适用于Edge。 …

python学智能算法(八)|决策树

【1】引言 前序学习进程中,已经对KNN邻近算法有了探索,相关文章链接为: python学智能算法(七)|KNN邻近算法-CSDN博客 但KNN邻近算法有一个特点是:它在分类的时候,不能知晓每个类别内事物的具…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

通信网络安全防护定级备案需要材料汇总

通信网络安全防护定级备案工作需要到指定的系统上先写基本信息,然后上传对应的材料,提交后会流转到地方通管局或部里审核。对于第一次使用该系统的朋友来说,通信网络安全防护定级备案需要什么材料是目前比较关注的问题。下面calm13就结合以往…

15:00面试,15:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

ORACLE 19.8版本数据库环境EXPDP导数据的报错处理

近期用户在做EXPDP导出时,报错异常termination终止;EXPDP本身是简单的功能并且这个环境也是经常做导出的,到底是什么原因导致了这个问题呢? 导出脚本报错: 分析导出日志,当时系统资源充足但是进程启动失败,…

【Editor】动态添加/移除宏定义

ProjectSetting中OtherSettings页签 执行工具指令 using UnityEditor; using UnityEngine; using System.Linq;public class Tools : Editor {//在菜单栏中点击自动添加[MenuItem("Tools/AddScriptingSymbols")]private static void AddScriptingSymbols(){//获取当…

Web-Machine-N7靶机实战攻略

1.安装并开启靶机 下载VirtualBox:https://www.virtualbox.org 导入虚拟机 设置为桥接模式 2.获取靶机IP Kali设为桥接模式 3.访问靶机 4.获取敏感目录文件和端口 gobuster dir -u http://172.16.2.68 -w /usr/share/wordlists/dirbuster/directory-list-2.3-me…

C语言实验:数组,指针实现问题求解

实验目的:掌握数组,指针的使用 实验内容: 1直接选择排序 2字符串运算 3交换数字 流程图: 1直接选择排序 2字符串运算 3交换数字 程序调试 1直接选择排序 1-1出现问题(贴图并说明) 错误原因&#xf…

【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解

【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解 (图1-1) 一、鸿蒙中App、HAP、HAR、HSP是什么? (1)App Pack(Application Package) 是应用发布的形态,上架应用市场是以App Pa…