https://bugs.winehq.org/show_bug.cgi?id=51420
--- Comment #37 from matt gardotd426@gmail.com --- (In reply to Kurt Kartaltepe from comment #36)
I feel like this post is the blind leading the deaf, the author of the offending code has even responded on this thread, but not deigned to explain the issue.
When nvidia drivers are detected wine falls back to xrandr 1.0/1.1 for querying modes. As the author notes in their commit this is because they didn't like the modes reported by newer xrandr versions for DVI connections.
This is why d171d1116764260f4ae272c69b54e5dfd13c6835 which introduces many more queries to mode information to be a significant performance hit on nvidia with DVI connections. And why reverting the 1.0 fallback also fixes it (as we get the explicitly fast xrandr functions).
If you want to see if you are affected, well the first step is to see if you have a DVI device. The second step is you could run the same queries wine does and watch if your X11 session becomes unusable. For example `for x in $(seq 1 100); do xrandr --q1; done`, testing with a single DVI device shows the system crippled and testing with a single DP devices shows no significant impact.
Matt's rebase of the revert looks fine to me. When I tested the actual revert it also worked to avoid the excessive mode queries, as did removing the xrandr 1.0 fallback.
Yeah I don't know enough to dig through the code and find the original problem or anything like that, but I did figure I could at least create a patch that safely reverts the problematic code (since just reverting the original offending commit isn't possible). Hopefully a better solution can be constructed but until then yeah, my patch should work for anyone affected.