The Mali Graphics Debugger has two target components that interact to collect and transmit trace information from your application to the GUI on the host. These two target components are:
- The Interceptor library, which intercepts calls made by your application to one of the supported libraries and collects information about each call as it is made on the underlying system. The interceptor library needs to be loaded before your application starts. This library also doubles as a Vulkan layer, allowing Vulkan applications to be traced using the Vulkan API's layers system.
- The Daemon application, which collects the trace data from all running applications being intercepted and sends this data to the host. All data is transferred using TCP/IP on port 5002.
The method for using these components varies by target platform.
For Vulkan applications, the installation instructions in this section describe the simplest method of getting MGD running with your application using the layers system. However, the Vulkan layers system is quite flexible, and there may be multiple valid methods for installing the MGD layer on your target platform that may suit your needs better. For more details, see the Vulkan Loader Specification and Architecture Overview.
We do not recommend that the Validation Layers are used at the same time as the MGD Layer. The Validation Layers are designed to validate a Vulkan application (i.e. detect invalid use of the Vulkan API), and MGD is designed to ensure that a Vulkan application that has already been validated does what it is expected to do.
Due to these different goals, using the MGD Layer at the same time as the Validation Layers may result in unexpected behavior.