Hi,
I'm experiencing the stuttering described in this thread with MP 1.2.x. Is there a specific dll with the "empty form" workaround for v1.2 or will the dll attached here work?
I found a solution to my stuttering that is really easy. I found it in a post by "punking" over at the XBMC forums. Here it is:
-Right-click MediaPortal.exe in Program Files
-Select "Properties"
-Go to the "Compatibility" tab
-Put a check in the "Disable Desktop Composition" box
That's it. I now have silky smooth video and the switch between 24 and 60Hz has seems to work smoothly. I did get a popup balloon message in the taskbar indicating my "color scheme has changed to Windows 7 Basic". 32-bit colour is still enabled in my nvidia control panel, so that wasn't impacted.
Perhaps the fixdwm code isn't required or can be changed to address a different root cause.
DWM is only updated in regards to refresh rates when you are on the desktop. This is where you usually change your display properties. That's why the current workaround works on most systems. Also some GPU driver/firmware combinations might prevent this workaround as we are dealing with kernel level functions here in the background not exposed to MP.
Digging deep into WDDM might provide a solution to force a DWM update. But I haven't found any functions in the past that seem to do the trick. Probably some private APIs are involved here or we are dealing with kernel level functions, which are out of my area of expertise.
Full screen apps are not really supposed to change the refresh rate constantly - except once for backwards compatibility with CRT displays that might require a different refresh rate for different resolutions. As MP relies on DWM to avoid tearing for frame synchronisation to the display, DWM causes a lot of dropped frames in this scenario as assumed fps, set refresh rate, assumes fps by DWM are are not in sync.
Initial tests on Win8 showed that this problem has been fixed. At least I cannot reproduce it in the same way anymore. But before getting the hope up wait for the final. Even though Win8 is feature complete it's still worked on and we might face a regression in the final.
Also the WDDM 1.2 driver model might play an important role here.
Just a quick idea: The current workaround relies on creating a new invisible window so that some kind of similar things as a switch to the desktop updates DWM. Do you have MP always on top? This could break the DWM bug workaround.
Well, MP was not always on top. So that didn't work. But...
...I'm happy to say I *finally* got it working. I uninstalled and reinstalled v301.24 of the nVidia drivers and it's working. The only things different from when I previously installed the drivers were that I removed my mouse and that my PC froze during the driver removal operation. I had to reboot and continue the installation. I'm doubting unplugging the mouse fixed, so I'm thinking it was the new drivers or something in the old drivers (even though I've done Safe Mode uninstalls)
Windows is sooo frustrating sometimes. But at least it works now.