Accelerate game performance based on SceneSDK
Xiangguo Qi
Staff Engineer
Introduction
In recent years, the mobile game market has been growing fast. Along with hardware upgrades, the implementation of mobile games is more complicated, and the loading process and the display of some scenes consume a lot of CPU and GPU resources. So Samsung worked with game vendors, including the Tencent Game Performance Amelioration (MTGPA) team, to improve game user experience based on SceneSDK.
SceneSDK focuses on performance optimization, with the game vendor's cooperation, by combining the abilities of device manufacturers to control hardware resources and the abilities of games to sync up scenario information. It can maximize the game experience. Currently it includes many items such as scene guarantee and frequency reduction notification. It can get game information, send a mobile device's status to a game and supports 40+ games, including many popular games.
Optimization Solutions
Scene Protection
Scene protection divides a game into different game scenes according to certain rules (such as coarse-grained loading, lobby, single game round, ultimate kill, aiming and shooting, and much more), and then provide finer-grained performance guarantees for different game scenes. Considering that hardware resources are limited, if the protection of all the scenes is the same, the actual protection effect is not ideal because the hardware is fully loaded at the beginning. The system high temperature protection is triggered quickly, the CPU and GPU are forced to reduce frequency, and the rendering performance will be even worse. Therefore, the game could send game events, like loading, starting, lobby or scene loading, to SceneSDK on the mobile device's side. The game information is sent in the Json format {sceneID: value}
. It’s flexible and can be extended with more sceneIDs if needed. The main value information is shown in the table below.
After getting the scene info, the SceneSDK service changes CPU/GPU frequency to improve game performance based on different game scenarios.
During gameplay, it is necessary to classify the scene according to the importance level. The strategy of hierarchical protection is slightly different according to the underlying adjustment capabilities of each manufacturer, but the core is the highest-level scene, which is fully protected. For the protection of different levels of scenes, the effect can be shown as below. For the highest priority (critical) scene, the FPS (frames per second) is more stable. For the lowest level scene, FPS slowly declines without affecting the experience.
At the same time, the protection of the scene switching is also effective in real time. As shown in the following figure, when the scene level is switched from Low (1) to Critical (3), the CPU frequency starts to increase, and the FPS also gradually starts to increase.
The comparison is as follows:
Frequency Reduction Notification
The frequency reduction notification is to inform the game of the system CPU frequency reduction. The extent of CPU frequency reduction varies from manufacturer to manufacturer. Such adjustments inevitably result in equipment that just meets the performance needs or already fails to meet the performance needs of the game so that it starts to freeze or becomes stuck. Therefore, if the game can adjust the configuration items related to performance consumption instantly, by temporarily reducing or disabling some functions and using such notifications, a stuck game can be avoided to ensure the best player experience.
Variable Refresh Rate
A key part of the technology used in the latest Samsung flagship model is the ability to not only run conventional mobile refresh rate limits, but also to dynamically modify them based on game requirements at runtime. A common misconception is that if a device has the ability to run at 120 FPS, it should always do so. However, most games support multiple options that are lower than 120 FPS or don’t support 120 FPS. If a game does not support 120 FPS, a 120 FPS refresh rate is not required and may cost more power consumption. The ideal approach is to make use of the maximum refresh rate only when it has the greatest benefit.
So when the game sends the Json string {“target fps”: value}
to the mobile device, the device changes the refresh rate to save power by not running in the highest refresh rate.
Summary
This table shows the benefit of using SceneSDK at launch time.
This table shows better performance during two rounds of testing with SceneSDK ON and SceneSDK OFF.
This table shows lower power consumption when dynamic refresh rate is applied.
Overall, SceneSDK could be a good option to improve your game performance.
Please feel free to contact us if you need more information.