Windows 图形显示驱动-待机休眠优化
Windows 8为图形堆栈提供优化,驱动程序可以选择利用这些优化来改善系统在睡眠和恢复时的性能。
Windows 8 在电源管理方面引入了多项改进,优化了休眠(Hibernate)和睡眠(Sleep)功能,并新增了快速启动(Fast Startup)等特性,以提升用户体验和设备能效。
- 睡眠模式(Sleep)定义 :系统将当前状态保存在内存(RAM)中,进入低功耗状态,保持内存供电以快速恢复工作。断电后数据丢失。
- 休眠模式(Hibernate)定义 :将系统状态完整保存到硬盘的休眠文件(`hiberfil.sys`)后完全关机,恢复时从硬盘读取数据。断电后仍保留状态。
- 混合睡眠(Hybrid Sleep)定义 :睡眠和休眠的结合模式:系统状态同时保存到内存(RAM)和硬盘(`hiberfil.sys`)。电源正常时从内存快速恢复,断电后可从硬盘恢复。
- 快速启动(Fast Startup)定义 :Windows 8 新增功能,结合关机和休眠技术。关机时仅保存内核和驱动状态到硬盘,下次开机直接加载以缩短启动时间。
待机休眠设备驱动程序接口 (DDI)
这些结构从Windows 8开始是新的或更新的,以支持待机休眠。
- DXGK_QUERYADAPTERINFOTYPE
- DXGK_SEGMENTDESCRIPTOR3
- DXGK_SEGMENTFLAGS
支持此功能的每个设备都应利用这些休眠优化。 当 WDDM 1.2 或更高版本的驱动程序枚举段功能时,它还必须设置一个或多个备用休眠标志 PreservedDuringStandby、 PreservedDuringHibernate 和 PartiallyPreservedDuringHibernate。
使用待机休眠优化
当电脑转换到睡眠状态或从睡眠状态恢复时,将发生多项操作,以确保正确保留和还原视频内存内容。 其中一些操作是不必要的,可以避免:
- 集成图形适配器使用系统内存作为视频内存。 由于系统内存在计算机进入睡眠状态时始终会刷新,因此无需逐出。 因此,图形堆栈引入的延迟可能会降低到零延迟或几毫秒左右。
- 清除离散适配器上的内存的总时间等于清除的内存量除以清除速率。 因此,可以通过减少要清除的内存量来缩短时间。
这些操作的目标是确保被丢弃的唯一数据是可以重新创建的数据。
WDDM 1.2 驱动程序可以通过指定在电源状态转换期间应保留的分配来利用这些优化。
新一代独立图形适配器可以设计为在处于待机状态时刷新其内存, (自刷新 VRAM) 。 这些适配器将受益于这些优化。
逐出仍与不具有自我刷新 VRAM 功能的离散图形适配器相关。 在这些情况下,性能优化是最大程度地减少保留的数据量。 例如,可以丢弃视频内存中未使用的数据,例如提供的分配、放弃的分配和未使用的直接内存访问 (DMA) 缓冲区。
此功能可带来以下优势:
- 不执行任何操作:在 (具有自刷新 VRAM 功能的集成和离散图形适配器) 上,图形堆栈引入的延迟可以降低到零延迟或几毫秒左右。
- 减少工作:在离散图形适配器上,性能改进主要取决于丢弃了视频内存中未使用的数据量。
- 减少内存回收:逐出的内存量越大,内存回收的影响就越大。 这对离散图形适配器的影响更大,因为它们需要大量的系统内存才能逐出。