9.1.1 About the integration with virtual GPU in GRM

GRM can integrate your Android graphics software stack with the provided Mali GPU models. You can use GRM to test the software stack integrations.

GPU model in GRM

The GPU model that GRM can support is Mali-G71, which models registers of ARM® Mali™‑G71. For details about the model, see the section Mali_G71 component, in Fast Models Reference Manual.

This model does not contain shader cores. When it emulates the GPU in an integration, GRM invokes the host GPU to perform rendering. For more details, see Data flow of the integration.


To enable the GPU emulation in GRM, you must create a complete virtual system platform that contains memory, display, CPU, and GPU components.

For how to create, see Modeling a GPU system with GRM.

Integration process in GRM

GRM creates a virtual device on the host based on the developed virtual system platform. Then, GRM lets you load the software stacks onto this device and boot the system by entering commands on the host. The entire process is the same as you perform integrations with a real device.

The virtual device is displayed by dedicated terminals on the host. They are opened in the boot process. Some of these terminals serve as the display screen. They show Android OS when the system is boot up. The others serve as information windows to report details from the virtual device, such as integration status and progress.

For the detailed data flow during an integration, see Data flow of the integration.


This manual uses the target to describe the virtual device.

For how to perform an integration and how to diagnose in the software stack integration issues, see Using Graphics Register Model.

Data flow of the integration

The integration contains multiple interactions between the target and the host. The data flows from applications to drivers and GPU on both sides, and through GGA to the host GPU.

The integration starts after the software stack and the shim libraries are loaded to the target. The data flow is:

  1. On the target, the application APIs (OpenGL ES and EGL) interact with both the shim libraries and the developed Mali drivers.
  2. Shim libraries pass API data out of the target to GGA on the host. Then, GGA works with the host GPU and Mali OpenGL ES Emulator to generate rendering images for these data.

    These images are saved in GGA.

  3. In parallel with the rendering process on the host, on the target, the Mali driver executes APIs and passes commands, addresses, and the other settings to the GPU, which is the GPU register model.

    The model starts work.

  4. When the model receives the start command from the driver, it sends the rendering related destination addresses, MMU settings, and others to GGA.
  5. On receiving these data, GGA combines them with the matched rendering images, and then output them to the memory on the target.
  6. After that, GGA informs the GPU on the target that this rendering job is completed.
  7. Then, on the target, the GPU informs the driver that the rendering is complete.
Figure 9-1 Integration data flow in GRM

Non-ConfidentialPDF file icon PDF versionARM 100965_1101_00_en
Copyright © 2014–2017 ARM Limited or its affiliates. All rights reserved.