Unfortunately, this did not work for me. Tried to follow your steps as closely as possible, but I’m still seeing halved framerates with an undocked window. I also tried restoring my Nvidia settings. I was looking forward to actually using the ATC panel on the second monitor for once too.
I’m also suffering a loss of 15 fps when I undock any window with vsync off.
The fix seemed plausible to me too. I’m rusty on Direct3D, but in D3D9 you need to reset the swap chains when there’s a window size event, and the events are handled differently if you’re doing a continuous resize where you wait until the window is done sizing before you reset everything, or just a one time size event like going to full screen. So it’s possible the one is coded wrong with the bug, and the other properly resets the swap chains for drawing in multiple windows.