如何在 UWP 中禁用 vsync?
How can I disable vsync in UWP?
大约一年前,您现在可以解锁 UWP 应用程序(或游戏)的帧率,但我无法在任何地方找到它的文档。只有 100 个网站说您可以做到。
我正尝试在 C# UWP 应用程序中使用 monogame 和 sharpdx 作为我的 directx 包装器。
这是如何启用的?
文档在哪里?
我手边没有 C# SharpDX/MonoGame 解决方案,但我已经在我的 C++ DeviceResources 中实现了这个功能,您可以尝试借鉴。
- 您首先要确认是否支持撕裂。获取 DXGI 1.5 接口(如果可用),并为
DXGI_FEATURE_PRESENT_ALLOW_TEARING
调用 CheckFeatureSupport
。如果它 returns false 或任何这些步骤失败,则 system/driver 不支持 FreeSync/G-Sync.
- 如果支持撕裂,则使用标志
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
创建 DXGI 交换链。请注意,您还需要在调用 ResizeBuffers
. 时提供此标志
- 当您调用
Present
时使用间隔 0 并传递标志 DXGI_PRESENT_ALLOW_TEARING
。
文档位于 MSDN。
大约一年前,您现在可以解锁 UWP 应用程序(或游戏)的帧率,但我无法在任何地方找到它的文档。只有 100 个网站说您可以做到。
我正尝试在 C# UWP 应用程序中使用 monogame 和 sharpdx 作为我的 directx 包装器。
这是如何启用的?
文档在哪里?
我手边没有 C# SharpDX/MonoGame 解决方案,但我已经在我的 C++ DeviceResources 中实现了这个功能,您可以尝试借鉴。
- 您首先要确认是否支持撕裂。获取 DXGI 1.5 接口(如果可用),并为
DXGI_FEATURE_PRESENT_ALLOW_TEARING
调用CheckFeatureSupport
。如果它 returns false 或任何这些步骤失败,则 system/driver 不支持 FreeSync/G-Sync. - 如果支持撕裂,则使用标志
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
创建 DXGI 交换链。请注意,您还需要在调用ResizeBuffers
. 时提供此标志
- 当您调用
Present
时使用间隔 0 并传递标志DXGI_PRESENT_ALLOW_TEARING
。
文档位于 MSDN。