https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #21 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I found the commit that partially fixes the blurry issue in virtual desktop mode: It's commit 9b7669592d6f8b40976b571b70f8543777d35167 (between 8.10 and 8.11). It already reverts aadae4d1ea173dfa30e09d6cc816bb174e35f90d, so it's not possible to revert it.
That commit adds conditional paths for virtual desktop mode at multiple place. I bisected them to find which one does fixed the issue in virtual desktop mode. The lines that fixes the issue in VD mode are those:
@@ -1799,7 +2010,16 @@ static BOOL update_display_cache( BOOL force ) (...) + /* as update_display_devices calls the user driver, it starts explorer and may change the virtual desktop state */ + if (ret && is_virtual_desktop()) + { + reset_display_manager_ctx( &ctx ); + ret = desktop_update_display_devices( force || !was_virtual_desktop, &ctx ); + }
If I remove those + lines, the broken behavior comes back in VD mode. This means that the issue is fixed in VD mode by resetting the display manager context and rebuilding the device list.
I don't immediately see how to use that info to fix the non-VD mode. calling desktop_update_display_devices in non-VD mode doesn't make sense, and calling reset_display_manager_ctx unconditionally breaks Wine.
Maybe the context needs to be reinitialized/recreated after reset.
Regards.