Use modern flip model and tearing flags for D3D11 swap chain creation #19846
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As the title says. Also includes a bonus fix for a ref leak.
PPSSPP currently uses a “blt” present model swap chain and on modern versions of Windows this introduces undesirable latency/performance implications. Microsoft strongly advises developers to use a flip model swap chain instead. The reasons behind this are somewhat complicated, but ultimately it comes to down to how fullscreen exclusive mode (FSE) has to be emulated for certain programs by copying their backbuffers and compositing them with DWM. Said new models are able to elide the copies and thus improve performance.
Improvements will vary from system to system and can be measured with Intel's PresentMon tool if you're so inclined.
This PR is effectively complete. I'm keeping it as a draft since CI will likely fail due to outdated Windows SDK headers.