Dege wrote on 2022-05-07, 13:09:You mean discard (DXGI_SWAP_EFFECT_DISCARD) and flip-discard (DXGI_SWAP_EFFECT_FLIP_DISCARD) effects?
Sequential modes only prov […]
Show full quote
You mean discard (DXGI_SWAP_EFFECT_DISCARD) and flip-discard (DXGI_SWAP_EFFECT_FLIP_DISCARD) effects?
Sequential modes only provide swapchain buffers content to be kept but dgVoodoo does not need that feature, it'd only lower the presentation performance.
Anyway, I didn't care about the swap effect for D3D11 because of Win7 compatibility and the fact that DXGI_SWAP_EFFECT_DISCARD provides the true flipping workig mode under ideal circumstances, if I get it right.
Altough DXGI_SWAP_EFFECT_FLIP_DISCARD would probably be better suited for windowed mode.
In general the idea was if it would be possible to expose the swap effect as a controllable parameter, but specifically it's mostly about enabling the use of DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL as well as DXGI_SWAP_EFFECT_FLIP_DISCARD in D3D11.
Compatibility-wise:
- D3D11 on Win7 actually technically supports DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL with the Platform Update from 2012 or whenever it was released, though it's implemented differently so shouldn't be expected to work the same (random fun tidbit I've come across).
- Windows 8.x added support for DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
- Windows 10 added support for DXGI_SWAP_EFFECT_FLIP_DISCARD
Either flip swap effect in D3D11 enables windowed VRR on Windows 10-11 (maybe even Win8.x?) and on Windows 11 it also typically allows Auto-HDR to engage for the game -- all without relying on either FSE or FSO while still allowing all the other benefits of window mode (superior multitasking, notifications if one wants it, etc).
In regards to best suited default for different display modes and OSes, it would probably be something like this:
- Fullscreen Exclusive - DXGI_SWAP_EFFECT_DISCARD (non-flip) on all OSes
- Windowed on Win7 - DXGI_SWAP_EFFECT_DISCARD
- Windowed on Win8.x - DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
- Windowed on Win10/11 - DXGI_SWAP_EFFECT_FLIP_DISCARD
Though as I mentioned earlier having it be user-configurable (if so only through a parameter) would be cool. I tend to tinker with stuff, and I'd probably set up a machine running Windows 7 solely to try out DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL on it, for example. Though the primary intent of the suggestion/question is to improve windowed mode on Win10/11.