我要评分
获取效率
正确性
完整性
易理解

Texture Cache Overflow on the Engine Client

Symptom

When the engine client detects that the upper limit of cached texture data of a single process or the upper limit of cached texture data of the entire system exceeds the preset threshold, the engine client reports a texture cache overflow (VMI_ENGINE_EVENT_CACHE_OVERFLOW) event. A related message (the content depends on the ISV's implementation) is displayed on the GUI.

Impact on the System

When this fault occurs, the texture data cached on the engine client is inconsistent with that cached on the engine server. As a result, an error occurs when the texture data is used for drawing. After reporting a VMI_ENGINE_EVENT_CACHE_OVERFLOW event, the engine client disconnects from the server, releases the locally cached texture data, and exits.

When this fault occurs, the engine server is disconnected from the engine client, releases the locally cached texture data, and switches from the online state to the offline state. In the offline state, apps in the cloud phone still run. However, in this case, touch input of the engine client cannot be received, and audio/drawing instructions of apps cannot be transmitted to the engine client.

Possible Cause

The engine client locally caches texture data of apps to improve the efficiency of processing the repeatedly used texture data and reduce the network bandwidth.

The engine client sets a proper upper limit and aging mechanism for cached texture data of a single process and of the entire system to avoid occupying too much memory of the engine client and ensure the optimization effect.

When detecting that the upper limit of the cached texture data of a single process exceeds the preset threshold, the engine client reports a texture cache overflow (VMI_ENGINE_EVENT_CACHE_OVERFLOW) event. The built-in cached texture aging mechanism of the engine prevents this situation. However, when a code logic error or other serious internal fault occurs, this situation may occur.

When detecting that the cached texture data of the entire system exceeds the preset upper limit, the engine client reports a texture cache overflow (VMI_ENGINE_EVENT_CACHE_OVERFLOW) event. This might be caused by that the engine server may start too many processes, and the sum of cached texture data of all the processes exceeds the preset upper limit.

Procedure

  1. On the cloud phone, use the Android multi-task function to view all processes running in the Android background and manually stop some background processes.
  2. Disconnect the engine client and engine server. In this case, both the engine client and engine server automatically release the cached texture data.
  3. Reconnect the engine client to the engine server. The service recovers.