繁体   English   中英

Windows 10桌面窗口管理器交换时间?

[英]Windows 10 Desktop Window Manager swap timing?

关于Windows 10中的桌面窗口管理器(又名DWM),我有几个问题:

背景:对于我用C ++编写的OpenGL应用程序,我需要有关OpenGL中前后缓冲区交换的精确时序以及在OS级别上实现这些命令。 (我知道Windows 10,或Windows一般来说,这是一个糟糕的选择,但还有其他限制因素)。

  • 问题1:我的互联网研究表明DWM管理第三个缓冲区(使可视化成为三重缓冲系统),我无法控制它,因此产生了不可预测的延迟。 调查还显示,可以通过在全屏模式下打开OpenGL上下文来绕过这一点。 这些信息是否正确?

  • 问题2:这种延迟是由操作系统随机指示DWM复制缓冲区引起的吗?

  • 问题3:实际延迟多长时间,我的调查显示数字在<1ms到50ms之间,但没有值得信赖的来源。

事实上,除了单一的事实,仅仅是延迟的存在,我无法在互联网上找到任何其他假设的可靠来源。 因此,我恳请任何对此问题有答案的人,如果可能,请参考他们的陈述。

我不知道这是否重要,但我通过GLFW和GLEW使用OpenGL。

虽然我无法找到问题2和3的答案,但联系Nvidia支持部门提供了问题1的答案。

Nvidia声明在全屏上下文中呈现的应用程序无法访问DWM。 仅处理以窗口模式呈现的应用程序。

警告:他们还说这是设计的。 考虑到微软试图强迫用户/程序员使用DWM这一事实并不能保证这个设计决策能保持多久不变。

来自Nvidia的原始邮件:

[...]

在我们的专业部门检查您的请求后,请注意,当游戏或任何内容处于全屏状态时,您无法访问此Windows功能[annot:DWM]。 这是设计的。 如果要访问此功能,则需要窗口模式。

[...]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM