Depuis quelques jours, la Toile s’emballe à cause d’un énième cas de triche détecté sur un smartphone. Le OnePlus 3T triche en effet dans les benchmarks, et plus particulièrement sur GeekBench. Le processeur active alors un mode hautes performances, aussi accessible dans certains jeux. Le Meizu Pro 6 Plus fait encore pire puisque la triche est uniquement valable dans les benchmarks, mais pas dans les jeux. Nous avons pu vérifier ces informations sur nos OnePlus 3T et Meizu Pro 6.

Souvenez-vous, en novembre 2013, Futuremark, l’éditeur du célèbre benchmark 3DMark bannissait de ses résultats officiels les smartphones HTC et Samsung. Les deux constructeurs trichaient dans les benchmarks en augmentant les fréquences du processeur (CPU) et de la puce graphique (GPU) dans les benchmarks. Suite à cet épisode fort médiatisé, les différents constructeurs ont plus ou moins arrêté la triche. Enfin pas tout à fait, puisque le célèbre site XDA a réalisé quelques découvertes assez troublantes sur le OnePlus 3T et le Meizu Pro 6.

OnePlus 3T : un mode hautes performances caché

Le OnePlus 3T dispose d’un comportement intriguant. Lorsqu’on lance une application de benchmark comme GeekBench, le téléphone se met en mode hautes performances. Dans ce mode, les cœurs les moins gourmands du Snapdragon 821 ne descendent pas sous la barre des 980 MHz, contre 1 290 MHz pour les cœurs les plus gourmands. En mode normal, ces valeurs planchers sont de 300 MHz pour les quatre cœurs.

La fréquence du CPU en mode normal

La fréquence minimale en mode triche

La raison d’être de ce mode hautes performances est simple : avec des valeurs planchers bien plus hautes que la normale, OnePlus augmente les performances du terminal, puisque les cœurs mettent moins de temps à augmenter leurs fréquences en cas de besoin. Là où le bât blesse, c’est que le mécanisme se met en place dès le lancement de l’application, même si, par exemple, l’utilisateur reste dans les menus. De quoi consommer inutilement de la batterie puisqu’un menu n’est pas gourmand du tout.

Un mode hautes performances pour toutes les applications ?

Pour se défendre, OnePlus indique que ce mode hautes performances (intégré à Hydrogen OS et à Oxygen OS depuis Android 7.0 Nougat) est lancé aussi bien dans les benchmarks que dans les jeux et applications gourmandes. Nous avons vérifié sur Fire Emblem Heroes, Pokémon GO, Asphalt 8 et Snapchat, une application réputée gourmande avec ses filtres en réalité augmentée. Sur ces quatre applications, à aucun moment le processeur ne s’est mis en mode hautes performances. Il semble donc que OnePlus utilise ce mode uniquement pour les benchmarks, malgré les déclarations faites à XDA.

Une triche qui fait gagner… 5% de performances !

Pour ceux qui auraient encore des doutes sur la triche avérée, XDA a réussi à lancer GeekBench avec un nom de package différent « Mini Golf » pour faire croire au OnePlus 3T qu’un jeu venait de se lancer alors que c’était un benchmark. Avec cette technique, le terminal n’est pas entré en mode hautes performances, ce qui s’est ressenti sur les résultats, en baisse de 5 % sur une longue session. La température était également en hausse : 48 degrés contre 44 degrés Celsius.

En orange : le mode normal, en rouge, le mode hautes performances

OnePlus s’excuse et corrige le tir

Pour se faire pardonner, OnePlus a annoncé qu’une prochaine mise à jour allait désactiver ce mode hautes performances dans les benchmarks. XDA a même proposé à la marque chinoise d’activer une option dans les menus du terminal pour que l’utilisateur puisse activer ce mode hautes performances à la volée, comme le font d’autres constructeurs.

Rappelons en effet que HTC active un mode hautes performances lorsque le téléphone détecte un benchmark, mais que ce comportement n’est pas considéré comme de la triche puisque l’utilisateur peut également l’activer manuellement pour profiter du gain en performances dans n’importe quel jeu ou applications. Lors de nos tests des terminaux HTC, nous prenons d’ailleurs soin de tester notre protocole de test avec et sans cette option activée, ce qui représente environ 25 à 30 % de performances supplémentaires dans les jeux gourmands, comme on peut le voir avec Hitman Sniper ou Real Racing 3 sur le HTC 10.

Real Racing 3 (GameBench)
  • HTC 10 (normal) : 31
  • HTC 10 (hautes perf) : 41

Meizu : le mauvais élève

Finalement, OnePlus est un constructeur assez sage, si l’on compare ses pratiques avec Meizu et son Pro 6. Sur le Pro 6, depuis la mise à jour 5.2.5 de Flyme OS, le smartphone dispose de performances largement supérieures comme ont pu le noter nos confrères du site Anandtech. Le site XDA a donc décidé de creuser le sujet. Depuis la mise à jour, le téléphone propose à l’utilisateur de passer en mode hautes performances au lancement d’un benchmark. L’utilisateur peut bien sûr passer manuellement en mode hautes performances, mais avec un effet placebo…

Malheureusement, le mode hautes performances est différent selon l’application lancée. Si le téléphone détecte un benchmark, il bloque les quatre Cortex-A53 à leur vitesse maximale de 1,48 GHz et impose une fréquence plancher de 1,46 GHz pour les deux Cortex-A72. Dans le cas d’un jeu ou d’une application, le processeur n’a pas ce comportement. Ainsi, avec la version classique de GeekBench, le terminal obtient des résultats 75 % plus élevés qu’avec la version cachée sous le nom d’un jeu alors que dans les deux cas, le terminal est en mode hautes performances.

Un cas de triche assez grave pour Meizu

Finalement, le mode hautes performances n’apporte pas de performances supplémentaires par rapport au mode classique puisqu’avec la version cachée de GeekBench, on obtient le même score avec les deux modes. Nous n’avons pas pu vérifier de notre côté puisque nous n’avons pas de Meizu Pro 6 sous la main.

Le cas du Meizu Pro 6 est grave, puisque l’entreprise chinoise triche délibérément en appliquant un mode hautes performances uniquement dans les benchmarks et en faisant croire à l’utilisateur qu’il peut en bénéficier dans les jeux et applications alors que ce n’est pas le cas. L’entreprise n’a pas répondu aux accusations de XDA.

Des changements nécessaires dans l’univers mobile

Finalement, il est très compliqué dans l’univers mobile de distinguer une tricherie d’une optimisation. Prenons par exemple le cas des Huawei Mate 8 et Mate 9 qui obtiennent d’excellents résultats dans notre protocole de test de performance face à la concurrence. Face au HTC 10, pourtant le smartphone le plus performant en Snapdragon 821, le Huawei Mate 9 et son Kirin 960 sont bien plus performants dans les jeux. Dans les benchmarks, c’est l’inverse qui se passe.

Dans la pratique, cette situation étrange s’explique assez facilement. Huawei autorise son processeur et son GPU à utiliser des hautes fréquences de fonctionnement pendant une longue période de temps, ce qui fait chuter l’autonomie et augmenter la chauffe du téléphone, au profit des performances qui atteignent un très bon niveau en comparaison de la concurrence. Les autres constructeurs préfèrent mettre en avant l’autonomie de leur terminal avec des fréquences de fonctionnement qui baissent rapidement au bout de quelques minutes d’utilisation intensives, un phénomène qu’on appelle le throttling.

Pas de triche, juste un choix délibéré

Ici, il n’est pas réellement question de triche, mais simplement d’un choix de la part du constructeur, qui décide à partir de quand le SoC va commencer à diminuer les fréquences pour diminuer la chauffe et la consommation, ce qui diminue également les performances. Les benchmarks durent souvent quelques minutes tout au plus alors que les jeux tournent pendant plusieurs dizaines de minutes lors de notre protocole de test, reflétant ainsi une utilisation réelle du terminal.

On aimerait donc plus de transparence de la part des constructeurs dans la gestion du governor d’Android (la partie logicielle qui contrôle le processeur), pour annoncer aux clients si le scaling (le fait de faire varier la fréquence de fonctionnement du couple CPU / GPU) est plutôt de type agressif et se focalise sur les performances ou plutôt doux sur l’utilisation de la batterie. Le mieux est, à l’image de HTC, de laisser le choix à l’utilisateur, via un réglage dans les menus.

De notre côté, nous demandons depuis des années plus de transparence du côté des constructeurs dans l’intégration du SoC au sein des smartphones et sa gestion logicielle. C’est notamment pour cette raison que nous utilisons GameBench pour tester les performances de jeux bien réels sur les smartphones, et non pas seulement de simples benchmarks synthétiques. Si les journalistes utilisaient plus ce type de méthodes, les constructeurs ressentiraient une certaine pression, comme ils la ressentent actuellement avec XDA.

À lire sur FrAndroid : Comment GameBench compte révolutionner les performances du monde mobile