Hello guys, i do have some serious issues with touch performance on iOS 10.+ tested cocos version 3.10 and 3.13.1. After while for no clear reason - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event start to be called with 40ms+ delay even through the game is still running on 60fps, cpu usage is under 23% and there is no blocking logic inside touch implementation. In fact it does do the same thing even if i’ll comment out whole method and keep just logging here. Only way i was able to bypass the issue is using nstimer instead of displaylink It’s not happening all the time, sometime you have to switch between scenes few times.
I’m not encouter the same issue on empty project using GLKit… however i did not have enough time yet to try GLKit in cocos. Anyone encounter the same issue?
Nope i did not create issue yet. It’s happening on devices (so far tested on i6 Plus, i6s, i6s Plus, iPad 3 and iPad Pro). Just build cpp tests (i noticed that in my game, but it’s happening even in those tests) keep finger on screen and start scrolling. Sooner or later it will start dropping moves even through the app is still running at 60fps. I noticed that it start happening when some metal thread start consuming resources (not much… just like 1% of cpu, but it seems that it’s blocking touch layer).
I used 11: Click and Move test in cpp-tests and it seems responsive to me. I clicked around 100 times. I then exited the test, went into a few other tests and out to change Scenes and tested again with 11: Click and Move 100 clicks.
Click is absolutely fine. Just moving does not seems to be Cloud you try scrolling on first screen with test selection, try to switch scene few times and scroll again. It will never actually drop frames, but it will start dropping move calls so next move is delayed for a few frames and you can see that. If your eye it’s not trained to see 60fps you can simple add logging/profiling to move callback and you will see that after while the delay goes from 1/60s to something more like 1/30 or even less.
I’m not sure what might causes that, but it’s happening
My setup is iOS 10.0.1, Cocos2dx 3.13.1, Xcode 8.0 (8A218a), OS X 10.11.6 (15G31) and it’s happening on all devices i have
I’m not sure I can reproduce what you are seeing. Simulator and on hardware. I have gone in and out of every test, scrolling top to bottom of the test list after each one. I don’t notice anything. My FPS stays around 60 while scrolling. It varies depending upon which test I am running and then back to 60. In the simulator same thing except it is a simulator so the FPS stays around 30 while scrolling.
Plase do not look at FPS they are fine. The app is running on stable 60fps all the time. Just touch moved is triggered only 30/s after while so direct moving is laggy. It seems to be a bug in iOS 10. Already reported to apple from multiple developers. Only bypass i found so far i to use NSTimer instead of displaylink (even GCD does encounter the same issue) OR use glkit view, but that will mean bigger change in cocos architecture.
I am still facing this problem on iOS 11.0.3/ iPhone SE. Frame drops from 60fps to 40fps at the first touch only. I tried to disable main scheduler and all game logic but it still happens. Any idea?
Hi, this is common issue for IOS 11 seems, many games have such bug - when banner appear or somethingg happens game drops to 40fps - and gameplay looks like slowmotion - there is no real fix- it seems was fixed only on ios 11.2.5+ but still sometimes appear, workaround would be to manually kill and recreate banner if this happens - it helps but maybe not in all cases.