我发现使用翻转模型(DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 或 DXGI_SWAP_EFFECT_FLIP_DISCARD)创建的交换链被锁定为 VSync(1/60 秒),调用 IDXGISwapChain1::Present1 方法并将 SyncInterval 设置为 0 如下不起作用。
swap_chain->Present1(0, 0, ¶m);
有人知道如何禁用 DXGI 翻转模型的垂直同步吗?
您的 Windows 10 版本是什么?在 1511 版本之前,UWP 和窗口交换链过去总是锁定到 VSync。
我知道这是很久以前的事了,但我找到了一个对我有用的解决方案。
在交换链上调用
Present()
时,应将 DXGI_PRESENT_ALLOW_TEARING
作为标志(第二个参数)传递。
为此,交换链需要设置 DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
标志。
根据微软的文档,它用于可变刷新率显示器。我想这是有道理的(在图形编程方面我仍然是一个新手)。
希望有帮助!