In R8674 the SDL2 backend had its fullscreen mode changed from exclusive fullscreen to fullscreen desktop. The reason for this change is that there appears to be an issue or bug with SDL2 fullscreen display mode changes.
Every display mode change causes the poll event function to block for around 3 seconds. The polling event function is meant to never block. As far as I am aware this issue has not been reported on the internet before.
Minimize and maximize cause a display mode change hence doing such a cycle would block for around 6 seconds. Even starting suffered from this problem adding an extra 3 seconds before the pak select screen appears. While the main thread is blocked polling events, the application is effectively unresponsive. The lost time due to being unresponsive results in the game fast forwarding to catch up. The overall result was a rather bad and unresponsive user experience.
Fullscreen desktop fixes this by always using the display mode of the desktop and hence not requiring any display mode changes. As a result event polling is uneffected and behaves correctly. Not only does the game start faster, but it also minimizes and maximizes highly responsively. The result is fullscreen responsive feel as good as GDI, likely because GDI is operating in a similar way. Technically fullscreen desktop mode is slower as it requires the windows composer to blit a window buffer onto the display buffer. However the extra latency is insignificant for a game such as Simutrans. Performance should pretty much be the same as before since bliting is mostly hardware accelerated on modern OSes.
This change will not effect SLD2 running in windowed mode (default). Windowed mode never performed any display mode changes and hence always performed well as was highly responsive. It is also possible this issue does not occur on all computers, since I only tested it with my Windows 10 machine. However chances are if my Windows 10 machine has the issue, at least someone else will even if not all Windows 10 machines suffer the problem.
Hopefully this is one step closer to the eventual removal/deprecation of the GDI backend. It now is no longer a lot more responsive than SDL2 which was my only reason for using it.