问题描述
Windows 8.1 是否支持 dxgi 翻转模型? IE。 dxgi_SWAP_EFFECT_FLIP_SEQUENTIAL
和 dxgi_SWAP_EFFECT_FLIP_disCARD
?我在网上看到相互矛盾的信息。
Link1 和 link2 表示 Windows 8 至少支持 dxgi_SWAP_EFFECT_FLIP_SEQUENTIAL
,但测试 dxgi 翻转模型支持的常用方法是:
ComPtr<IdxgiFactory4> factory4;
if (Failed(m_dxgiFactory.As(&factory4)))
{
m_options &= ~c_FlipPresent;
}
这似乎在 Windows 8.1 上失败了。我将 Visual Studio 2019 与 Windows SDK 版本 10.0.14393.0 一起使用。这是我的 GPU 信息:
作为快速检查,我运行了来自 XBox-ATG-Samples / directxtk 的 SimpleInstancingPC 示例。它指出:
INFO: Flip swap effects not supported
Direct3D Adapter (0): VID:10DE,PID:1F82 - NVIDIA GeForce GTX 1650
如果 dxgi_SWAP_EFFECT_FLIP_SEQUENTIAL
实际上受 Windows 8.1 支持,但 dxgi_SWAP_EFFECT_FLIP_disCARD
不支持,鉴于 IdxgiFactory4
方法失败,检查此功能的正确方法是什么?
解决方法
“使用翻转模型”blog post 中讨论的优化工作仅适用于 Windows 10,因此最好坚持使用旧版 blit,并将 Windows 8.x 和 Windows 7 一视同仁。
>对于 Windows 8.x,DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
的主要且唯一真正的用途是 Windows 应用商店应用。
考虑到 Steam 硬件调查的数字,游戏开发者现在不太担心 Windows 8.x 的背景是:总数不到 1%。