当前位置: 首页 > news >正文

windows显示驱动开发-节能与 VSync 控制

为了节省计算机上的电源,内核模式显示驱动程序可以减少发生的 VSync 监视器刷新中断数。

较新的处理器和平台通常与操作系统配合使用,以在计算机系统空闲时节省能源。 但是,定期系统活动(如触发中断)会导致峰值用电量,并可能阻止计算机系统进入暂时性睡眠状态,从而节省能源。

从具有 Service Pack 1 的 Windows Vista (SP1) 和 Windows Server 2008 开始,当屏幕未从新图形或鼠标活动刷新时,操作系统可以关闭定期 VSync 中断计数。 通过控制 VSync 中断间隔,驱动程序可以节省大量能源。

可以通过使用 Windows Server 2008 或更高版本的 Windows 驱动程序工具包 (WDK) 重新生成 Windows 显示驱动程序模型 (WDDM) 驱动程序来利用此功能。

具有适用于 VSync 控件的 Windows Vista SP1 驱动程序更改

若要使驱动程序利用此功能,它们必须支持 Windows Vista SP1 中引入的 DXGK_VIDSCHCAPS 结构中的 VSyncPowerSaveAware 成员。 必须使用 Windows Server 2008 或更高版本的 WDK,使用 VSyncPowerSaveAware 成员重新编译 WDDM 后的现有驱动程序。

如果 1/Vsync 连续 10 个周期(其中 VSync 是监视器刷新率),如果具有 SP1 或更高版本的 Windows Vista 系统,其驱动程序位于 WDDM 后面,并且支持此功能,则会关闭 VSync 中断的计数功能。 如果 VSync 速率为 60hz (Hz) ,则 VSync 中断每 16 毫秒发生一次。 因此,在没有屏幕更新的情况下,VSync 中断在 160 毫秒后关闭。 如果 GPU 活动恢复,则再次打开 VSync 中断以刷新屏幕。

Display-Only Windows 8 及更高版本的 VSync 要求

在 Windows 8 及更高版本的 Windows 操作系统中,内核模式的仅显示驱动程序 (KMDOD) 是可选的,以支持 VSync 功能,如下所示:

仅显示驱动程序支持 VSync 控件

如果 KMDOD 支持 VSync 控件功能,则必须实现 DxgkDdiControlInterrupt 和 DxgkDdiGetScanLine 函数,并且必须提供 指向KMDDOD_INITIALIZATION_DATA 结构中这两个函数的有效函数指针。

在这种情况下,KMDOD 还必须实现 DxgkDdiInterruptRoutine 和 DxgkDdiDpcRoutine 函数,以便向操作系统报告 VSync 中断。

此外,无法D3DKMDT_FREQUENCY_NOTSPECIFIEDDISPLAYCONFIG_VIDEO_SIGNAL_INFO 结构的 PixelRate、hSyncFreq 和 vSyncFreq 成员的值。

仅显示驱动程序不支持 VSync 控件

如果 KMDOD 不支持 VSync 控件功能,则它不得实现 DxgkDdiControlInterrupt 或 DxgkDdiGetScanLine 函数,并且不得向 KMDDOD_INITIALIZATION_DATA 结构中的任一函数提供有效的函数指针。

在这种情况下,Microsoft DirectX 图形内核子系统根据当前模式和上次模拟 VSync 的时间模拟 VSync 中断和扫描行的值。

此外,DISPLAYCONFIG_VIDEO_SIGNAL_INFO 结构的PixelRate、hSyncFreq 和 vSyncFreq 成员的值必须设置为 D3DKMDT_FREQUENCY_NOTSPECIFIED。

如果不满足这些条件,DirectX 图形内核子系统将不会加载 KMDOD。

注册表控制

对于 SP1 及更高版本的 Windows 操作系统的 Windows Vista,默认 VSync 空闲超时为 10 个 VSync 周期。 (可选)出于测试目的,可以使用注册表设置来控制超时。

为了避免应用程序兼容性问题,请不要更改生产驱动程序中的默认注册表设置。

注册表项路径:RTL_REGISTRY_CONTROL\GraphicsDrivers\Scheduler

完整路径:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Scheduler]

项值:VsyncIdleTimeout

ValueType:REG_DWORD

值:10 = 默认值

值:0 = 禁用 VSync 控制 (生成与 Windows Vista 相同的行为)

http://www.dtcms.com/a/454078.html

相关文章:

  • 安徽省住房和城乡建设厅官方网站网站访问量大
  • 好的平面设计网站有哪些易云巢做营销型网站
  • 从0死磕全栈之Next.js 中的错误处理机制详解(App Router)
  • c语言贪吃蛇游戏开发
  • 360网站seo优化怎么做简单网站
  • 小说网站静态模板设计师设计费一般多少
  • 网站主机要怎么做跨境电商交3980元培训费可信吗
  • Coze源码分析-资源库-编辑知识库-后端源码-流程/技术/总结
  • 哺乳动物双等位基因表达的 “守护者”--解析 MSL2对基因剂量平衡与疾病机制的新启示--文献精读164
  • 阿里云网站建设需要多少钱开发软件公司都有哪些
  • CTFHub SQL注入通关笔记4:布尔盲注(手注法+脚本法)
  • 虎书Fundamentals Of Computer Graphics翻译及笔记(1)——前言
  • 建网站公司室内设计效果图网站推荐
  • 网站建设收徒弟设计韩国电影完整版下载
  • 应聘网站优化的简历怎么做全新升级网站
  • 我的第一个网站
  • windows下将redis注册为windows服务
  • IT架构中的前后中台:SuperCell与阿里中台战略启示
  • 外贸工厂的网站建设长沙做网站智投未来
  • 国外商品网站企业微网站建站
  • 第六章 面向对象编程(基础部分)
  • 接口联调常见错误排查:从400 Bad Request到502 Gateway
  • 南通网站制作价格微金所网站谁做的
  • 域名哪个网站续费单项否决 网站建设
  • three.js与WebGL
  • 网站推广计划怎么写标书制作员是干什么的
  • Doris专题9- 行列混存和冷热数据分层
  • 山西省建筑工程网怎么做外贸网站优化
  • mysql数据类型——认识并掌握数据类型
  • 做搜狗手机网站山东大源建设集团网站