Along with our SDK and Tools, we also have a plethora of other offerings for developers to get the best out of PowerVR-based devices. Today, we’ll be highlighting some of the new features of PVRTune Complete. PVRTune has been one of our most valuable products included in the SDK for a while now, but for those of you who aren’t aware of what it is, let’s refresh your memory.
PVRTune is our application performance analysis tool that we offer as part of our Developer Technology toolkit. It can perform low-level analysis at a hardware level in order to provide as much information as possible about a program’s runtime performance. PVRTune Complete is our ultimate version which exposes an incredible amount of data about the GPU, including firmware and driver statistics. PVRTune Complete is the premier analysis tool, as it can perform both real-time data visualisation and analysis as well as saving the session for later review. Combined with the amount of data it can track and present to the developer, PVRTune Complete is the ultimate utility for optimising performance on PowerVR devices.
In today’s post, we’ll quickly go over some of the existing highlights of PVRTune Complete, as well as giving you a preview of what was added in the 2020 Release 1 update.
PVRTune can highlight exactly what the application is doing at the GPU level. From here, bottlenecks such as can be identified in the compute stage, the renderer, and the tiler. The timeline shows the various tasks that the GPU is processing at any given moment, along with appropriate metrics such as CPU load and memory. Gaps in the data are when that specific timeline is idle, and large, contiguous regions of colour are when that timeline is under constant load. Being able to pinpoint these instances in PVRTune can help you adjust how your application interacts with the graphics API and drivers to maximise performance.
PVRTune Complete boasts some of the deepest insight into hardware-level performance on PowerVR devices. Using driver-level software counters and hardware registers to accurately monitor application statistics such as FPS, tiler time, and more, PVRTune Complete offers developers the chance to see things such as render target data and shader information, giving them a full view of how exactly the drivers and hardware respond and behave under various loads. As well as this, PVRTune Complete also features an API “awareness”, so you’ll be able to trace graphical API calls, including Vulkan® and OpenGL® ES, from the application down to the hardware itself. All of this allows for even more control over how application behaviour and performance is affected by the interaction between hardware drivers and API.
PVRTune Complete also captures synchronisation objects from the driver, showing where events are queued and where pipeline bubbles – gaps in computation where the system is not operating at full efficiency – occur, giving you another strategy for improving performance. PVRTune’s real-time visualisation helps to make this even clearer by showing exactly where these statistics come from, and an unparalleled selection of metrics. To make analysis even easier, PVRTune Complete also offers a CSV export option so that users may visualise the data themselves and perform an offline analysis of their application performance.
Development work on PVRTune is always on-going as we strive to provide the most powerful tool to developers, which is why we have two releases every year to bring bug fixes, new features, and updates to our SDK. In the upcoming release, PVRTune remains one of our primary focuses, and so our engineers have been hard at work to make PVRTune an even better tool for use. While full information can be found actual SDK release notes, some of the highlights of the new version of PVRTune Complete are as follows:
Late last year, we announced our newest generation of GPUs: the IMG A-Series. Designed to be “The GPU of Everything”, the IMG A-Series brings unparalleled performance to the table. Since then we’ve been working hard to deliver support for these new chips and technologies in time for developers to be able to debug their applications on the new platform. This is probably the biggest update coming to PVRTune this time, but we’ve got more than just that!
To go alongside our support for the new architecture, we’ve implemented another feature which takes advantage of some of the strengths of the new hardware counters. PVRTune is now able to generate heatmaps for which tiles in a frame require more processing for various reasons. By identifying where in the scene requires the most attention, it becomes easier to track down exactly where the issues with performance lie – instead of just being told that a particular 3D kick is slow, it is now possible to identify exactly what work being done is causing the slowdown.
We’ve also added a new counter to our performance tracking systems. PowerVR works on a tile-based rendering system, and some image synthesis processors can parallel process multiple tiles which helps with latency and efficiency. This counter helps developers to track whether the ISP is being fully utilised or not.