如何在 DirectX10 中启用垂直同步
我正在使用 SlimDX 开发基于 DirectX10 的应用程序。我想启用类似于 DirectX9 的垂直同步,但 fps 似乎没有锁定到 60Hz(如果我使用 Direct9,就会发生这种情况)。我正在使用此设置垂直同步
SwapChain.Present(1, PresentFlags.None);
我做错了什么吗?
顺便说一句,我正在使用 ATI HD5570 显卡运行 Win7。经过一番谷歌搜索后,我发现 ATI 可以在某些游戏上强制垂直同步。所以我想知道这是否相关。
C++ 代码的参考也可以。我自己来翻译一下。
谢谢
I'm working on a apps that's based on DirectX10 by using SlimDX. I would like to enable vsync similar to DirectX9, but the fps doesn't seems to lock to 60Hz(which happens if I'm using Direct9). I'm setting vsync by using this
SwapChain.Present(1, PresentFlags.None);
Did I do something wrong?
Btw, I'm running Win7 with ATI HD5570 video card. After some googling, I gather that ATI can force vsync on certain games. So I wonder if that's related.
Reference for code to C++ will do as well. I'll translate it myself.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SwapChain.Present 的第一个参数是syncInterval。 0 表示呈现应立即发生,无需同步。任何其他值表示演示应与指定的下一个垂直空白同步。
所以像这样使用它:
First argument of SwapChain.Present is syncInterval. 0 indicates that presentation should occur immediately, without synchronization. Any other value indicates that presentation should be synchonized with the specified next vertical blank.
So use it like this:
您可以尝试使用 Catalyst 控制中心强制垂直同步
You can try to force vsync using Catalyst Control Center