# What does the “DXGI Flip Model Swapchain” setting in Unity do exactly?

I'm preparing a Standalone Unity game for Windows and Mac.

There is a checkbox in Player Settings called "Use DXGI Flip Model Swapchain for D3D11", which seems disabled by default.

Needless to say, I don't understand this setting at all. The Unity documentation has this:

Flip model ensures the best performance. Disable this to fallback to Windows 7-style BltBlt model. This setting affects only D3D11 graphics API on Windows 8.1 or greater.

Note that even if the flip model is enabled, the BltBlt model will be used in exclusive fullscreen mode to reduce input latency.

It doesn't exactly tell me what this is (I literally don't know what most of that means) - but it almost seems like there is no reason not to have it enabled.

Can someone explain the pros and cons of this setting? Under what scenarios would I want to enable/disable it?

Since disabling it fallbacks to the Windows-7 style, it almost gives the impression that enabling this might make the game less compatible on Windows 7?

• "I literally don't know what most of that means" — did you try researching the terms they're using to learn more? – DMGregory Dec 5 '19 at 12:49
• Well yeah and it didn't help that's why this question is here. For example, how can you tell whether a Unity project "requires HWND-level interop between graphics components" or not? Or how do you know if "the IDXGIFactory5::CheckFeatureSupport API is available, and reports support for DXGI_FEATURE_PRESENT_ALLOW_TEARING" in Unity? The article that is meant to explain this term, adds new terms, and so on so forth. Not helpful. It would make more sense to read specifically about Unity use cases, of which there is almost no documentation for them if you google that. Hence this question. – Oxide Dec 5 '19 at 14:45

This option enables the use of DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL or DXGI_SWAP_EFFECT_FLIP_DISCARD as compared to DXGI_SWAP_EFFECT_DISCARD or DXGI_SWAP_EFFECT_SEQUENTIAL. On Windows 7, it's always going to use the older BitBlt style. This only impacts which one it uses on Windows 8.1 or Windows 10. See Microsoft Docs
Generally, it's recommended you use DXGI_SWAP_EFFECT_FLIP_* when possible because it's better behavior all around. See this blog post for a detailed discussion.
For DirectX 12 on Windows 10, you have to use DXGI_SWAP_EFFECT_FLIP_*. This is also required to use DXGI_FEATURE_PRESENT_ALLOW_TEARING.