We experience a significant performance drop (up to 30%!) by plain multitouching in an empty Unity app across different devices and platforms. In most cases the framedrop is around 10% and may not be noticable in real world applications but on our worst case device (Lumia 525) it is about 30%. This bug was already reported on 2016-03-15 (779931) and also confirmed by Unity on 2016-07-03. I sent a bump on 2017-11-29 but there was no further update since.
(Caption: The frame graph clealry drops when touching the device)
The setup for this test was a simple scene with a few plane meshes, so the renderer got some work to do (~100k tris), and apart from the FPS counter UI no other script are used.
Every tests was performed with the following user actions:
- no touch
- single touch without moving
- single touch with lots of movement
- multitouch with three fingers without moving
- multitouch with lots of movement
whereas the framerate drops with every more complex multitouch action.
The following videos were recorded using Unity 5.4.0b9 but this issue is also reproducible in 5.3.3f1:
Nokia Lumia 520 (also reproduced on 5.4.0.b21)
Asus Nexus7 Tablet (2013)
Nokia Lumia 550
Microsoft Surface 2
Nokia Lumia 925
Samsung Galaxy S4
Test results in detail:
Nokia Lumia 520, Windows Phone 8.1: clear and significant framedrop
FPS min FPS max % drop visual FPS
no touch 54 56 constant brownish orange
static singletouch 47 49 12.73% constant orange
moving singletouch 47 49 12.73% constant orange
static multitouch (3) 40 45 22.73% constant redish orange
moving multitouch (3) 35 40 31.82% constant redish orange
Asus Nexus7 Tablet (2013), Android 6: clear framedrop
FPS min FPS max % drop visual FPS
no touch 76 77 constant greenish yellow
static singletouch 74 77 1.31% constant greenish yellow
moving singletouch 68 74 7.19% constant orange
static multitouch (3) 70 75 5.23% constant brownish orange
moving multitouch (3) 65 70 11.76% constant orange
Nokia Lumia 550, Windows Phone 10: clear framedrop
FPS min FPS max % drop visual FPS
no touch 27 28 constant brownish orange
static singletouch 27 28 0.00% constant brownish orange
moving singletouch 24 26 9.09% constant orange
static multitouch (3) 24 26 9.09% constant orange
moving multitouch (3) 24 26 9.09% constant orange
Microsoft Surface 2, Windows RT 8.1: framedrop is not constant but clearly visible
FPS min FPS max % drop visual FPS
no touch 119 120 constant greenish yellow
static singletouch 119 120 0.00% constant greenish yellow
moving singletouch 119 120 0.00% constant greenish yellow
static multitouch (3) 114 119 2.51% greenish yellow with a few orange stripes
moving multitouch (3) 107 115 7.11% greenish yellow with more orange stripes
Samsung Galaxy S4, Android 5: normal FPS are a bit erratic, but the frame drop can be clearly identified by the additional redish bursts of stripes
FPS min FPS max % drop visual FPS
no touch 80 80 brownish orange
static singletouch 70 70 12.50% brownish orange with orange stripes
moving singletouch 55 55 31.25% redish orange with brownish stripes
static multitouch (3) 70 70 12.50% brownish orange with orange stripes
moving multitouch (3) 55 55 31.25% redish orange with brownish stripes
Nokia Lumia 925, Windows Phone 8.1: clear framedrop
FPS min FPS max % drop visual FPS
no touch 86 90 constant greenish yellow
static singletouch 86 90 0.00% constant brownish orange
moving singletouch 75 82 10.80% constant brownish orange
static multitouch (3) missing
moving multitouch (3) missing
The FPS counter used is a paid assetstore extension called “Simple FPS Counter” and therefore was not attached. Unfortunately it is also no longer available in the assetstore thus you need to integrate your own FPS counter.
2940238–217587–scenefile.zip (12.4 KB)
