Frame rate drop when user touches display.

I have read around on the forum and have seen other people with a similar issue. Althought they have the problem on Windows 8 rather than on Windows Phone. They can fix their issue by disabling the touch feedback rendering with this code:
Windows.UI.Input.PointerVisualizationSettings.GetForCurrentView().IsContactFeedbackEnabled = false; Windows.UI.Input.PointerVisualizationSettings.GetForCurrentView().IsBarrelButtonFeedbackEnabled = false;

As far as I know, Windows Phone doesn’t do this. What happens is the frame rate will run fine, at 60fps, but as soon as a finger is placed on the screen the frame rate will drop to between 45fps and 60fps. Even if I disable my code which deals with any touch input, I still get the problem. It happens on the hardware, but any test I’ve done on an emulator doesn’t have the problem.

Thanks in advance.

I fixed the frame rate drop with only happened with the debugger attached roughtly a year ago. We don’t have any framerate drop these days, so this might be something different.

I’ve tried the app using Cocos2D. I get the exact same problem, so I’m guessing it’s not a problem with MonoGame. I would guess it’s a problem with Windows phone itself when dealing with touch input maybe?

What device and what app do you see this with?
Does it reproduce in a minimal example app?

I’m running it on both an emulator running at 720p with Windows Phone 8.1 and the Lumia 1520 running Windows Phone 8.1.
The app is a MonoGame Windows Phone 8 project.

I don’t get the problem with a blank app, but this is what is confusing me. I run the app with my touch input code. When I’m not touching the display, it runs fine. As soon as I touch the screen, it drops to 45 and goes between 45 and 60 causing notible jumping. I get the same problem with no touch input handling. It only happens when I am touching the display.


Weird, IIRC there are some performance tools with windows phone, you could try one of them to see what is going on.

The CPU usage does drop to 0% every couple of frames. And some frames take several times longer than others, from about 16ms up to 60ms.

I’ve noticed it happens with all sorts of frameworks. I’ve tested with SharpDX, MonoGame, Cocos2D and HTML5. They all seem to get an fps drop of around 15 frames. I’ve tested it without the any update going on, so it just draws the frame. Yet still it gets a frame rate drop. I can only assume there is a problem with Windows Phone handling the touch input? But then surely other games would get the problem too?